pax_global_header00006660000000000000000000000064133102321560014506gustar00rootroot0000000000000052 comment=edf5194f678be933e05fb731f18916a9960bfab3 sptable-1.0.pre20180612/000077500000000000000000000000001331023215600144115ustar00rootroot00000000000000sptable-1.0.pre20180612/COPYRIGHT000066400000000000000000000031241331023215600157040ustar00rootroot00000000000000Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. The IRAF software is publicly available, but is NOT in the public domain. The difference is that copyrights granting rights for unrestricted use and redistribution have been placed on all of the software to identify its authors. You are allowed and encouraged to take this software and use it as you wish, subject to the restrictions outlined below. Permission to use, copy, modify, and distribute this software and its documentation is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that references to the Association of Universities for Research in Astronomy Inc. (AURA), the National Optical Astronomy Observatories (NOAO), or the Image Reduction and Analysis Facility (IRAF) not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission from NOAO. NOAO makes no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty. NOAO DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL NOAO BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. sptable-1.0.pre20180612/Notes000066400000000000000000000016151331023215600154270ustar00rootroot00000000000000Starting Mar, 2014: FV Figure out what changes are part of the new interfaces. Key file: sio/README IM_LEN(im,2) -> S_NSPEC(im) IM_LEN(im,3) -> S_NAUX(im) imunmap (im) -> s_unmap(im) Need to make api change for imaccess: see splot.x -------------------------------- lib/zzsetenv.def Merged changes from noao$lib lib/units.h lib/funits.h P2R() changes. lib/ccdtime/ lib/Revisions lib/obsdb.dat lib/strip.noao lib/mkpkg.sf.SSUN lib/scr/ lib/helpdb.mip Copied from current v2.16 noao$lib lib/smw.h Merged in 64-bit changes, fixed bug in definition of APLOW mwcs/mwsave.x mwcs/mwsctran.x mwcs/mwopenim.x mwcs/iwrfits.x mwcs/iwgbfits.x mwcs/mwloadim.x mwcs/iwewcs.x mwcs/mwltran.gx mwcs/mwv2tran.gx mwcs/mwc2tran.gx mwcs/imwcs.h mwcs/wftnx.x mwcs/wfzpx.x Merged in changes from v2.16 mwcs$ mwcs/mkpkg mwcs/wfzpn.x + mwcs/wftpv.x + mwcs/wfinit.x Added ZPN and TPV projection. sptable-1.0.pre20180612/README000066400000000000000000000014731331023215600152760ustar00rootroot00000000000000 September 15, 2014 This package contains the versions of the ONEDSPEC and RV packages modified to support tabular spectra. To avoid confusion with package loading, these packages are renamed XONEDSPEC and XRV respectively. Important directories include: lib Package library. Changes to the noao$lib files have been merged. src/mwcs MWCS library source. Changes from the v2.16 sys$mwcs have been merged into source, but this 'mwcs' library is not installed in the dev IRAF. src/xonedspec ONEDSPEC package source. src/xrv RV package source. The SPTABLE package will not yet build completely due to work still required in the package code. Additionally the 'mwcs' library is in a custom version of libex.a, this is considered temporary until the sys$mwcs library is updated. sptable-1.0.pre20180612/bin000077700000000000000000000000001331023215600172052bin.genericustar00rootroot00000000000000sptable-1.0.pre20180612/doc/000077500000000000000000000000001331023215600151565ustar00rootroot00000000000000sptable-1.0.pre20180612/doc/installation.hlp000066400000000000000000000200571331023215600203700ustar00rootroot00000000000000.help installation Mar08 nfextern .ce \fBNFEXTERN: NEWFIRM/IR REDUCTION PACKAGE\fR .ce Release Notes and Installation Instructions .sh SUMMARY The NFEXTERN external package is a container package for tools useful for basic instrumental calibration of NEWFIRM IR data and for image segmentation and catalog. The packages in the container are NEWFIRM, MSCTOOLS, and ACE. The NEWFIRM package has basic tools for NEWFIRM reductions. The MSCTOOLS has general tools for handling MEF format data such as NEWFIRM, and the ACE package provides tools for segmenting images and making source catalogs. .sh RELEASE INFORMATION The following summary only highlights the major changes. There will also be minor changes and bug fixes. The version of a distribution may be found with .nf cl> =nfextern.version 20080320 .fi .ls Version:20111204 64-bit bug fixes for nfproc and ace. A logical bug fixed in nfwcs .le .ls Version:20111121 A few bug fixes to the ace package .le .ls Version:20110811 .nf The file nfdat_ctio/nflincoeffs.fits was incorrect Some minor bug fixes .fi .le .ls Version: 20110524 .nf Rename nfdat to nfdat_kpno Added nfdat_ctio for CTIO data The default definition for nfdat$ is nfdat_ctio A few minor bug fixes .fi .le .ls Version: 20110524 .nf Rename nfdat to nfdat_kpno Added nfdat_ctio for CTIO data The default definition for nfdat$ is nfdat_ctio A few minor bug fixes .fi .le .ls Version: 20090109 Internal version for SDM NEWFIRM Project testing. .le .ls Version: 20080320 Initial release of the NEWFIRM, MSCTOOLS, and ACE packages. This version should be considered BETA level. Documentation is only partially complete. .le .sh INSTALLATION INSTRUCTIONS Installation of this external package consists of obtaining the files, creating a directory containing the package, compiling the executables or installing precompiled executables, and defining the environment to load and run the package. The package may be installed for a site or as a personal installation. If you need help with these installation instructions contact Frank Valdes (valdes@noao.edu). .ls [arch] In the following steps you will need to know the IRAF architecture identifier for your IRAF installation. This identifier is similar to the host operating system type. The identifiers are things like "ssun" for Solaris, "linux" or "redhat" for most Linux systems, and "macosx" or "macintel" for Mac systems. The IRAF architecture identifier is defined when you run IRAF. Start the CL and then type .nf cl> show arch .redhat .fi The value you need to know is without the leading '.'; i.e. the IRAF architecture is "redhat" in the above example. .le .ls [1-site] If you are installing the package for site use login as IRAF and edit the IRAF file defining the packages. .nf % cd $hlib .fi Define the environment variable nfextern to be the pathnames to the nfextern package root directory. Pathnames must be terminated with a '/'. Edit extern.pkg to include the following. .nf reset nfextern = /local/nfextern/ task nfextern.pkg = nfextern$nfextern.cl .fi Near the end of the hlib$extern.pkg file, update the definition of helpdb so it includes the nfextern help database, copying the syntax already used in the string. Add this line before the line containing a closing quote: .nf ,nfextern$lib/helpdb.mip\ .fi .le .ls [1-personal] If you are installing the package for personal use define a host environment variable with the pathname of the directory where the package will be located (needed in order to build the package from the source code). Note that pathnames must end with '/'. For example: .nf % setenv nfextern /local/nfextern/ .fi In your login.cl or loginuser.cl file make the following definitions somewhere before the "keep" statement. .nf reset nfextern = /local/nfextern/ task nfextern.pkg = nfextern$nfextern.cl printf ("reset helpdb=%s,nfextern$lib/helpdb.mip\nkeep\n", envget("helpdb")) | cl flpr .fi If you will be compiling the package, as opposed to installing a binary distribution, then you need to define various environment variables. The following is for Unix/csh which is the main supported environment. .nf # Example % setenv iraf /iraf/iraf/ # Path to IRAF root (example) % source $iraf/unix/hlib/irafuser.csh # Define rest of environment % setenv IRAFARCH redhat # IRAF architecture .fi where you need to supply the appropriate path to the IRAF installation root in the first step and the IRAF architecture identifier for your machine in the last step. .le .ls [2] Login into IRAF. Create a directory to contain the package files. This directory should be outside the standard IRAF directory tree. .nf cl> mkdir nfextern$ cl> cd nfextern .fi .le .ls [3] The package is distributed as tar archives for the sources and, as an optional convenience, a tar archive of the executables for select host computers. The tar file(s) are most commonly obtained via anonymous ftp. Below is an example. .nf cl> ftp iraf.noao.edu (140.252.1.1) login: anonymous password: [your email address] ftp> cd iraf/extern ftp> get nfextern.readme ftp> binary ftp> get nfextern-src.tgz ftp> get nfextern-bin..tgz (optional) ftp> quit cl> !uncompress nfextern-src cl> !uncompress nfextern-bin. (optional) .fi The readme file contains these instructions. The in the optional executable distribution is replaced by the IRAF architecture identification for your computer. .le .ls [4] Extract the source files from the tar archive using the standard "tar" utility (or possibly "rtar" which is distributed with IRAF). .nf % tar -xvf nfextern-src .fi On some systems, an error message will appear ("Copy 'bin.generic' to './bin fails") which can be ignored. Sites should leave the symbolic link 'bin' in the package root directory pointing to 'bin.generic' but can delete any of the bin. directories that won't be used. If there is no binary directory for the system you are installing it will be created when the package is compiled later or when the binaries are installed. If the binary executables have been obtained these are now extracted into the appropriate bin. directory. .nf # Example of redhat installation. % cd nfextern % tar -xvf nfextern-bin.sparc # Creates bin.sparc directory .fi The various tar files can be deleted once they have been successfully installed. .le .ls [5] For a source installation you now have to build the package executable(s). First go to the package root directory with .nf cl> cd nfextern .fi If you are updating to a newer version and you earlier built the libraries and executables it is necessary to delete these. Otherwise, depending on the dates of files in the new version and the locally built libraries, it may cause the new version to be ignored. To do this the package is configured "generic" which puts all the binary files in one binary directory, the files are deleted and then you continue in the same way as a completely new installation. .nf % mkpkg generic % delete bin./* # Substitute redhat, macox, ssun, etc. .fi Configure the package for the particular architecture to be built. .nf % mkpkg # Substitute sparc, ssun, alpha, etc. .fi This will change the bin link from bin.generic to bin.. The binary directory will be created if not present. If an error occurs in setting the architecture then you may need to add an entry to the file "mkpkg". Just follow the examples in the file. To create the executables and move them to the binary directory .nf % mkpkg -p nfextern # build executables % mkpkg generic # optionally restore generic setting .fi Check for errors. If the executables are not moved to the binary directory then step [1] to define the path for the package was not done correctly. The last step restores the package to a generic configuration. This is not necessary if you will only have one architecture for the package. .le This should complete the installation. You can now load the package and begin testing and use. .endhelp sptable-1.0.pre20180612/lib/000077500000000000000000000000001331023215600151575ustar00rootroot00000000000000sptable-1.0.pre20180612/lib/Revisions000066400000000000000000000137441331023215600170740ustar00rootroot00000000000000.help revisions May93 noao.lib .nf noaolib$ccdtime/kpno.dat Added data for MOSAIC1_1 provided by Jannuzi. (9/28/11, Valdes) noaolib$smw.h An earlier change to smw.h improperly added a P2R() macro to the APLOW/APHIGH declarations causing tasks with 2-D data to request data out of bounds. (3/7/11, MJF) noaolib$obsdb.dat Added entry for Boyden Observatory (11/20/06, MJF) noaolib$ccdtime/ctio.dat noaolib$ccdtime/kpno.dat Added Mosaic z' based on estimated values from Arjun Dey. (9/21/06, FV) noaolib$obsdb.dat Added entry for Olin Observatory (7/28/06, MJF) noaolib$obsdb.dat Changed the logitude for 'aries' at request of submitter (4/1/06, MJF) noaolib$obsdb.dat Added OALP psupplied by Eduardo Lajus (10/28/05) noaolib$obsdb.dat Added TUG and commented out TNO per user request. (8/15/05, FV) noaolib$obsdb.dat Corrected entry for FMO, added MGO at user suggestion (6/15/04, MJF) noaolib$obsdb.dat Added EUO and TNO. (4/26/04, MJF) noaolib$ccdtime/kpno.dat noaolib$ccdtime/kpno.datBAK + Revised file from Dick Joyce to add FLMN and remove IRIM and ONIS. (3/16/04, Valdes) noaolib$obsdb.dat Added SLN. (7/17/03, Valdes) noaolib$obsdb.dat Added IAO, Hanle. (6/28/03, Valdes) noaolib$ccdtime/ctio.dat Added andicam_ir detector and 1.3m telescope as researched by Dave Bell. (11/14/02, Valdes) noaolib$obsdb.dat Added additional ESO entries supplied by Peter Weilbacher. (1/30/02, Valdes) noaolib$src/igsfit.key Added that 'p' works as unzoom. (8/15/01, Valdes) noaolib$obsdb.dat Added entries for Gemini North and South. (9/8/00, MJF) noaolib$onedstds/blackbody + noaolib$onedstds/README Added new data files for blackbody flux calibration. (1/25/00, Valdes) noaolib$obsdb.dat Corrected entry from SAAO with information provided by John Menzies. (1/5/00, Valdes) noaolib$obsdb.dat Added Whitin Obs upon request. (10/14/99, Valdes) noaolib$obsdb.dat Added DDSAZ and HOLI observatories upon request. (8/5/99, Valdes) noaolib$obsdb.dat Added IRTF upon request. (7/14/99, Valdes) noaolib$ccdtime/kpno.dat noaolib$ccdtime/ctio.dat New versions with entries set by KPNO/CTIO staff and used in the Web version starting in fall of 1998. (6/25/99, Valdes) noaolib$obsdb.dat # SAAO: Submitted by James Stevens 3/25/98 # CASLEO: Submitted by Jorge Federico Gonzalez 12/10/98 # BOSQUE: Submitted by Jorge Federico Gonzalez 12/10/98 # ROZHEN: Submitted by Ilian Iliev 1/19/99 noaolib$onedstds/bstdscal/names.men + noaolib$onedstds/bstdscal/standards.men noaolib$onedstds/spec16cal/names.men noaolib$onedstds/spec16cal/standards.men noaolib$onedstds/ctionewcal/standards.men noaolib$onedstds/READMEN Added some name aliases and fixed some typo problems. (9/26/98, Valdes) noaolib$obsdb.dat Added Laboratorio Nacional de Astrofisica - Brazil as submitted by Claudia Vilega Rodrigues. (12/12/97, Valdes) ===== V2.11 ===== noaolib$obsdb.dat After a conversation with Craig Foltz the "mmt" entry was removed and the "mmto" entry changed the name from "Multiple Mirror Telescope Observatory" to "MMT Observatory" since the telescope is changing. The altitude was wrong in the "mmt" entry in any case. (8/20/97, Valdes) linelists$airvac.cl + A script is available for converting line lists to air or vacuum. (5/9/97, Valdes) noaolib$ccdtime/kpno.dat Updated by Massey. (5/2/97, Valdes) noaolib$scr/icgfit.key noaolib$scr/idicgfit.key Added :fitvalue to help file. (1/28/97, Valdes) noaolib$obsdb.dat Added "flwo" and "oro" as submitted by Doug Mink. Also changed the name for the "mmt" entry as suggested by Mink. (1/9/97, Valdes) noaolib$smw.h Added a spectrum type field and dictionary of spectrum types. (9/11/96, Valdes) noaolib$obsdb.dat Added entries for Apache Point and Lowell submitted by Michael Ledlow (8/9/96, Valdes) noaolib$ccdtime/kpno.dat Updated with new numbers for the Schmidt from Massey. (3/4/96, Valdes) noaolib$obsdb.dat Added an entry for Keck from Astronomical Almanac. (2/16/96, Valdes) noaolib$obsdb.dat Add an entry for Beijing XingLong Observatory submitted by Biwei JIANG. (11/28/95, Valdes) noaolib$linelists/fear.dat + noaolib$linelists/README Added a line list for FeAr comparison spectra. (9/25/95, Valdes) noaolib$ccdtime/kpno.dat Updated to include improved WIYN telescope values and data for S2KB. The values were supplied by Massey. (9/21/95, Valdes) noaolib$scr/icgfit.key noaolib$scr/idicgfit.key Added 'v' key for changing weights. (12/29/94, Valdes) noaolib$obsdb.dat Added an entry for Venezuala. (9/1/94, Valdes) noaolib$zzsetenv.def Added a definition of "noao$bin(arch)/" to 'pkglibs' so that the smw and asttools libraries would be picked up by other packages using '-p noao' when the package is configured generically. (1/10/94 MJF) noaolib$libasttools.a + A library of astronomical tools is now an NOAO package library. The source is in noao$astutil/asttools. (8/19/93, Valdes) noaolib$ccdtime/ + noaolib$cctime/kpno.dat + noaolib$zzsetenv.def Added a ccdtime directory to contain standard database files for CCDTIME task. (8/16/93, Valdes) noaolib$obsdb.dat Added entries for San Pedro Martir and Tonantzintla. These were submitted by Patrick Vielle via e-mail to IRAF. (5/4/93, Valdes) noaolib$linelists/henearhres.dat + noaolib$linelists/README Added a new high resolution HENEAR line list created by Daryl Willmarth. (5/4/93, Valdes) noaolib$onedstds/*cal/names.men + noaolib$onedstds/*cal/standards.men Added alternate star names in the files names.men. These files are used, if present, by a recent revision to the ONEDSPEC tasks. (5/4/93, Valdes) noaolib$units.h + noaolib$smw.h + noaolib$libsmw.a -> ../bin/libsmw.a + noaolib$zzsetenv.def Added the ONEDSPEC spectral WCS routines and include files for export to the RV package and other NOAO packages. (3/22/93, Valdes) .endhelp sptable-1.0.pre20180612/lib/ccdtime/000077500000000000000000000000001331023215600165675ustar00rootroot00000000000000sptable-1.0.pre20180612/lib/ccdtime/ctio.dat000066400000000000000000000170301331023215600202200ustar00rootroot00000000000000# CTIO Telescope, Filter, and Detector Database 14 Aug 1998 SRH. # # Telescope data: # aperture - From drawings in CTIO facilities manual # scale - From drawings in CTIO facilities manual and updates # transmission - Corrects for central obstruction based on drawings # # OPTICAL # ------- # Filter data: # These were just copied from kpno.dat for consistancy # # Detector data: # # CTIO ccds # readnoise - from PFCCD manual by ARW # dark - from PFCCD manual by ARW # pixel size - from PFCCD manual by ARW # DQE - adjusted to give the counts for U=B=V=R=I=20 star # at the 4.0-m PF tabulated in the PFCCD manual by ARW # # BTC - from BTC web page # # YaleO - inspired guess based on QE curve on web page # # IR # -- # # Filter data: # There is a descrepancy between the count rates in the CIRIM manual # and the values given for the 4m f/14 tip-tilt system such that # values scaled by aperture from the 1.5-m OVERESTIMATE object counts # with the 4m f/14 by a large factor. There is a smaller descrepancy # scaling counts between the 1.5-m f/8 and 4.0-m f/8. Rob Probst is # investigating. For the time being I have made two seperate sets of # filter data. # # J,H,Ks,K: for 1.5m f/8. roughtly OK for other non T-T # Jtt,Htt,Kstt,Ktt: for 4.0m f/14 # # Detector data: # CIRIM # readnoise - from CIRIM manual # dark - from CIRIM manual # pixel size - Adjusted to give correct "/pix on 4.0-m f/14 # DQE - used IRIM values from kpno.dat (per D. Joyce) # # CCOB # readnoise - from CCOB manual # dark - from CCOB manual # pixel size - Adjusted to give correct "/pix on 4.0-m f/14 # DQE - tweaked to give "correct" counts with 4m f/14 # using Jtt,Htt,Kstt & Ktt # # Revised 03 Sept 1998 SRH # # 1) New measuremenst by Probst/Blum suggest that the standard filter # entries do reproduce observed count rates with the 4mf14 tip-tilt # Apparently the numbers in the manual where wrong. Commented out # special tt entries pending final confirmation # # 2) Revised DQE for CTIO CCD's to reproduce new (lower) 4mpf count rates # provided by ARW for BVRI. Apparently Moses wrote the wrong numbers on his # stone tablets. Also adjusted andicam_opt entry since this is just based # on scaling by the relative QE's of the chips. # # 3) For U adjusted to give correct numbers at 0.9-m (no corrector) and # added transmission(u) entry to 4mpf to correct for PF corrector # transmission. # # 4) inserted transmission(andycam_opt) for 1.0-m to "do this right" # # 3) Included extinction for IR filters per Dick Joyce's numbers for KPNO # With the idea that we should try to be consistant. # # Revised 21 Sept 2006 FV # # Added Mosaic z' based on estimated values from Arjun Dey. # #------------------------------------------------------------------------------ # # Telescope data: # aperture diameter in meters, scale in arcsec/mm, and transmission. telescope = "4mpf" aperture = 3.960 scale = 18.0 transmission = 0.841 transmission(U) = 0.497 telescope = "4mf8" aperture = 3.960 scale = 6.56 transmission = 0.841 telescope = "4mf14" aperture = 3.960 scale = 3.4052 transmission = 0.841 # transmission = 0.5172 telescope = "1.5mf8" aperture = 1.570 scale = 18.1 transmission = 0.766 telescope = "1.5mf13.5" aperture = 1.570 scale = 10.0 transmission = 0.766 telescope = "1m" aperture = 1.020 scale = 19.6 transmission = 0.727 transmission(andicam_opt) = 0.65 telescope = "0.9m" aperture = 0.910 scale = 16.5 transmission = 0.872 telescope = "Schmidt" aperture = 0.600 scale = 96.6 transmission = 0.870 telescope = "1.3m" aperture = 1.3 scale = 11.8 transmission = 0.727 transmission(andicam_opt) = 0.65 transmission(andicam_ir) = 0.80 end # Filter data: # Magnitude corresponding to photon count rate. # Photons/second/stellar-image for a 1-m telescope at 1 airmass. # Sky magnitudes per sq arc sec: # sky = sky0 + sky1 * phase + sky2 * phase**2 (phase=0-14) filter = "U" extinction = 0.55 mag = 20 star = 8.0 sky0 = 22.0 sky1 = -0.2666 sky2 = -.00760 filter = "B" extinction = 0.25 mag = 20 star = 34.5 sky0 = 22.7 sky1 = -0.0998 sky2 = -0.00953 filter = "V" extinction = 0.14 mag = 20 star = 36.2 sky0 = 21.8 sky1 = -0.0153 sky2 = -0.00838 filter = "R" extinction = 0.10 mag = 20 star = 36.8 sky0 = 20.9 sky1 = -0.0211 sky2 = -0.00364 filter = "I" extinction = 0.05 mag = 20 star = 26.7 sky0 = 19.9 sky1 = -0.0086 sky2 = -0.00311 filter = "z" extinction = 0.03 mag = 20 star = 24.0 sky0 = 17.98 sky1 = 0. sky2 = 0. filter = "J" extinction = 0.08 mag = 20 star = 28.093 sky0 = 16.4053 sky1 = 0. sky2 = 0. filter = "H" extinction = 0.04 mag = 20 star = 19.58 sky0 = 14.4598 sky1 = 0. sky2 = 0. filter = "K" extinction = 0.07 mag = 20 star = 14.487 sky0 = 12.7576 sky1 = 0. sky2 = 0. filter = "Ks" extinction = 0.05 mag = 20 star = 10.843 sky0 = 13.4167 sky1 = 0. sky2 = 0. # No longer needed ? 3 sept 98 SRH # #filter = "Jtt" # extinction = 0.0 # mag = 20 # star = 16.1541 # sky0 = 14.7273 # sky1 = 0. # sky2 = 0. # #filter = "Htt" # extinction = 0.0 # mag = 20 # star = 12.6375 # sky0 = 13.6591 # sky1 = 0. # sky2 = 0. # #filter = "Ktt" # extinction = 0.0 # mag = 20 # star = 9.05010 # sky0 = 11.8522 # sky1 = 0. # sky2 = 0. # #filter = "Kstt" # extinction = 0.0 # mag = 20 # star = 6.77367 # sky0 = 12.5113 # sky1 = 0. # sky2 = 0. end # Detector information: # rdnoise in photons, dark rate in photons per second, pixel size in microns, # and the effective DQE for each filter. detector = "MOSAIC2" rdnoise = 5.0 dark = 0.0015 pixsize = 15 U = 0.48 B = 0.68 V = 0.81 R = 0.86 I = 0.63 I = 0.40 detector = "site2k" rdnoise = 4.0 dark = 0.0008 pixsize = 24 U = 0.48047 B = 0.52528 V = 0.72891 R = 0.78299 I = 0.58227 detector = "stis2k" rdnoise = 4.0 dark = 0.0008 pixsize = 21 U = 0.18927 B = 0.1978 V = 0.31423 R = 0.4121 I = 0.36914 detector = "tek1k" rdnoise = 4.0 dark = 0.0008 pixsize = 24 U = 0.16590 B = 0.39561 V = 0.7331 R = 0.78299 I = 0.56801 detector = "btc" # Values for Chip 3, # Chip 1 has ~1.16x, Chip 2 0.72x and Chip 4 1.08x this sensitivity at B # with similar factors for all wavelengths rdnoise = 5.5 dark = 0.0008 pixsize = 24 U = 0.3150 B = 0.3956 V = 0.6305 R = 0.6285 I = 0.4550 detector = "andicam_opt" rdnoise = 4.0 dark = 0.0008 pixsize = 15 U = 0.12189 B = 0.60109 V = 0.87467 R = 0.8874 I = 0.7166 detector = "andicam_ir" rdnoise = 11 dark = 0.5 pixsize = 18.5 J = 0.23 H = 0.33 K = 0.31 detector = "cirim" rdnoise = 37 dark = 0.3 pixsize = 64.09 J = 0.23 H = 0.33 K = 0.31 Ks = 0.38 # Jtt = 0.23 # Htt = 0.33 # Ktt = 0.31 # Kstt = 0.38 detector = "ccob" rdnoise = 70 dark = 0.2 pixsize = 27 J = 0.21 H = 0.31 K = 0.24 Ks = 0.23 # Jtt = 0.16898 # Htt = 0.228 # Ktt = 0.2429 # Kstt = 0.27985 sptable-1.0.pre20180612/lib/ccdtime/kpno.dat000066400000000000000000000073631331023215600202410ustar00rootroot00000000000000# KPNO Telescope, Filter, and Detector Database # Revised on the basis of drawings (true aperture size) and # improved count rates. Agrees with KPNO Direct Imaging Manual # Revised to remove obsolete IR imagers IRIM and ONIS and to # include FLAMINGOS # 1 May 1997 --- plm # 22 Jul 1998 --- dj # 12 Aug 1998 --- gj # 15 Mar 2004 --- dj # 21 Sep 2006 --- fv: Mosaic z' based on estimated values from Arjun Dey. # Telescope data: # aperture diameter in meters, scale in arcsec/mm, and transmission. telescope = "0.9m" aperture = 0.81 scale = 28.3 transmission = 1.0 telescope = "0.9mf13" aperture = 0.81 scale = 15.9 transmission = 1.0 telescope = "4m" aperture = 3.42 scale = 17.5 transmission = 1.0 telescope = "4mf8" aperture = 3.42 scale = 6.67 transmission = 1.0 telescope = "4mf15" aperture = 3.42 scale = 3.75 transmission = 1.0 telescope = "2.1m" aperture = 1.94 scale = 12.7 transmission = 1.0 telescope = "2.1mf15" aperture = 1.94 scale = 6.5 transmission = 1.0 telescope = "Schmidt" aperture = 0.61 scale = 96.4 transmission = 0.7 telescope = "WIYN" aperture = 3.185 scale = 9.4 transmission = 1.0 end # Filter data: # Magnitude corresponding to photon count rate. # Photons/second/stellar-image for a 1-m telescope at 1 airmass. # Sky magnitudes per sq arc sec: # sky = sky0 + sky1 * phase + sky2 * phase**2 (phase=0-14) filter = "U" extinction = 0.55 mag = 20 star = 8.0 sky0 = 22.0 sky1 = -0.2666 sky2 = -.00760 filter = "B" extinction = 0.25 mag = 20 star = 34.5 sky0 = 22.7 sky1 = -0.0998 sky2 = -0.00953 filter = "V" extinction = 0.14 mag = 20 star = 36.2 sky0 = 21.8 sky1 = -0.0153 sky2 = -0.00838 filter = "R" extinction = 0.10 mag = 20 star = 36.8 sky0 = 20.9 sky1 = -0.0211 sky2 = -0.00364 filter = "I" extinction = 0.05 mag = 20 star = 26.7 sky0 = 19.9 sky1 = -0.0086 sky2 = -0.00311 filter = "z" extinction = 0.03 mag = 20 star = 24.0 sky0 = 17.98 sky1 = 0. sky2 = 0. filter = "J" extinction = 0.08 mag = 20 star = 36.5 sky0 = 15.7 sky1 = 0. sky2 = 0. filter = "H" extinction = 0.04 mag = 20 star = 21.8 sky0 = 13.9 sky1 = 0. sky2 = 0. filter = "K" extinction = 0.07 mag = 20 star = 14.6 sky0 = 12.9 sky1 = 0. sky2 = 0. filter = "Ks" extinction = 0.05 mag = 20 star = 11.7 sky0 = 13.1 sky1 = 0. sky2 = 0. end # Detector information: # rdnoise in photons, dark rate in photons per second, pixel size in microns, # and the effective DQE for each filter. detector = "MOSAIC1_1" rdnoise = 4.9 dark = 0.00102 pixsize = 15 U = 0.55 B = 0.84 V = 0.84 R = 0.84 I = 0.79 z = 0.77 detector = "MOSAIC1" rdnoise = 5.0 dark = 0.0015 pixsize = 15 U = 0.48 B = 0.68 V = 0.81 R = 0.86 I = 0.63 z = 0.40 detector = "T1KA" rdnoise = 3.5 dark = 0.001 pixsize = 24 U = 0.24 B = 0.44 V = 0.70 R = 0.79 I = 0.59 detector = "T2KA" rdnoise = 4.0 dark = 0.001 pixsize = 24 U = 0.31 B = 0.53 V = 0.63 R = 0.67 I = 0.51 detector = "T2KB" rdnoise = 4.0 dark = 0.001 pixsize = 24 U = 0.42 B = 0.67 V = 0.78 R = 0.79 I = 0.56 detector = "TI5" rdnoise = 8.6 dark = 0.001 pixsize = 15 U = 0.51 B = 0.59 V = 0.69 R = 0.61 I = 0.39 detector = "T5HA" rdnoise = 13.5 dark = 0.001 pixsize = 27 U = 0.30 B = 0.51 V = 0.64 R = 0.69 I = 0.50 detector = "S2KA" rdnoise = 3.0 dark = 0.001 pixsize = 21 U = 0.30 B = 0.18 V = 0.34 R = 0.40 I = 0.60 detector = "S2KB" rdnoise = 7.0 dark = 0.001 pixsize = 21 U = 0.40 B = 0.70 V = 0.80 R = 0.82 I = 0.60 detector = "FLMN" rdnoise = 40 dark = 1 pixsize = 47.3 J = 0.082 H = 0.177 K = 0.26 Ks = 0.28 sptable-1.0.pre20180612/lib/exclude.dat000066400000000000000000000000641331023215600173020ustar00rootroot00000000000000ORIGIN DATE IRAF-TLM EXTEND DATAMIN DATAMAX sptable-1.0.pre20180612/lib/funits.h000066400000000000000000000017731331023215600166500ustar00rootroot00000000000000# Definition for funits package define FUN_LEN 124 # Length of funits structure define SZ_UNITS 79 # Length of funits strings define FUN_TYPE Memi[$1] # Unit type code define FUN_CLASS Memi[$1+1] # Unit class code define FUN_MOD Memi[$1+2] # Modifier code define FUN_SCALE Memr[P2R($1+3)] # Scale factor define FUN_LABEL Memc[P2C($1+4)] # Unit label define FUN_UNITS Memc[P2C($1+44)] # Units string define FUN_USER Memc[P2C($1+84)] # User units string # Unit classes define FUN_UNKNOWN 0 # Unknown define FUN_FREQ 1 # Frequency define FUN_WAVE 2 # Wavelength # Unit modifiers define FUN_LOG 1 # Log10 define FUN_MAG 2 # Mag # Unit types define FUN_NUNITS 4 define FUN_DIC "|jansky|fu|erg/cm2/s/hz|erg/cm2/s/a|log|mag|" # Unit scales: Conversions from Jansky define FUN_J 1.0 # Jansky (W/m2/s/Hz) define FUN_FU 1E26 # Flux units (W/m2/s/Hz*1E26) define FUN_CGSH 1e3 # CGS units (erg/cm2/s/Hz) define FUN_CGSA 1e3 # CGS units (erg/cm2/s/A) define FUN_VLIGHT 2.997925e18 # V light A/s sptable-1.0.pre20180612/lib/helpdb.mip000066400000000000000000000161401331023215600171260ustar00rootroot00000000000000DAQ=C; YB8B#rootdefdir=sptable$lib/_sptablesptable$lib/root1.hdBB7Kr_#root1defdir=sptable$lib/sptablesptable$sptable.mensptable$sptable.mensptable$sptable.hlpsptable$sptable.hdsptable$sptable.clH H4CIxaIsptabledefdir=sptable$xonedspec=./src/xonedspec/xrv=./src/xrv/sptodxonedspec$xonedspec.menxonedspec$xonedspec.hdxonedspec$xonedspec.clsptrvxrv$xrv.menxrv$xrv.hdxrv$xrv.cl> ++>)4G\q(.<EOaoy (<CR]fw *S[m4?Rgr* 5>O\dt*3DNTbluz *4Fxonedspecdefdir=sptable$src/xonedspec/doc=./doc/dispcor=./dispcor/identify=./identify/sensfunc=./sensfunc/splot=./splot/linelists=noao$lib/linelists/onedstds=noao$lib/onedstds/revisionsRevisionsaidparsdoc$aidpars.hlpaidpars.parautoidentifydoc$autoidentify.hlpidentify$t_autoid.xbplotdoc$bplot.hlpbplot.clcalibratedoc$calibrate.hlpt_calibrate.xcontinuumdoc$continuum.hlpt_sfit.xdereddendoc$deredden.hlpt_deredden.xdispaxisdoc$dispaxis.hlpdispaxis.pardispcordoc$dispcor.hlpdispcor$dispcor.xdisptransdoc$disptrans.hlpdispcor$disptrans.xdopcordoc$dopcor.hlpt_dopcor.xfitprofsdoc$fitprofs.hlpt_fitprofs.xidentifydoc$identify.hlpidentify$t_identify.xlcalibdoc$lcalib.hlpt_lcalib.xmkspecdoc$mkspec.hlpx_mkspec.xnamesdoc$names.hlpt_names.xndprepdoc$ndprep.hlpndprep.clrefspectradoc$refspectra.hlpdispcor$refspectra.xreidentifydoc$reidentify.hlpidentify$t_reidentify.xrspectextdoc$rspectext.hlprspectext.clsaperturesdoc$sapertures.hlpt_sapertures.xsbandsdoc$sbands.hlpt_sbands.xsarithdoc$sarith.hlpt_sarith.xscombinedoc$scombine.hlpt_scombine.xscoordsdoc$scoords.hlpt_scoords.xscopydoc$scopy.hlpscopy.clsensfuncdoc$sensfunc.hlpsensfunc$t_sensfunc.xsfitdoc$sfit.hlpt_sfit.xsflipdoc$sflip.hlpt_sflip.xsinterpdoc$sinterp.hlpt_sinterp.xskytweakdoc$skytweak.hlpt_tweak.xslistdoc$slist.hlpt_slist.xspecplotdoc$specplot.hlpt_specplot.xspecshiftdoc$specshift.hlpt_specshift.xsplotdoc$splot.hlpsplot$splot.xstandarddoc$standard.hlpt_standard.xtelluricdoc$telluric.hlpt_tweak.xwspectextdoc$wspectext.hlpwspectext.clpackagedoc$xonedspec.hlpxonedspec.clspecwcsdoc$specwcs.hlpsptabguidedoc$sptabguide.hlplinelistslinelists$READMEonedstdsonedstds$READMEff6Kluy1DPdxrvdefdir=sptable$src/xrv/doc=sptable$src/xrv/doc/xrv=sptable$src/xrv/xrvid=sptable$src/xrv/rvidlines/filtparsdoc$filtpars.hlpxrv$filtpars.parcontinparsdoc$continpars.hlpxrv$continpars.parkeywparsdoc$keywpars.hlpxrv$keywpars.parfxcordoc$fxcor.hlpxrv$t_fxcor.xrvidlinesdoc$rvidlines.hlpxrvid$t_identify.xrvreidlinesdoc$rvreidlines.hlpxrvid$t_reidentify.xrevisionsxrv$RevisionsZZ$9AUi|7=Ul_rootsptable$lib/root.hd_sptablesptable$lib/root1.hdsptablesptable$sptable.mensptable$sptable.hlpsptable$sptable.clsptable$sptable.hdsptable$sptable.mensptodsptable$src/xonedspec/xonedspec.mensptable$src/xonedspec/xonedspec.clsptable$src/xonedspec/xonedspec.hdsptable$src/xonedspec/xonedspec.mensptrvsptable$src/xrv/xrv.mensptable$src/xrv/xrv.clsptable$src/xrv/xrv.hdsptable$src/xrv/xrv.menn_indexfAQ=Csptable$lib/root.hd>7#sptable$lib/root1.hd^>7$ sptable$sptable.hdAH(sptable$src/xonedspec/xonedspec.hdAQ;?sptable$src/xrv/xrv.hd7AH)sptable-1.0.pre20180612/lib/libex.a000077700000000000000000000000001331023215600206472../bin/libex.austar00rootroot00000000000000sptable-1.0.pre20180612/lib/libsmw.a000077700000000000000000000000001331023215600212332../bin/libsmw.austar00rootroot00000000000000sptable-1.0.pre20180612/lib/linelists/000077500000000000000000000000001331023215600171655ustar00rootroot00000000000000sptable-1.0.pre20180612/lib/linelists/README000066400000000000000000000111161331023215600200450ustar00rootroot00000000000000This directory contains line lists which are used by IDENTIFY/REIDENTIFY. There may additional applications using these lists in the future. LINE LISTS (eg coordlist = linelists$henear.dat) argon.dat - Vacuum wavelengths of the infrared emission lines of argon. The second column lists relative intensities. The data are from "Wavelength Standards in the Infrared", K.N. Rao et al., 1966. ctiohenear.dat - HENEAR list used at CTIO ctiohear.dat - HEAR list used at CTIO cuar.dat - A linelist for the built-in comparison source for the KPNO Hydra instrument consisting of 6 CuAr hollow cathode lamps. The identifications are from Coude Echelle spectra and a list from AAO (Schinckel, Phillips, and Hill). All wavelengths are from Norlen (Physica Scripta. Vol 8, 249-268, 1973) except for a few CuI lines from Striganov and Sventitskii (Tables of Spectral Lines of Neutral and Ionized Atoms, 1968). fear.dat - FeAr Hollow Cathode line list between 3,000A and 10,000A. The reference for this line list is "A CCD Atlas of Comparison Spectra: FeAr Hollow Cathode, 3000A - 10,000A" by D. Willmarth. The atlas is available from the KPNO User Support Office. henear.dat - Selected list of HENEAR lines to be used for KPNO IIDS/IRS reductions - this list is identical to that in the KPNO mountain reduction software for these instruments. Source of wavelengths: 1982 MIT Wavelength Tables Vol. 2. Multiplet numbers from Charlotte Moore's A Multiplet Table of Astrophysical Interest 1972. henearhres.dat - High resolution list of HENEAR lines covering the wavelength range 3300A - 11,100A. See "A CCD Atlas of Comparison Spectra: He-Ne-Ar, 3300A - 11,100A" by Daryl Willmarth, April 1993. idhenear.dat - Extended list of HENEAR lines for general use. Source of wavelengths: 1982 MIT Wavelength Tables Vol. 2. Multiplet numbers from Charlotte Moore's A Multiplet Table of Astrophysical Interest 1972. krypton.dat - Vacuum wavelengths of the infrared emission lines of krypton. The second column lists relative intensities. The data are from "Wavelength Standards in the Infrared", K.N. Rao et al., 1966. lowskylines.dat - Rest (air) wavelengths of all the OH vibration-rotation lines in the sky spectrum, useful for low dispersion spectra - see "Sky Spectra at a Light-Polluted Site and Wavelength Zero Points", Osterbrock and Martel, UCO/LO Bulletin No. __ . ohlines.dat - Vacuum wavelengths from calculations of Chamberlain (lambda < 1.20microns) and laboratory observations of Hubbard and Brault using the Solar FTS (lambda > 1.2microns). The second column gives the observed intensity in kR (Steed and Baker 1979, Appl. Opt., 18, 3386) of observed atmospheric lines. skylines.dat - Night sky lines from various sources compiled by Don York. See file header for comments. thar.dat - List of thorium-argon lines (3180 - 9665), A CCD Atlas of Comparison Spectra: Thorium-Argon Hollow Cathode 3180 A - 9665 A, revised Feb. 1992, Daryl Willmarth. vacidhenear.dat - The idhenear.dat list converted to vacuum wavelengths using the equation: (n-1) x 10**8 = 8342.13 + 2406030 (130 - sigma**2)**-1 + 15997(38.9 - sigma**2)**-1 where sigma = 1/lambda(air) and air at T=15C, P=760mmHg, and no water vapour. (See B. Edlen, 1966 Metrologia, Vol. 2, p. 71). vacthar.dat - The thar.dat list converted to vacuum wavelengths using the equation: (n-1) x 10**8 = 8342.13 + 2406030 (130 - sigma**2)**-1 + 15997(38.9 - sigma**2)**-1 where sigma = 1/lambda(air) and air at T=15C, P=760mmHg, and no water vapour. (See B. Edlen, 1966 Metrologia, Vol. 2, p. 71). xenon.dat - Vacuum wavelengths of the infrared emission lines of xenon. The second column lists relative intensities. The data are from "Wavelength Standards in the Infrared", K.N. Rao et al., 1966. thorium.dat - Obsolete and will disappear in the future. Use thar.dat. vacthorium.dat - Obsolete and will disappear in the furture. Use vacthar.dat. sptable-1.0.pre20180612/lib/linelists/airvac.cl000066400000000000000000000034131331023215600207530ustar00rootroot00000000000000# AIRVAC -- Convert dispersion coordinates to air or vacuum values. # The index of refraction formulas used are from Allen's Astrophysical # Quantities (1973). # # This task takes in a file of wavelengths in Angstroms and converts between # air and vacuum to an output file of wavelengths in Angstroms. It will # pass any comments and data after the first wavelength column to the # output. # # To install and use copy the script to your IRAF home directory with the # name airvac.cl. Then interactively (for use during the current IRAF session) # or in your loginuser.cl (for use during future IRAF sessions) enter # "task airvac=home$airvac.cl". procedure airvac (input, output) file input {prompt="Input file of wavelengths in Angstroms"} file output {prompt="Output file of wavelengths in Angstroms"} string type = "air2vac" {prompt="Conversion (air2vac|vac2air)", enum = "air2vac|vac2air"} real t = 15. {prompt="Temperature (C)"} real p = 760. {prompt="Pressure (mmHg)"} real f = 4. {prompt="Water vapour pressure (mmHg)"} struct *inlist begin file in, out struct label int n real a, b, w in = input out = output printf ("# airvac (%s, %s, type=%s, t=%.6g, p=%.6g, f=%.6g)\n", in, out, type, t, p, f, > out) inlist = input while (fscan (inlist, line) != EOF) { n = fscan (line, w, label) if (n == 0) { print (line, >> out) next } b = (10000. / w) ** 2 a = 64.328 + 29498.1 / (146 - b) + 255.4 / (41 - b) a = a * p * (1 + (1.049 - 0.0157 * t) * 1e-6 * p) / (720.883 * (1 + 0.003661 * t)) a = a - (0.0624 - 0.000680 * b) / (1 + 0.003661 * t) * f a = 1 + a / 1e6 if (type == "air2vac") w = a * w else if (type == "vac2air") w = w / a print (w, label, >> out) } inlist = "" end sptable-1.0.pre20180612/lib/linelists/argon.dat000066400000000000000000000042161331023215600207700ustar00rootroot00000000000000# units Angstroms 11081.9 10 11109.5 3 11396.8 8 11445. 12 11470.7 6 11491.2 120 11583.5 1 11671.9 200 11690.8 1 11722.7 10 11736.4 9 11887.7 4 11899.9 1 11946.6 12 11947.1 B 12029.9 2 12115.6 150 12143. 30 12154.7 2 12346.8 30 12359.7 10 12406.2 100 12442.7 300 12459.5 100 12491.1 200 12557.7 2 12625.1 2 12705.7 100 12736.9 30 12749.7 12 12806.2 200 12936.7 40 12960.2 500 13011.8 200 13032. 2 13217.6 200 13231.7 200 13234.5 200 13276.3 500 13305.9 4 13316.8 800 13333.8 6 13370.8 1000 13410.2 100 13503.1 30 13507.9 1000 13547.9 8 13577.3 12 13603. 40 13626.4 400 13682.3 200 13722.3 1000 13829.5 B 13832.1 9 13911.3 8 13914.4 50 14097.5 150 14253.1 8 14260.8 13 14599.7 11 14600.5 B 14638.4 30 14654.3 30 14697.4 4 14743.2 5 15050.6 100 15176.8 25 15306.1 40 15333.5 9 15353. 7 15357.3 3 15406.8 6 15904. 10 15993.9 25 16127.1 1 16184.4 4 16441.1 13 16524.4 30 16553.8 8 16744.6 9 16945.2 500 17449.7 11 17450. B 17828.9 5 17919.6 40 18423.2 2 18432.8 10 18433.4 B 18434.5 B 19822.9 5 19971.2 4 20322.6 2 20621.9 50 20652.8 2 20739.3 2 20741. B 20816.7 2 20991.8 30 21338.7 1 21540.1 8 22045.6 1 22083.2 8 23139.5 20 23851.5 1 23973.1 20 25132.1 25 25491.6 3 25512.2 8 25668. 10 26843. 4 26917.1 40 27233. 3 28202.4 30 28246. 30 28321.8 25 28435. 1 28538.4 3 28620.2 200 28697.9 50 28712.8 5 28782.9 500 28843.1 100 28989.2 2 29108.5 3 29134.8 50 29262.9 4 29280.7 20 29566.3 3 29796.8 250 30462.1 4 30552.8 2 30996.2 10 31333. 100 31727.3 5 32256.3 3 32305.9 1 32333.9 5 32888.6 4 33078.8 15 33148.4 15 33293.4 10 34960.5 1 36220.9 8 36312.4 3 36390.5 2 36395. 2 36492. 10 37013.6 2 37085.9 5 37143.5 3 37186.2 1 37261.2 2 38120.7 3 38331.2 1 39664.3 1 39670.7 1 40080.4 2 40164.8 1 40169.7 1 40433.1 3 sptable-1.0.pre20180612/lib/linelists/ctiohear.dat000066400000000000000000000205131331023215600214560ustar00rootroot00000000000000# units Angstroms 3187.745 3243.689 3249.800 3307.228 3350.924 3376.436 3576.616 3588.441 3613.643 3718.207 3729.309 3737.889 3780.840 3819.607 3850.581 3868.528 3888.648 3964.729 4026.191 4103.912 4120.812 4131.724 4143.761 4158.591 4181.884 4237.220 4259.362 4266.286 4272.169 4277.528 4300.101 4387.929 4448.879 4471.479 4481.811 4510.733 4545.052 4579.350 4589.898 4609.567 4657.901 4713.146 4726.868 4735.906 4764.865 4806.021 4847.810 4879.864 4889.042 4921.931 4965.080 5015.680 5047.738 5062.037 5162.285 5187.746 5221.271 5421.352 5495.874 5558.702 5606.733 5739.520 5802.080 5834.263 5875.621 6032.127 6416.307 6483.083 6752.834 6871.289 6937.664 6965.431 7030.251 7147.042 7206.980 7272.936 7281.349 7311.716 7353.293 7372.118 7383.981 7503.869 7514.652 7635.106 7891.075 7948.176 8006.157 8014.786 8103.693 8115.311 8264.523 8408.210 8424.648 8521.442 8605.776 8667.944 8761.686 9122.967 9224.499 9291.531 9354.220 9657.786 9784.503 10470.05 10830.2 sptable-1.0.pre20180612/lib/linelists/ctiohenear.dat000066400000000000000000000267631331023215600220160ustar00rootroot00000000000000# units Angstroms 3187.745 3243.689 3249.800 3307.228 3350.924 3376.436 3576.616 3588.441 3613.643 3718.207 3729.309 3737.889 3780.840 3819.607 3850.581 3868.528 3888.648 3964.729 4026.191 4052.921 4103.912 4120.812 4131.724 4143.761 4158.591 4181.884 4237.220 4259.362 4266.286 4272.169 4277.528 4300.101 4387.929 4448.879 4471.479 4481.811 4510.733 4545.052 4579.350 4589.898 4609.567 4657.901 4713.146 4726.868 4735.906 4764.865 4806.021 4847.810 4879.864 4889.042 4921.931 4965.080 5015.680 5047.738 5062.037 5162.285 5187.746 5221.271 5400.562 5421.352 5495.874 5558.702 5606.733 5739.520 5748.299 5764.419 5820.156 5834.263 5852.488 5875.621 5881.895 5944.834 6029.997 6032.127 6043.223 6074.338 6096.163 6143.062 6163.594 6217.281 6266.495 6304.789 6334.428 6382.991 6402.246 6416.307 6506.528 6532.882 6598.953 6717.043 6752.834 6871.289 6929.467 6937.664 6965.431 7024.050 7030.251 7032.413 7147.042 7173.938 7206.980 7245.167 7272.936 7281.349 7311.716 7353.293 7372.118 7383.981 7438.898 7488.871 7503.869 7514.652 7635.106 7891.075 7948.176 8006.157 8014.786 8103.693 8115.311 8264.523 8300.326 8377.607 8408.210 8424.648 8495.360 8521.442 8591.259 8605.776 8634.647 8654.383 8667.944 8761.686 8853.867 8919.501 9122.967 9148.672 9224.499 9291.531 9354.220 9459.210 9657.786 9665.424 9784.503 10470.05 10830.2 sptable-1.0.pre20180612/lib/linelists/cuar.dat000066400000000000000000000107421331023215600206150ustar00rootroot00000000000000# CuAr Line List: 3094A-10470A # units Angstroms 3093.4019 3139.0176 3161.3726 3169.6685 3181.0376 3204.3210 3243.6887 3249.8003 3281.7016 3307.2283 3350.9243 3376.4359 3388.5309 3454.0952 3476.7474 3478.2324 3480.5055 3499.4765 3509.7785 3514.3877 3519.9936 3521.2601 3521.9781 3535.3196 3548.5144 3554.3058 3556.9041 3559.5081 3561.0304 3565.0298 3567.6564 3576.6156 3581.6084 3582.3546 3588.4407 3605.8792 3606.5218 3622.1375 3632.6831 3637.0310 3639.8329 3649.8323 3650.8896 3655.2782 3656.0498 3659.5289 3660.437 3669.6024 3671.0048 3673.2645 3678.2701 3680.0609 3682.5448 3690.8951 3706.9302 3709.9088 3714.7337 3717.1713 3718.2065 3720.4265 3724.5165 3729.3087 3737.889 3746.4476 3750.4799 3753.5177 3754.0498 3763.5053 3765.27 3766.1186 3770.52 3780.8398 3786.3824 3796.5934 3799.382 3803.1724 3808.5748 3809.4561 3819.0159 3825.6729 3826.8072 3834.6787 3841.5187 3844.7311 3845.4055 3850.5813 3856.1382 3861.747 3868.5284 3872.1371 3875.2645 3880.3332 3891.4017 3891.9792 3894.66 3895.2502 3900.6266 3911.576 3914.7675 3925.7188 3926.0456 3928.6233 3931.2359 3932.5466 3944.2717 3946.0971 3947.5046 3948.9789 3952.7291 3958.38 3968.3594 3974.4766 3974.759 3979.3559 3979.7155 3988.1576 3992.0535 3994.7918 3999.252 4001.1379 4005.3628 4011.2093 4013.8566 4019.8429 4022.629 4031.3783 4033.8093 4035.46 4038.8043 4042.8937 4044.4179 4045.6773 4045.9654 4047.4815 4052.9208 4054.5258 4062.641 4063.238 4070.7835 4072.0047 4072.3849 4076.6284 4076.9432 4079.5738 4082.3872 4099.4563 4103.9121 4112.8153 4116.3753 4128.64 4129.6823 4131.7235 4144.2435 4156.086 4158.5905 4164.1795 4168.9682 4178.3658 4179.2973 4181.8836 4189.6511 4190.7129 4191.0294 4198.317 4199.8891 4200.6745 4201.5549 4201.9715 4203.4109 4217.4308 4218.6649 4222.6373 4226.6089 4226.9876 4228.158 4229.8696 4237.2198 4248.956 4251.1846 4255.6034 4259.3619 4266.2864 4266.5271 4272.1689 4277.5282 4282.8976 4297.9645 4300.1008 4300.6495 4309.2392 4331.1995 4332.0297 4333.5612 4335.3379 4337.0708 4338.2314 4345.168 4345.8966 4348.064 4352.2049 4362.0662 4363.7945 4367.8316 4370.7532 4371.329 4372.49 4374.8579 4375.9542 4379.6668 4382.928 4383.7535 4385.0566 4386.9656 4397.7971 4400.0968 4400.9863 4401.755 4404.9022 4406.4704 4420.9124 4423.9944 4426.0011 4430.189 4430.9963 4433.838 4438.1175 4439.4614 4439.8793 4440.1216 4445.8483 4448.4597 4448.8792 4449.5206 4460.5574 4474.7594 4480.35 4481.8107 4490.9816 4498.5384 4502.9268 4507.8339 4509.374 4510.7332 4522.323 4530.5523 4530.785 4535.4903 4537.6426 4543.8692 4545.0519 4547.7589 4561.0128 4563.7429 4564.4054 4579.3495 4589.8978 4596.0967 4598.7627 4609.5673 4628.4409 4637.2328 4651.124 4657.9012 4682.2759 4702.3161 4721.5910 4726.8683 4732.0532 4735.9058 4764.8646 4806.0205 4847.8095 4865.9105 4876.2611 4879.8635 4882.2432 4888.2612 4889.0422 4904.7516 4914.3146 4933.2091 4942.9214 4965.0795 4972.1597 5009.3344 5017.1628 5062.0371 5090.4951 5118.2023 5125.7654 5141.7827 5145.3083 5151.3907 5162.2846 5165.7728 5176.2292 5187.7462 5216.8139 5218.2020 5221.2710 5254.4648 5421.3517 5439.9891 5442.2427 5443.6893 5451.6520 5457.4157 5467.1608 5473.4516 5490.1194 5495.8738 5498.1841 5506.1128 5524.9570 5558.7020 5572.5413 5577.6845 5581.8714 5588.7200 5597.4756 5601.1216 5606.7330 5641.3751 5648.6863 5650.7043 5659.1272 5681.9001 5691.6612 5700.8730 5738.3869 5739.5196 5772.1143 5774.0087 5783.5360 5802.0798 5834.2633 5860.3103 5882.6242 5888.5841 5912.0853 5916.5992 5927.1258 5928.8130 5942.6686 5949.2583 5971.6008 5998.9987 6005.7242 6013.6777 6025.1500 6032.1274 6043.2233 6046.8977 6052.7229 6059.3725 6064.7508 6081.2433 6085.8797 6090.7848 6098.8031 6101.1615 6103.5390 6105.6351 6113.4657 6114.9234 6119.6565 6123.3619 6127.4160 6128.7227 6145.4411 6155.2385 6165.1232 6170.1740 6173.0964 6174.4032 6212.5031 6215.9383 6243.1201 6296.8722 6307.6570 6333.1459 6357.0229 6364.8937 6369.5748 6384.7169 6396.6097 6399.2065 6403.0128 6416.3071 6418.3703 6431.5550 6437.6003 6441.8994 6443.8598 6466.5526 6468.0483 6472.4294 6481.1453 6483.0825 6493.9694 6499.1061 6538.1120 6604.8534 6620.9665 6632.0837 6638.2207 6639.7403 6643.6976 6656.9386 6660.6761 6664.0510 6666.3588 6677.2817 6684.2929 6719.2184 6752.8335 6756.1631 6766.6117 6827.2488 6861.2688 6863.5350 6871.2891 6879.5824 6888.1742 6937.6642 6951.4776 6965.4307 7030.2514 7067.2181 7147.0416 7206.9804 7272.9359 7311.7159 7353.2930 7372.1184 7383.9805 7503.8691 7514.6518 7635.1060 7723.7611 7724.2072 7948.1764 8006.1567 8014.7857 8103.6931 8115.311 8264.5225 8408.2096 8424.6475 8521.4422 8667.9442 9122.9674 9224.4992 9354.2198 9657.7863 9784.5028 10470.0535 sptable-1.0.pre20180612/lib/linelists/fear.dat000066400000000000000000000132071331023215600205770ustar00rootroot00000000000000# FEAR - FeAr Line List 3000A-10,000A by D. Willmarth # units Angstroms 3020.6391 FeI 3024.0325 FeI 3037.3887 FeI 3047.6043 FeI 3057.4456 FeI 3059.0856 FeI 3225.7850 FeI 3243.6887 ArII 3350.9243 ArII 3376.4359 ArII 3388.5309 ArII 3399.3335 FeI 3404.3535 FeI 3407.4585 FeI 3413.1312 FeI 3427.1192 FeI 3443.8762 FeI 3465.8603 FeI 3475.4500 FeI 3476.7016 FeI 3480.5055 ArII 3490.5737 FeI 3509.7785 ArII 3519.9936 ArII 3535.3196 ArII 3541.0832 FeI 3548.5144 ArII 3559.5081 ArII 3561.0304 ArII 3565.3786 FeI 3576.6156 ArII 3581.1925 FeI 3588.4407 ArII 3608.8587 FeI 3618.7676 FeI 3631.4629 FeI 3647.8424 FeI 3679.9132 FeI 3687.4564 FeI 3705.5657 FeI 3709.2459 FeI 3718.2065 ArII 3719.9346 FeI 3722.5625 FeI 3727.6187 FeI 3729.3087 ArII 3733.3169 FeI 3734.8636 FeI 3737.1313 FeI 3745.5608 FeI 3748.2617 FeI 3749.4847 FeI 3758.2324 FeI 3763.7885 FeI 3767.1914 FeI 3812.9641 FeI 3815.8397 FeI 3820.4251 FeI 3824.4436 FeI 3825.8805 FeI 3827.8226 FeI 3834.2222 FeI 3856.3717 FeI 3859.9114 FeI 3868.5284 ArII 3878.5730 FeI 3886.2820 FeI 3895.6558 FeI 3899.7073 FeI 3902.9452 FeI 3906.4794 FeI 3920.2577 FeI 3922.9115 FeI 3925.7188 ArII 3930.2962 FeI 3946.0971 ArII 3948.9789 ArI 3969.2570 FeI 3979.3559 ArII 3994.7918 ArII 4005.2414 FeI 4033.8093 ArII 4042.8937 ArII 4044.4179 ArI 4045.8130 FeI 4052.9208 ArII 4063.5939 FeI 4103.9121 ArII 4118.5442 FeI 4131.7235 ArII 4143.8688 FeI 4158.5905 ArI 4164.1795 ArI 4198.3036 FeI 4200.6745 ArI 4216.1828 FeI 4222.6373 FeI 4237.2198 ArII 4259.3619 ArI 4271.7593 FeI 4277.5282 ArII 4294.1243 FeI 4300.1008 ArI 4307.9015 FeI 4315.0837 FeI 4325.7615 FeI 4331.1995 ArII 4333.5612 ArI 4335.3379 ArI 4337.0708 ArII 4345.1680 ArII 4348.0640 ArII 4352.2049 ArII 4362.0662 ArII 4367.8316 ArII 4375.9294 FeI 4379.6668 ArII 4383.5445 FeI 4385.0566 ArII 4400.9863 ArII 4404.7499 FeI 4415.1222 FeI 4426.0011 ArII 4427.3039 FeI 4430.1890 ArII 4433.8380 ArII 4439.4614 ArII 4448.8792 ArII 4461.6521 FeI 4466.5508 FeI 4474.7594 ArII 4481.8107 ArII 4489.7389 FeI 4490.9816 ArII 4498.5384 ArII 4502.9268 ArII 4510.7332 ArI 4522.3230 ArI 4528.6133 FeI 4530.5523 FeI 4545.0519 ArII 4579.3495 ArII 4589.8978 ArII 4596.0967 ArI 4598.7627 ArII 4609.5673 ArII 4628.4409 ArI 4637.2328 ArII 4647.4329 FeI 4657.9012 ArII 4702.3161 ArI 4726.8683 ArII 4732.0532 ArII 4735.9058 ArII 4764.8646 ArII 4806.0205 ArII 4847.8095 ArII 4859.7406 FeI 4879.8635 ArII 4889.0422 ArII 4891.4919 FeI 4920.5018 FeI 4933.2091 ArII 4957.5966 FeI 4965.0795 ArII 4972.1597 ArII 5006.1175 FeI 5009.3344 ArII 5012.0674 FeI 5017.1628 ArII 5051.6336 FeI 5062.0371 ArII 5083.3377 FeI 5090.4951 ArII 5110.3849 FeI 5125.7654 ArII 5141.7827 ArII 5145.3083 ArII 5162.2846 ArI 5167.4873 FeI 5171.5953 FeI 5187.7462 ArI 5194.9412 FeI 5221.2710 ArI 5227.1697 FeI 5232.9394 FeI 5266.5546 FeI 5269.5366 FeI 5283.6206 FeI 5302.2989 FeI 5324.1782 FeI 5328.0376 FeI 5341.0233 FeI 5371.4892 FeI 5397.1269 FeI 5405.7741 FeI 5415.1997 FeI 5421.3517 ArI 5424.0686 FeI 5429.6955 FeI 5434.5228 FeI 5439.9891 ArI 5446.8937 FeI 5451.6520 ArI 5455.6090 FeI 5495.8738 ArI 5514.3760 ArI 5524.9570 ArI 5558.7020 ArI 5569.6177 FeI 5577.6845 ArII 5586.7553 FeI 5606.7330 ArI 5615.6436 FeI 5648.6863 ArI 5650.7043 ArI 5681.9001 ArI 5691.6612 ArII 5739.5196 ArI 5783.5360 ArI 5786.5553 ArII 5802.0798 ArI 5812.7592 ArII 5834.2633 ArI 5860.3103 ArI 5882.6242 ArI 5888.5841 ArI 5912.0853 ArI 5916.5992 ArI 5927.1258 ArI 5928.8130 ArI 5942.6686 ArI 5949.2583 ArI 5964.4723 ArI 5968.3199 ArI 5971.6008 ArI 5987.3016 ArI 5998.9987 ArI 6005.7242 ArI 6013.6777 ArI 6025.1500 ArI 6032.1274 ArI 6043.2233 ArI 6046.8977 ArI 6052.7229 ArI 6059.3725 ArI 6081.2433 ArI 6085.8797 ArI 6090.7848 ArI 6098.8031 ArI 6105.6351 ArI 6114.9234 ArII 6123.3619 ArII 6127.4160 ArI 6145.4411 ArI 6155.2385 ArI 6165.1232 ArI 6170.1740 ArII 6172.2778 FeI 6191.5583 ArII 6201.1002 ArI 6212.5031 ArI 6215.9383 FeI 6230.7260 ArII 6243.1201 FeI 6246.3172 ArI 6248.4055 FeI 6252.5537 FeI 6296.8722 ArI 6307.6570 ArII 6324.4163 ArI 6364.8937 ArI 6369.5748 ArI 6384.7169 FeI 6399.9995 ArII 6403.0128 FeI 6411.6468 ArI 6416.3071 ArII 6437.6003 ArI 6466.5526 ArII 6483.0825 ArII 6538.1120 ArI 6604.8534 ArI 6614.3475 ArII 6620.9665 ArII 6632.0837 ArI 6638.2207 ArII 6639.7403 ArII 6643.6976 ArII 6656.9386 ArI 6660.6761 ArI 6664.0510 ArI 6666.3588 ArII 6677.2817 ArI 6684.2929 ArII 6719.2184 ArI 6752.8335 ArI 6766.6117 ArI 6861.2688 ArII 6871.2891 ArI 6879.5824 ArI 6888.1742 ArI 6937.6642 ArI 6951.4776 ArI 6965.4307 ArI 7030.2514 ArI 7067.2181 ArI 7107.4778 ArI 7125.8200 ArI 7147.0416 ArI 7158.8387 ArI 7206.9804 ArI 7265.1724 ArI 7272.9359 ArI 7311.7159 ArI 7316.0050 ArI 7353.2930 ArI 7372.1184 ArI 7383.9805 ArI 7392.9801 ArI 7412.3368 ArI 7425.2942 ArI 7435.3683 ArI 7471.1641 ArI 7484.3267 ArI 7503.8691 ArI 7514.6518 ArI 7589.3151 ArII 7635.1060 ArI 7670.0575 ArI 7798.5604 ArI 7868.1946 ArI 7891.0750 ArI 7916.4420 ArI 7948.1764 ArI 7948.1964 ArI 8006.1567 ArI 8014.7857 ArI 8037.2183 ArI 8046.1169 ArI 8053.3085 ArI 8066.6046 ArI 8103.6931 ArI 8115.3110 ArI 8143.5050 ArI 8203.4352 ArI 8264.5225 ArI 8327.0526 FeI 8384.7240 ArI 8387.7700 FeI 8408.2096 ArI 8424.6475 ArI 8490.3065 ArI 8521.4422 ArI 8605.7762 ArI 8620.4602 ArI 8667.9442 ArI 8688.6213 FeI 8761.6862 ArI 8799.0875 ArI 8962.1468 ArI 9008.4636 ArII 9017.5912 ArII 9122.9674 ArI 9194.6385 ArI 9224.4992 ArI 9291.5313 ArI 9354.2198 ArI 9508.4513 ArI 9657.7863 ArI 9784.5028 ArI 10470.0535 ArI sptable-1.0.pre20180612/lib/linelists/henear.dat000066400000000000000000000036151331023215600211260ustar00rootroot00000000000000# units Angstroms 3187.743 HeI 3464.14 AII(70) 3520.5 NeI 3520.472 blend with A 3520.0 3545.58 AII(70) 3559.51 AII(70) 3718.21 AII(131) blend with 3724.51 AII(131) 3729.29 AII(10) 3737.89 AII(131) 3780.84 AII(54) 3850.57 AII(10) 3888.646 HeI 3928.62 AII(10) 3964.727 HeI 4026.189 HeI 4044.418 AI(4) 4072.2 blend A 4072.01 and 4072.40 4131.73 AII(32) 4158.590 AI(2) 4259.361 AI(9) 4277.55 AII(32) blend with AI(4) 4272.168 4300.4 AI(4) blend 4426.01 AII(7) 4471.477 HeI 4510.733 AI(9) 4545.08 AII(15) 4579.39 AII(17) 4657.94 AII(15) 4713.143 HeI 4764.89 AII(15) 4806.07 AII(6) 4879.90 AII(14) 4921.929 HeI 4965.12 AII(14) 5015.675 HeI 5187.746 AI 5221.270 AI 5400.562 NeI(3) 5495.872 AI(14) 5572.548 AI 5606.732 AI 5650.703 AI(12) 5748.299 NeI(13) 5764.418 NeI(13) 5852.4878 NeI(6) 5875.618 HeI 5944.8342 NeI(1) 6029.9971 NeI(3) 6074.3377 NeI(3) 6096.1630 NeI 6143.0623 NeI(1) 6163.5939 NeI(5) 6217.2813 NeI(1) 6266.4950 NeI(5) 6304.7892 NeI 6334.4279 NeI(1) 6382.9914 NeI(3) 6402.246 NeI(1) 6506.5279 NeI(3) 6532.8824 NeI 6598.9529 NeI(6) 6678.2 blend HeI 6678.149 with NeI 6678.2764 6717.0428 NeI 6752.832 AI(11) 6871.290 AI 6929.468 NeI(6) 6965.430 AI(1) 7032.4127 NeI(1) 7065.188 HeI 7147.041 AI(1) 7173.939 NeI(6) 7245.167 NeI(3) 7281.349 HeI 7383.980 AI 7438.899 NeI 7488.872 NeI 7503.867 AI(8) 7514.651 AI 7635.105 AI(1) 7723.8 blend AI(1) 7723.760 and AI(6) 7724.206 7891.075 AI 7948.175 AI(6) 8006.156 AI(3) 8012.000 AI Blend of 8006 and 8014 for low dispersion 8014.786 AI(1) 8082.458 NeI(6) 8103.692 AI(3) 8110.000 AI Blend of 8103 and 8115 for low dispersion 8115.311 AI(1) 8264.521 AI(8) 8408.208 AI(8) 8424.647 AI(3) 8521.441 AI(8) sptable-1.0.pre20180612/lib/linelists/henearhres.dat000066400000000000000000000125141331023215600220060ustar00rootroot00000000000000# units Angstroms 3187.745 HeI 3307.2283 ArII 3319.3446 ArI 3350.9243 ArII 3354.55 HeI 3373.4823 ArI 3376.4359 ArII 3388.5309 ArII 3397.866 NeII 3406.1804 ArI 3414.4583 ArII 3417.9035 NeI 3421.6107 ArII 3454.0952 ArII 3464.1272 ArII 3472.5711 NeI 3476.7474 ArII 3480.5055 ArII 3509.7785 ArII 3514.3877 ArII 3535.3196 ArII 3548.5144 ArII 3554.3058 ArI 3559.5081 ArII 3561.0304 ArII 3567.6564 ArI 3572.296 ArI 3576.6156 ArII 3588.4407 ArII 3600.1691 NeI 3606.5218 ArI 3613.643 HeI 3622.1375 ArII 3637.031 ArII 3639.8329 ArII 3643.1169 ArI 3655.2782 ArII 3690.8951 ArI 3718.2065 ArII 3720.4265 ArII 3724.5165 ArII 3729.3087 ArII 3737.889 ArII 3780.8398 ArII 3786.3824 ArII 3796.5934 ArII 3799.382 ArII 3803.1724 ArII 3809.4561 ArII 3819.6072 HeI (also 3819.758 HeI at 0.1 intensity of 3819.6072) 3834.6787 ArI 3850.5813 ArII 3868.5284 ArII 3875.2645 ArII 3888.648 HeI 3914.7675 ArII 3925.7188 ArII 3928.6233 ArII 3932.5466 ArII 3946.0971 ArII 3947.5046 ArI 3948.9789 ArI 3964.7289 HeI 3968.3594 ArII 3974.4766 ArII 3979.3559 ArII 3994.7918 ArII 4009.268 HeI 4013.8566 ArII 4033.8093 ArII 4035.46 ArII 4044.4179 ArI 4052.9208 ArII 4054.5258 ArI 4082.3872 ArII 4103.9121 ArII 4112.8153 ArII 4120.815 HeI 4131.7235 ArII 4156.086 ArII 4158.5907 ArI 4164.1795 ArI 4168.967 HeI 4181.8836 ArI 4198.317 ArI 4200.6745 ArI 4222.6373 ArII 4237.2198 ArII 4251.1846 ArI 4259.3619 ArI 4272.1689 ArI 4277.5282 ArII 4282.8976 ArII 4300.1008 ArI 4331.1995 ArII 4333.5612 ArI 4335.3379 ArI 4345.168 ArI 4348.064 ArII 4352.2049 ArII 4367.8316 ArII 4379.6668 ArII 4426.0011 ArII 4430.189 ArII 4437.551 HeI 4448.8792 ArII 4453.9177 KrI 4463.6901 KrI 4471.479 HeI (also 4471.682 HeI at 0.1 intensity of 4471.479) 4474.7594 ArII 4481.8107 ArII 4490.9816 ArII 4498.5384 ArII 4502.3546 KrI 4510.7332 ArI 4522.323 ArI 4530.5523 ArII 4535.4903 ArII 4537.6426 ArII 4545.0519 ArII 4579.3495 ArII 4589.8978 ArII 4596.0967 ArI 4598.7627 ArII 4609.5673 ArII 4628.4409 ArI 4637.2328 ArII 4657.9012 ArII 4702.3161 ArI 4713.1455 HeI (also 4713.376 at 1/7 intensity of 4713.1455) 4721.591 ArII 4726.8683 ArII 4735.9058 ArII 4764.8646 ArII 4768.675 ArI 4806.0205 ArII 4847.8095 ArII 4865.91 ArII 4876.2611 ArI 4879.8635 ArII 4894.6909 ArI 4904.7516 ArII 4921.931 HeI 4933.2091 ArII 4965.0795 ArII 4972.1597 ArII 5009.3344 ArII 5015.6779 HeI 5047.738 HeI 5062.0371 ArII 5141.7827 ArII 5145.3083 ArII 5151.3907 ArI 5162.2846 ArI 5187.7462 ArI 5221.271 ArI 5252.788 ArI 5330.7775 NeI 5373.4943 ArI 5393.9719 ArI 5400.5617 NeI 5410.473 ArI 5421.3517 ArI 5451.652 ArI 5467.1704 ArI 5473.4516 ArI 5495.8738 ArI 5506.1128 ArI 5524.957 ArI 5588.72 ArI 5597.4756 ArI 5606.733 ArI 5681.9001 ArI 5689.8163 NeI 5700.873 ArI 5739.5196 ArI 5748.2985 NeI 5764.4188 NeI 5772.1143 ArI 5783.536 ArI 5820.1558 NeI 5852.4878 NeI 5875.621 HeI (also 5875.966 at 1/7 intensity of 5875.621) 5881.895 NeI 5888.5841 ArI 5912.0853 ArI 5928.813 ArI 5944.8342 NeI 5975.534 NeI 6043.2233 ArI 6074.3377 NeI 6096.1631 NeI 6114.9234 ArII 6128.4499 NeI 6143.0626 NeI 6155.2385 ArI 6163.5939 NeI 6212.5031 ArI 6217.2812 NeI 6266.495 NeI 6296.8722 ArI 6304.789 NeI 6334.4278 NeI 6382.9917 NeI 6402.246 NeI 6416.3071 ArI 6456.291 KrI 6506.5281 NeI 6532.8822 NeI 6598.9529 NeI 6717.043 NeI 6752.8335 ArI 6766.6117 ArI 6871.2891 ArI 6929.4673 NeI 6937.6642 ArI 6965.4307 ArI 7024.0504 NeI 7032.4131 NeI 7107.4778 ArI 7125.82 ArI 7147.0416 ArI 7173.9381 NeI 7206.9804 ArI 7245.1666 NeI 7272.9359 ArI 7281.349 HeI 7353.293 ArI 7372.1184 ArI 7383.9805 ArI 7488.8712 NeI 7503.8691 ArI 7514.6518 ArI 7535.7739 NeI 7544.0443 NeI 7587.413 KrI 7601.5443 KrI 7635.106 ArI 7685.246 KrI 7694.5393 KrI 7854.8215 KrI 7891.075 ArI 7913.4242 KrI 7948.1764 ArI 8006.1567 ArI 8014.7857 ArI 8059.5038 KrI 8103.6931 ArI 8115.311 ArI 8190.0543 KrI 8264.5225 ArI 8281.0495 KrI 8377.6065 NeI 8408.2096 ArI 8424.6475 ArI 8495.3598 NeI 8508.87 KrI 8521.4422 ArI 8591.2583 NeI 8605.7762 ArI 8620.4602 ArI 8634.647 NeI 8654.3831 NeI 8667.9442 ArI 8776.749 KrI 8799.0875 ArI 8919.5007 NeI 8928.692 KrI 9122.9674 ArI 9194.6385 ArI 9224.4992 ArI 9291.5313 ArI 9354.2198 ArI 9657.7863 ArI 9751.759 KrI 9784.5028 ArI 9856.24 KrI 10052.1 ArI 10254.04 ArI 10309.15 ArI 10332.76 ArI 10360.37 KrI 10470.054 ArI 10506.47 ArI 10529.32 ArI 10593.01 KrI 10673.55 ArI 10681.78 ArI 10712.77 ArI 10733.87 ArI 10759.13 ArI 10773.35 ArI 10798.12 NeI 10830.337 HeI (also 10829.088 at 1/5 and 10830.248 at 3/5 int. of 10830.337) 10844.54 NeI 10880.96 ArI 10950.74 ArI 11078.87 ArI 11106.44 ArI sptable-1.0.pre20180612/lib/linelists/idhenear.dat000066400000000000000000000047711331023215600214470ustar00rootroot00000000000000# units Angstroms 3187.743 HeI 3464.14 AII(70) 3520.5 NeI 3520.472 blend with A 3520.0 3545.58 AII(70) 3559.51 AII(70) 3718.21 AII(131) blend with 3724.51 AII(131) 3729.29 AII(10) 3737.89 AII(131) 3780.84 AII(54) 3850.57 AII(10) 3888.646 HeI 3928.62 AII(10) 3964.727 HeI 4026.189 HeI 4044.418 AI(4) 4072.2 blend A 4072.01 and 4072.40 4131.73 AII(32) 4158.590 AI(2) 4259.361 AI(9) 4277.55 AII(32) blend with AI(4) 4272.168 4300.4 AI(4) blend 4426.01 AII(7) 4471.477 HeI 4510.733 AI(9) 4545.08 AII(15) 4579.39 AII(17) 4657.94 AII(15) 4713.143 HeI 4764.89 AII(15) 4806.07 AII(6) 4879.90 AII(14) 4921.929 HeI 4965.12 AII(14) 5015.675 HeI 5187.746 AI 5221.270 AI 5400.562 NeI(3) 5495.872 AI(14) 5572.548 AI 5606.732 AI 5650.703 AI(12) 5748.299 NeI(13) 5764.418 NeI(13) 5852.4878 NeI(6) 5875.618 HeI 5944.8342 NeI(1) 6029.9971 NeI(3) 6074.3377 NeI(3) 6096.1630 NeI 6143.0623 NeI(1) 6163.5939 NeI(5) 6217.2813 NeI(1) 6266.4950 NeI(5) 6304.7892 NeI 6334.4279 NeI(1) 6382.9914 NeI(3) 6402.246 NeI(1) 6506.5279 NeI(3) 6532.8824 NeI 6598.9529 NeI(6) 6678.2 blend HeI 6678.149 with NeI 6678.2764 6717.0428 NeI 6752.832 AI(11) 6871.290 AI 6929.468 NeI(6) 6965.430 AI(1) 7032.4127 NeI(1) 7065.188 HeI 7107.496 AI 7125.80 AI 7147.041 AI(1) 7173.939 NeI(6) 7206.986 AI 7245.167 NeI(3) 7272.936 AI 7281.349 HeI 7311.71 AI 7353.316 AI 7372.118 AI 7383.980 AI 7438.899 NeI 7488.872 NeI 7503.867 AI(8) 7514.651 AI 7535.775 NeI 7544.046 NeI 7635.105 AI(1) 7670.04 AI 7723.8 blend AI(1) 7723.760 and AI(6) 7724.206 7891.075 AI 7948.175 AI(6) 8006.156 AI(3) 8012.000 AI Blend of 8006 and 8014 for low dispersion 8014.786 AI(1) 8053.307 AI 8082.458 NeI(6) 8103.692 AI(3) 8110.000 AI Blend of 8103 and 8115 for low dispersion 8115.311 AI(1) 8264.521 AI(8) 8300.326 NeI(12) 8377.607 NeI(12) 8424.647 AI(3) 8495.360 NeI(18) 8521.441 AI(8) 8605.78 AI 8620.47 AI 8634.648 NeI(23) 8654.383 NeI(33) 8667.943 AI(6) 8761.72 AI 8780.622 NeI(27) 8782.1872 Low disp. blend of 8780.622 and 8783.755 8783.755 NeI(38) 8853.866 NeI(27) 9075.42 AI 9122.966 AI(1) 9148.68 NeI(30) 9194.68 AI 9224.498 AI(8) 9291.58 AI 9354.218 AI(8) 9425.38 NeI(36) 9534.167 NeI(38) 9657.784 AI(3) 9784.501 AI(8) sptable-1.0.pre20180612/lib/linelists/krypton.dat000066400000000000000000000031261331023215600213670ustar00rootroot00000000000000# units Angstroms 10877.9 80 11190.2 100 11260.8 200 11262.2 150 11460.6 500 11795.6 150 11822.6 1500 12000.4 600 12080.5 160 12121.1 140 12126.8 40 12207.9 800 12785.9 150 12801.9 120 12865.4 100 12882.4 750 12988.8 25 13025.9 30 13181. 1100 13244.3 110 13341.5 120 13626.1 1000 13637.9 2400 13662.1 800 13714.8 200 13742.6 600 13836.6 150 13886.6 500 13927.6 700 13942.7 200 13977.8 150 14108.1 140 14160.1 50 14344.5 30 14351.3 800 14406.2 180 14430.7 2000 14473. 140 14738.5 1600 14766.7 550 14769.5 450 14966. 400 15009.4 120 15213.7 140 15243.8 1700 15330.7 130 15339.2 1500 15376.2 700 15478.2 200 15639.7 40 15685.3 180 15824.4 120 15895.1 100 16319.6 50 16470.3 70 16577.5 70 16731.1 200 16789.7 2000 16858.1 1000 16895.1 2400 16901.4 1600 16940.4 1800 17074.6 40 17103.4 600 17235.4 30 17372.4 700 17409.2 120 17621.6 150 17847.6 650 18007.1 700 18104.3 80 18172.3 2600 18190. 90 18423.4 20 18586. 150 18701.5 300 18790.1 170 18792.9 50 18802.8 200 20215.3 140 20429.5 300 21171.3 600 21908.5 1800 22491.8 120 23346.7 180 23508.8 70 24267.2 120 24298.8 180 24775.2 90 25240.7 600 26768.4 50 26907.6 40 28618.2 180 28663.3 1000 28777.4 150 28830.2 140 29227.4 40 29244.5 300 30671.8 300 30987.5 300 39294.5 50 39568. 40 39599.2 500 39600.4 500 39965.7 60 39977.5 30 40317.1 130 40696.5 20 sptable-1.0.pre20180612/lib/linelists/lowskylines.dat000066400000000000000000000112341331023215600222430ustar00rootroot00000000000000# units Angstroms 6170.64 6176.29 6184.41 6169.53 6174.19 6181.85 6257.97 6265.22 6275.60 6256.94 6262.73 6272.30 6498.72 6504.99 6513.99 6497.52 6502.66 6511.09 6863.94 6870.98 6881.07 6862.68 6868.39 6877.79 6144.48 6139.47 6136.79 6136.56 6138.87 6143.78 6151.37 6161.67 6235.95 6234.30 6235.68 6240.21 6248.02 6259.20 6273.86 6292.08 6470.97 6465.95 6463.52 6463.80 6466.90 6472.89 6481.84 6493.81 6834.42 6829.48 6827.45 6828.46 6832.63 6840.05 6850.80 6864.96 6150.92 6143.37 6138.99 6137.64 6139.22 6143.67 6150.95 6161.06 6241.69 6237.41 6237.00 6240.34 6247.38 6258.07 6272.41 6290.44 6477.91 6470.14 6465.85 6464.90 6467.19 6472.65 6481.26 6493.00 6841.94 6834.00 6829.92 6829.56 6832.82 6839.65 6850.01 6863.92 6202.72 6221.77 6243.64 6268.41 6296.11 6326.79 6360.51 6287.44 6306.93 6329.85 6356.32 6386.44 6420.32 6458.06 6533.04 6553.61 6577.28 6604.13 6634.23 6667.63 6704.40 6900.82 6923.21 6949.03 6978.40 7011.40 7048.11 7088.60 6192.94 6213.06 6236.01 6261.76 6290.30 6321.68 6355.96 6278.09 6297.90 6321.40 6348.54 6379.32 6413.82 6452.10 6522.42 6544.02 6568.78 6596.64 6627.63 6661.77 6699.16 6889.29 6912.62 6939.52 6969.92 7003.85 7041.35 7082.52 7276.41 7284.45 7295.95 7275.14 7281.59 7292.23 7523.99 7530.71 7540.38 7522.66 7528.23 7537.38 7750.65 7760.00 7773.38 7749.42 7756.86 7769.14 7913.71 7921.12 7931.77 7912.25 7918.35 7928.36 7244.92 7240.19 7238.79 7240.86 7246.53 7255.91 7269.09 7286.18 7483.48 7473.68 7466.61 7462.43 7461.24 7463.14 7468.20 7476.47 7716.91 7712.63 7712.23 7715.86 7723.70 7735.86 7752.48 7773.69 7870.73 7860.66 7853.61 7849.73 7849.15 7851.97 7858.27 7868.11 7253.15 7245.12 7241.43 7241.96 7246.60 7255.30 7268.04 7284.83 7493.67 7480.25 7470.71 7464.87 7462.59 7463.77 7468.34 7476.28 7726.04 7718.05 7715.06 7716.93 7723.58 7734.96 7751.06 7771.93 7881.68 7867.73 7857.99 7852.31 7850.53 7852.54 7858.30 7867.78 7316.29 7340.89 7369.38 7401.87 7438.49 7479.33 7524.50 7571.75 7598.44 7628.63 7662.36 7699.71 7740.70 7785.38 7794.12 7821.51 7853.37 7889.87 7931.14 7977.35 8028.61 7964.65 7993.33 8025.81 8062.18 8102.50 8146.84 8195.25 7303.75 7329.17 7358.68 7392.22 7429.80 7471.49 7517.39 7557.49 7586.09 7618.05 7653.32 7691.91 7733.92 7779.43 7780.43 7808.46 7841.27 7878.79 7921.05 7968.15 8020.21 7949.20 7979.76 8014.06 8052.02 8093.68 8139.11 8188.42 8344.59 8352.86 8364.71 8343.03 8349.77 8360.85 8827.07 8836.42 8849.79 8825.45 8832.99 8845.42 9375.97 9386.72 9402.10 9374.36 9382.95 9397.13 9791.12 9799.67 9811.98 9789.41 9796.54 9808.21 8298.89 8288.59 8281.68 8278.30 8278.59 8282.68 8290.64 8302.56 8778.31 8767.89 8761.29 8758.70 8760.25 8766.09 8776.31 8791.04 9323.74 9313.36 9307.39 9306.02 9309.41 9317.73 9331.11 9349.69 9719.83 9699.34 9682.25 9668.77 9659.09 9653.32 9651.55 9653.85 8310.72 8296.24 8286.39 8281.03 8279.99 8283.17 8290.52 8302.02 8791.18 8776.20 8766.39 8761.59 8761.64 8766.16 8776.00 8790.25 9337.90 9322.49 9312.94 9309.09 9310.79 9317.95 9330.54 9348.56 9738.09 9711.71 9690.50 9674.24 9662.66 9655.60 9652.94 9654.62 8399.16 8430.17 8465.35 8504.84 8548.71 8597.05 8649.94 8885.83 8919.61 8958.06 9001.33 9049.52 9102.76 9161.16 9439.66 9476.87 9519.37 9567.36 9620.99 9680.41 9745.77 9872.14 9914.67 9961.93 10013.99 10070.88 10132.65 10199.35 8382.39 8415.23 8452.25 8493.38 8538.67 8588.19 8642.06 8867.58 8903.11 8943.38 8988.35 9038.04 9092.54 9152.00 9419.78 9458.57 9502.85 9552.57 9607.76 9668.53 9735.04 9848.48 9894.74 9945.26 10000.00 10059.03 10122.48 10190.52 10012.82 10025.46 10043.53 10011.34 10021.33 10037.87 10286.64 10296.02 10309.52 10284.77 10292.52 10305.25 10831.32 10841.72 10856.65 10829.28 10837.80 10851.81 11436.78 11448.45 11465.17 11434.62 11444.10 11459.68 9956.59 9946.53 9941.67 9942.23 9948.41 9960.39 9978.37 10002.52 10211.05 10189.71 10172.11 10158.48 10149.01 10143.81 10143.00 10146.65 10750.97 10728.77 10710.74 10697.11 10688.07 10683.76 10684.30 10689.78 11351.11 11328.07 11309.75 11296.35 11288.09 11285.13 11287.60 11295.64 9972.35 9956.66 9947.76 9945.49 9949.73 9960.37 9977.43 10000.95 10230.66 10203.05 10181.04 10164.38 10152.83 10146.22 10144.42 10147.39 10772.10 10743.20 10720.41 10703.47 10692.16 10686.28 10685.73 10690.44 11374.01 11343.77 11320.26 11303.24 11292.45 11287.74 11289.00 11296.16 10082.48 10124.02 10171.72 10225.81 10286.51 10354.03 10428.59 10372.88 10418.36 10468.96 10524.77 10585.86 10652.29 10724.13 10923.43 10972.32 11026.79 11086.98 11152.98 11224.87 11302.77 11535.61 11588.49 11647.54 11712.93 11784.80 11863.27 11948.47 10060.71 10103.60 10152.98 10208.79 10271.10 10340.06 10415.87 10347.29 10396.54 10450.50 10509.13 10572.51 10640.76 10714.06 10895.69 10948.34 11006.27 11069.42 11137.86 11211.73 11291.22 11505.46 11562.08 11624.65 11693.13 11767.60 11848.19 11935.13 sptable-1.0.pre20180612/lib/linelists/ohlines.dat000066400000000000000000000062071331023215600213250ustar00rootroot00000000000000# units Angstroms 10831.2 0.40 10899.3 0.10 10927.3 0.24 10952.3 0.10 10976.3 0.35 11010.3 0.10 11030.3 0.28 11073.3 0.05 11090.3 0.15 11141.3 0.02 11156.3 0.05 11313.4 0.12 11331.4 0.15 11354.4 0.10 11436.4 0.40 11539.5 0.32 11566.5 0.02 11592.5 0.35 11628.5 0.12 11651.5 0.30 11696.5 0.08 11716.5 0.20 11771.5 0.04 11787.5 0.08 11864.6 0.02 12001.6 0.12 12007.6 0.20 12025.6 0.18 12031.6 0.24 12055.9 0.07 12122.6 0.54 12135.9 0.20 12155.0 0.05 12196.4 0.11 12229.3 0.40 12257.8 0.18 12287.0 0.46 12325.9 0.17 12351.6 0.30 12400.9 0.11 12423.0 0.19 12482.7 0.04 12502.4 0.09 12589.1 0.05 12752.8 0.15 12764.4 0.21 12782.5 0.24 12807.0 0.23 12834.6 0.08 12905.7 0.57 12921.2 0.17 12943.1 0.09 12985.7 0.15 13021.6 0.32 13052.8 0.21 13085.2 0.39 13127.8 0.18 13156.7 0.19 13211.0 0.10 13236.6 0.27 13301.9 0.01 13324.7 0.04 13420.8 0.06 13674.9 13677.2 13692.1 13716.8 13823.7 13951.0 13985.9 0.05 14022.2 0.15 14044.6 14058.8 14069.8 14086.7 0.10 14102.7 0.05 14107.0 0.05 14134.0 0.18 14162.9 0.22 14186.1 0.20 14192.9 14227.2 14292.9 0.07 14342.0 14344.4 0.30 14356.7 14374.4 14469.1 14519.0 0.60 14564.0 0.35 14604.8 0.35 14665.1 0.14 14698.4 0.35 14702.2 14713.3 14740.0 0.10 14755.6 0.05 14772.4 0.15 14783.7 0.15 14799.8 0.30 14805.7 0.26 14833.0 0.62 14864.4 0.20 14886.2 14887.7 0.78 14909.1 0.10 14931.9 0.26 15006.7 15026.1 15052.8 15055.5 1.95 15064.0 15068.9 0.66 15088.2 0.23 15113.7 0.10 15187.0 0.38 15241.0 1.41 15287.8 0.58 15332.4 1.15 15395.3 0.40 15432.1 1.08 15462.1 0.10 15474.4 15500.8 0.20 15509.8 0.25 15517.9 0.20 15540.4 0.55 15546.2 15570.2 0.15 15597.7 0.70 15631.3 15631.6 0.35 15655.0 1.05 15657.0 15702.5 0.28 15760.3 0.10 15782.1 0.15 15830.3 15833.2 2.30 15848.1 0.90 15869.3 0.25 15897.3 0.10 15915.9 15972.6 0.50 16030.8 1.53 16079.8 0.65 16128.6 1.71 16194.7 0.63 16235.4 1.27 16317.2 0.28 16341.8 0.12 16351.3 0.65 16360.4 0.10 16388.5 0.25 16414.7 0.20 16442.1 16447.6 0.70 16476.4 16479.0 0.50 16502.3 0.75 16553.9 0.30 16586.3 16611.0 0.10 16689.2 16692.1 2.30 16708.8 0.83 16732.5 0.30 16763.6 0.15 16840.5 0.30 16903.7 1.45 16955.1 0.52 17008.8 1.80 17078.3 0.70 17123.6 1.20 17210.4 0.36 17248.6 0.70 17282.9 0.18 17330.9 0.32 17351.1 0.20 17359.7 0.20 17383.8 0.40 17386.7 0.40 17427.0 0.30 17449.9 0.72 17501.3 0.27 17506.0 0.08 17529.4 0.08 17653.2 2.00 17671.8 0.70 17698.4 0.18 17811.4 0.08 17880.3 1.20 17934.8 0.05 17994.0 1.42 18067.9 0.18 18118.5 0.50 18211.0 18254.2 0.05 18352.8 18364.6 18400.4 18401.7 18402.3 18433.5 18459.5 18504.1 18526.1 18560.2 18587.4 18744.5 18765.9 18914.9 18990.1 19048.4 19114.1 19193.2 19250.3 0.32 19350.1 0.25 19399.2 19518.1 0.15 19561.1 0.12 19593.2 0.05 19642.5 0.30 19699.0 0.15 19702.9 0.35 19736.2 0.05 19751.5 0.20 19771.8 0.52 19839.7 0.22 20008.2 1.05 20033.2 0.35 20193.3 0.15 20275.9 1.00 20339.5 0.55 20412.7 1.28 20499.3 0.27 20563.6 1.05 20672.9 0.03 20729.0 0.77 20860.3 0.20 20909.6 0.33 21068.0 0.22 21096.6 21105.7 21115.9 0.24 21156.1 0.12 21176.6 0.38 21232.5 0.15 21249.7 0.41 21279.1 0.05 21318.0 21326.0 0.16 21505.0 21507.3 1.20 21512.1 21537.6 0.30 21580.7 0.15 21711.1 0.25 21802.2 0.70 21873.5 0.35 21955.6 0.90 22125.5 0.80 22247.9 0.28 22312.7 0.50 22460.3 0.10 22518.0 0.25 22742.0 0.15 sptable-1.0.pre20180612/lib/linelists/skylines.dat000066400000000000000000000623441331023215600215310ustar00rootroot00000000000000# LIST OF NIGHT SKY LINES COMPILED FROM VARIOUS SOURCES # # The lines in this list were compiled by Don York (don@oddjob.uchicago.edu). # Please send comments and addtions to him and to iraf@noao.edu. # # This file was last edited by DG YORK, Feb. 28, 1991. The wavelengths of # atomic night sky lines and of man-made lamp lines need to be improved. The # intent is to to use air wavelengths throughout; though it still needs to be # confirmed as it is not clearly indicated in Osterbrock and in Johnson # papers (see references below). # # Night sky emission lines of OH are denoted by molecular notation and are # from Hubbard, Brault, Engleman, and Palmer. Apparently an internal # document given to Brian Yanny by Robert Hubbard, some time in 1986. The # R1,R2, Q1, Q2,P1,P2 predicted wavelengths are listed here, as the higher # rotational levels and the intersystem lines do not seem relevant to QSO # spectra. Listed are the air wavelength, vibration band, rotation branch # and quantum no. Lines at different wavelength but same quantum nos. are # lambda doubling components. # # Manmade light from lighting is noted ML. The spectrum of lamps is # from Osterbrock et al. 1976, June PASP. HP is for high pressure # lamps of Na. HgP is listed for lines from mercury lamps that are # from phosphorus (see Osterbrock paper). # # Emission lines from diffuse nebulae are denoted DN. These may be part of # the sky background in long exposures because the diffuse nebulae overlap in # projection on the sky, or because there is an ionized component to the # diffuse interstellar medium. Nebular lines are from H.M. Johnson, P. 65, # NEB and ISM, ed. Kuiper and Middlehurst.(Compendium). Emission lines with # strength above 18 in the Orion nebula (NGC1976) (H beta = 100) are listed. # The strengths are listed after the letters DN. If the word blend appears, # the strength refers to the combined strengths of adjacent lines in this # table. A few lines of first ions are listed with lower strenths, because # the diffuse emission is of lower excitation than the Orion nebula. See # papers by Reynolds. # # Atomic lines from the night sky are denoted AN. # units Angstroms 3651. Hg 3663. Hg 3726.05 [OII] DN 127 blend 3728.80 [OII] DN 127 blend 3868.76 [NeIII] DN 20 3888.65 He I DN 18 blend 3889.05 HI DN 18 blend 3967.47 Ne III DN 24 blend 3970.07 HI DN 24 4047. Hg ML 4078. Hg ML 4101.74 HI DN 25 4340.47 HI DN 41 4358. Hg ML 4494. Na I HP ML 4498. Na I HP ML 4665. Na I HP ML 4669. Na I HP ML 4748. Na I HP ML 4752. Na I HP ML 4979. Na I HP ML 4983. Na I HP ML 5149. Na I HP ML 5153. Na I HP ML 4861.33 HI DN 100 4958.92 [OIII] DN 113 5006.85 [OIII] DN 342 5187.3957 9-2 R1 5187.3981 9-2 R1 5187.5126 9-2 R1 5187.7440 9-2 R1 5189.2455 9-2 R2 5189.2706 9-2 R2 5189.4809 9-2 R1 5189.4958 9-2 R1 5190.0244 9-2 R2 5190.0629 9-2 R2 5191.5585 9-2 R2 5191.5620 9-2 R2 5191.8179 9-2 R2 5193.8578 9-2 R2 5194.1050 9-2 R1 5194.1474 9-2 R1 5200.5655 9-2 R2 5201.3610 9-2 R1 5201.4428 9-2 R1 5202.0788 9-2 Q2 5202.1370 9-2 Q2 5202.9636 9-2 Q1 5202.9815 9-2 Q1 5206.7235 9-2 Q2 5206.8236 9-2 Q2 5208.7527 9-2 Q1 5208.8208 9-2 Q1 5211.4737 9-2 R1 5214.4116 9-2 Q2 5214.5215 9-2 Q2 5217.0318 9-2 Q1 5217.1870 9-2 Q1 5217.3605 9-2 P2 5217.4059 9-2 P2 5224.1140 9-2 P1 5224.1558 9-2 P1 5224.2732 9-2 R1 5225.0740 9-2 Q2 5225.1562 9-2 Q2 5227.9078 9-2 Q1 5228.1883 9-2 Q1 5232.1354 9-2 P2 5232.1704 9-2 P2 5238.6651 9-2 Q2 5238.6824 9-2 Q2 5238.7030 9-2 P1 5238.7881 9-2 P1 5241.4705 9-2 Q1 5241.9157 9-2 Q1 5249.8645 9-2 P2 5249.8756 9-2 P2 5253.8532 6-0 R1 5253.8659 6-0 R1 5254.2652 6-0 R1 5254.2843 6-0 R1 5255.0297 6-0 R2 5255.0573 6-0 R2 5255.0869 9-2 Q2 5255.6107 6-0 R1 5255.6140 6-0 R1 5255.9528 6-0 R2 5255.9868 6-0 R2 5256.0116 9-2 P1 5256.1528 9-2 P1 5256.7399 6-0 R2 5256.7520 6-0 R1 5256.7520 6-0 R2 5256.7695 6-0 R1 5257.8010 9-2 Q1 5258.4473 9-2 Q1 5259.4308 6-0 R2 5259.4606 6-0 R2 5259.5968 6-0 R1 5259.6245 6-0 R1 5261.1695 6-0 R2 5261.1787 6-0 R2 5265.4109 6-0 R2 5265.8854 6-0 R1 5265.9445 6-0 R1 5270.4825 9-2 P2 5270.5075 9-2 P2 5274.0688 6-0 Q2 5274.1436 6-0 Q2 5275.0503 6-0 Q1 5275.0742 6-0 Q1 5276.1366 9-2 P1 5276.3458 9-2 P1 5276.9883 9-2 Q1 5278.1258 6-0 Q2 5278.2512 6-0 Q2 5279.9813 6-0 Q1 5280.0703 6-0 Q1 5284.8243 6-0 Q2 5284.9606 6-0 Q2 5287.0566 6-0 Q1 5287.2574 6-0 Q1 5291.1838 6-0 P2 5291.2252 6-0 P2 5293.9925 9-2 P2 5294.0654 9-2 P2 5294.0830 6-0 Q2 5294.1828 6-0 Q2 5296.3678 6-0 Q1 5296.7292 6-0 Q1 5298.4661 6-0 P1 5298.5138 6-0 P1 5299.0657 9-2 Q1 5299.1592 9-2 P1 5299.4455 9-2 P1 5305.8461 6-0 Q2 5305.8619 6-0 Q2 5306.5542 6-0 P2 5306.5773 6-0 P2 5307.9860 6-0 Q1 5308.5543 6-0 Q1 5313.1855 6-0 P1 5313.2787 6-0 P1 5319.9784 6-0 Q2 5320.0911 6-0 Q2 5320.5733 9-2 P2 5321.9663 6-0 Q1 5322.7860 6-0 Q1 5324.4243 6-0 P2 5324.4334 6-0 P2 5325.1557 9-2 P1 5325.5276 9-2 P1 5330.3165 6-0 P1 5330.4654 6-0 P1 5336.5339 6-0 Q2 5338.3568 6-0 Q1 5339.4713 6-0 Q1 5344.7224 6-0 P2 5344.7730 6-0 P2 5349.9280 6-0 P1 5350.1399 6-0 P1 5354.6840 9-2 P1 5367.4734 6-0 P2 5367.5731 6-0 P2 5372.0684 6-0 P1 5372.3504 6-0 P1 5392.7091 6-0 P2 5392.8659 6-0 P2 5396.7810 6-0 P1 5397.1390 6-0 P1 5420.6968 6-0 P2 5424.1100 6-0 P1 5424.5503 6-0 P1 5461. Hg ML 5542.2038 7-1 R1 5542.2118 7-1 R1 5542.2277 7-1 R1 5542.2449 7-1 R1 5543.4124 7-1 R2 5543.4450 7-1 R2 5544.5697 7-1 R1 5544.5866 7-1 R1 5544.5912 7-1 R1 5544.6032 7-1 R1 5544.8683 7-1 R2 5544.8778 7-1 R2 5544.8855 7-1 R2 5544.9169 7-1 R2 5549.1868 7-1 R2 5549.2222 7-1 R2 5549.3356 7-1 R2 5549.4702 7-1 R1 5549.5115 7-1 R1 5556.9188 7-1 R1 5562.9327 7-1 Q2 5563.0114 7-1 Q2 5563.9795 7-1 Q1 5564.0043 7-1 Q1 5567.4258 7-1 Q2 5567.5566 7-1 Q2 5569.4918 7-1 Q1 5569.5824 7-1 Q1 5574.8537 7-1 Q2 5574.9964 7-1 Q2 5577.3894 7-1 Q1 5577.5948 7-1 Q1 5579. [OI] AN 5581.1910 7-1 P2 5581.2365 7-1 P2 5585.1332 7-1 Q2 5585.2408 7-1 Q2 5587.7735 7-1 Q1 5588.1446 7-1 Q1 5589.1018 7-1 P1 5589.1509 7-1 P1 5597.7710 7-1 P2 5597.8002 7-1 P2 5598.2099 7-1 Q2 5598.2318 7-1 Q2 5600.7277 7-1 Q1 5601.3126 7-1 Q1 5605.0932 7-1 P1 5605.1912 7-1 P1 5613.9504 7-1 Q2 5614.0630 7-1 Q2 5616.3171 7-1 Q1 5617.1597 7-1 P2 5617.1622 7-1 P2 5617.1632 7-1 Q1 5623.7508 7-1 P1 5623.9096 7-1 P1 5635.7543 7-1 Q1 5639.3155 7-1 P2 5645.1586 7-1 P1 5645.3865 7-1 P1 5664.1296 7-1 P2 5664.2298 7-1 P2 5669.3789 7-1 P1 5669.6847 7-1 P1 5683. NaI ML 5688. NaI ML 5691.7799 7-1 P2 5691.9407 7-1 P2 5696.4680 7-1 P1 5696.8592 7-1 P1 5726.4835 7-1 P1 5754.6 [NII] DN 16 5770. HgI ML 5791. HgI ML 5865.4469 8-2 R1 5865.4603 8-2 R1 5865.9900 8-2 R1 5865.9903 8-2 R1 5867.2335 8-2 R2 5867.2731 8-2 R2 5867.5317 8-2 R1 5867.5476 8-2 R1 5868.2794 8-2 R2 5868.3115 8-2 R2 5869.2510 8-2 R1 5869.2755 8-2 R1 5869.4657 8-2 R2 5869.5115 8-2 R2 5872.7251 8-2 R2 5872.7282 8-2 R2 5874.9083 8-2 R2 5874.9511 8-2 R2 5875.3412 8-2 R1 5875.4017 8-2 R1 5875.6 He I DN 31 5884.3441 8-2 R1 5884.4532 8-2 R1 5887.0888 8-2 Q2 5887.1696 8-2 Q2 5888.1703 8-2 Q1 5888.1949 8-2 Q1 5890. Na I AN 5896. Na I AN 5892.1335 8-2 Q2 5892.2693 8-2 Q2 5894.4212 8-2 Q1 5894.5133 8-2 Q1 5900.4829 8-2 Q2 5900.6337 8-2 Q2 5903.3651 8-2 Q1 5903.5743 8-2 Q1 5906.6738 8-2 P2 5906.7258 8-2 P2 5912.0562 8-2 Q2 5912.1713 8-2 Q2 5915.1167 8-2 Q1 5915.2745 8-2 P1 5915.3263 8-2 P1 5915.4954 8-2 Q1 5924.7047 8-2 P2 5924.7419 8-2 P2 5926.7988 8-2 Q2 5926.8262 8-2 Q2 5929.7715 8-2 Q1 5930.3716 8-2 Q1 5932.8094 8-2 P1 5932.9137 8-2 P1 5944.5800 8-2 Q2 5944.6935 8-2 Q2 5945.9295 8-2 P2 5945.9334 8-2 Q1 5948.2836 8-2 Q1 5953.3352 8-2 P1 5953.5057 8-2 P1 5968.1161 8-2 Q1 5969.3038 8-2 Q1 5970.2563 8-2 P2 5970.2984 8-2 P2 5976.9529 8-2 P1 5977.2013 8-2 P1 5980. HgP ML broad 5997.7142 8-2 P2 5997.8131 8-2 P2 6003.7437 8-2 P1 6004.0802 8-2 P1 6028.3520 8-2 P2 6028.5149 8-2 P2 6033.7845 8-2 P1 6034.2157 8-2 P1 6067.1490 8-2 P1 6130. HgP ML broad 6143.3794 5-0 R2 6067.6877 8-2 P1 6136.5400 5-0 R1 6136.5652 5-0 R1 6136.7668 5-0 R1 6136.8029 5-0 R1 6137.6096 5-0 R2 6137.6582 5-0 R2 6138.8593 5-0 R1 6138.8627 5-0 R1 6138.9664 5-0 R2 6139.0014 5-0 R2 6139.1922 5-0 R2 6139.2439 5-0 R2 6139.4456 5-0 R1 6139.4833 5-0 R1 6143.3670 5-0 R2 6143.3794 5-0 R2 6143.6467 5-0 R2 6143.6920 5-0 R2 6143.7665 5-0 R1 6143.7928 5-0 R1 6144.4608 5-0 R1 6144.4899 5-0 R1 6150.9145 5-0 R2 6150.9334 5-0 R2 6151.3331 5-0 R1 6154. Na I ML 6161. Na I ML 6169.4733 5-0 Q2 6169.5784 5-0 Q2 6170.6195 5-0 Q1 6170.6542 5-0 Q1 6174.1034 5-0 Q2 6174.2815 5-0 Q2 6176.2215 5-0 Q1 6176.3486 5-0 Q1 6181.7542 5-0 Q2 6181.9450 5-0 Q2 6184.2632 5-0 Q1 6184.5497 5-0 Q1 6192.3266 5-0 Q2 6192.4658 5-0 Q2 6192.9085 5-0 P2 6192.9626 5-0 P2 6194.8499 5-0 Q1 6195.3635 5-0 Q1 6202.6869 5-0 P1 6202.7504 5-0 P1 6205.7560 5-0 Q2 6205.7753 5-0 Q2 6208.0593 5-0 Q1 6208.8671 5-0 Q1 6210. HgP ML broad 6213.0445 5-0 P2 6213.0696 5-0 P2 6221.7086 5-0 P1 6221.8309 5-0 P1 6221.8487 5-0 Q2 6222.0141 5-0 Q2 6223.1179 5-0 Q1 6223.9544 5-0 Q1 6234.2888 9-3 R1 6234.2977 9-3 R1 6235.6634 9-3 R1 6235.6735 9-3 R1 6235.9407 9-3 R1 6235.9543 9-3 R1 6236.0053 5-0 P2 6236.0220 5-0 P2 6236.9647 9-3 R2 6237.0176 9-3 R2 6237.3947 9-3 R2 6237.4266 9-3 R2 6240.1800 9-3 R1 6240.2220 9-3 R1 6240.3062 9-3 R2 6240.3638 9-3 R2 6240.6922 5-0 Q2 6241.1040 5-0 Q2 6241.6858 9-3 R2 6241.6881 9-3 R2 6242.5861 5-0 Q1 6243.5452 5-0 P1 6243.7374 5-0 P1 6244.1660 5-0 Q1 6247.3427 9-3 R2 6247.9615 9-3 R1 6248.0506 9-3 R1 6256.8988 9-3 Q2 6256.9802 9-3 Q2 6257.9461 9-3 Q1 6257.9708 9-3 Q1 6259.2798 9-3 R1 6261.7199 5-0 P2 6261.7921 5-0 P2 6262.6633 9-3 Q2 6262.8038 9-3 Q2 6265.1669 9-3 Q1 6265.2600 9-3 Q1 6266.0599 5-0 Q1 6268.2687 5-0 P1 6268.5399 5-0 P1 6272.2164 9-3 Q2 6272.3726 9-3 Q2 6273.9468 9-3 R1 6275.4847 9-3 Q1 6275.6978 9-3 Q1 6278.0585 9-3 P2 6278.1200 9-3 P2 6285.4812 9-3 Q2 6285.6001 9-3 Q2 6287.4043 9-3 P1 6287.4593 9-3 P1 6289.0331 9-3 Q1 6289.4197 9-3 Q1 6290.2270 5-0 P2 6290.3615 5-0 P2 6295.2839 5-0 P1 6295.9278 5-0 P1 6297.8780 9-3 P2 6297.9260 9-3 P2 6300.3 [OI] AN 6302.4042 9-3 Q2 6302.4340 9-3 Q2 6305.9260 9-3 Q1 6306.5410 9-3 Q1 6306.8676 9-3 P1 6306.9794 9-3 P1 6321.3893 9-3 P2 6321.4053 9-3 P2 6321.5712 5-0 P2 6321.7751 5-0 P2 6322.8614 9-3 Q2 6326.2692 9-3 Q1 6326.5655 5-0 P1 6327.0139 5-0 P1 6327.1637 9-3 Q1 6329.7476 9-3 P1 6329.9327 9-3 P1 6348.5163 9-3 P2 6348.5477 9-3 P2 6350.1801 9-3 Q1 6355.8185 5-0 P2 6356.0981 5-0 P2 6356.1692 9-3 P1 6356.4428 9-3 P1 6360.2272 5-0 P1 6360.7747 5-0 P1 6363.8 [OI] AN 6377.7001 9-3 Q1 6379.2681 9-3 P2 6379.3626 9-3 P2 6386.2402 9-3 P1 6386.6139 9-3 P1 6396.9679 5-0 P1 6413.8867 9-3 P2 6420.0610 9-3 P1 6420.5475 9-3 P1 6458.3680 9-3 P1 6463.5060 6-1 R1 6463.5378 6-1 R1 6463.7944 6-1 R1 6463.8103 6-1 R1 6464.8690 6-1 R2 6464.9213 6-1 R2 6465.8274 6-1 R2 6465.8663 6-1 R2 6465.9353 6-1 R1 6465.9704 6-1 R1 6466.8902 6-1 R1 6466.9006 6-1 R1 6467.1596 6-1 R2 6467.2115 6-1 R2 6470.1372 6-1 R2 6470.1514 6-1 R2 6470.9584 6-1 R1 6470.9865 6-1 R1 6472.6251 6-1 R2 6472.8576 6-1 R1 6472.9037 6-1 R1 6477.9016 6-1 R2 6477.9184 6-1 R2 6497.4710 6-1 Q2 6497.5817 6-1 Q2 6498.7099 6-1 Q1 6498.7445 6-1 Q1 6502.5658 6-1 Q2 6502.7519 6-1 Q2 6502.9297 6-1 Q1 6505.0583 6-1 Q1 6510.9922 6-1 Q2 6511.1961 6-1 Q2 6513.8447 6-1 Q1 6514.1367 6-1 Q1 6522.3962 6-1 P2 6522.4549 6-1 P2 6522.6532 6-1 Q2 6522.8056 6-1 Q2 6525.5701 6-1 Q1 6526.0975 6-1 Q1 6533.0089 6-1 P1 6533.0750 6-1 P1 6537.4814 6-1 Q2 6537.5122 6-1 Q2 6540.1980 6-1 Q1 6541.0286 6-1 Q1 6544.0065 6-1 P2 6544.0386 6-1 P2 6548.1 [NII] DN 18 6553.5515 6-1 P1 6553.6804 6-1 P1 6555.2923 6-1 Q2 6555.4496 6-1 Q2 6557.7997 6-1 Q1 6559.0000 6-1 Q1 6562.8 HI DN 350 6568.7727 6-1 P2 6568.7856 6-1 P2 6576.1490 6-1 Q2 6577.1817 6-1 P1 6577.3868 6-1 P1 6578.4390 6-1 Q1 6580.0739 6-1 Q1 6596.6081 6-1 P2 6596.6782 6-1 P2 6603.9900 6-1 P1 6604.2801 6-1 P1 6627.5545 6-1 P2 6627.6924 6-1 P2 6634.0384 6-1 P1 6634.4232 6-1 P1 6661.6616 6-1 P2 6661.8778 6-1 P2 6667.3849 6-1 P1 6667.8723 6-1 P1 6678.1 He I DN 25 6699.3003 6-1 P2 6704.0894 6-1 P1 6704.6864 6-1 P1 6716.4 [SII] DN 6 6730.8 [SII] DN 8 6827.4459 7-2 R1 6827.4720 7-2 R1 6828.4681 7-2 R1 6828.4737 7-2 R1 6829.4743 7-2 R1 6829.5065 7-2 R1 6829.5331 7-2 R2 6829.5923 7-2 R2 6829.8984 7-2 R2 6829.9446 7-2 R2 6832.6235 7-2 R1 6832.6511 7-2 R1 6832.7996 7-2 R2 6832.8598 7-2 R2 6833.9977 7-2 R2 6834.0187 7-2 R2 6834.4181 7-2 R1 6834.4462 7-2 R1 6840.0140 7-2 R1 6841.9380 7-2 R2 6841.9516 7-2 R2 6862.6222 7-2 Q2 6862.7386 7-2 Q2 6863.9354 7-2 Q1 6868.9707 7-2 Q1 6868.2955 7-2 Q2 6868.4895 7-2 Q2 6870.9272 7-2 Q1 6871.0589 7-2 Q1 6877.6891 7-2 Q2 6877.9030 7-2 Q2 6880.9355 7-2 Q1 6881.2339 7-2 Q1 6881.2569 7-2 P2 6889.3210 7-2 P2 6890.7047 7-2 Q2 6890.8686 7-2 Q2 6894.0876 7-2 Q1 6894.6282 7-2 Q1 6900. HgP ML broad 6900.7970 7-2 P1 6900.8656 7-2 P1 6907.2771 7-2 Q2 6907.3172 7-2 Q2 6910.4909 7-2 Q1 6911.3456 7-2 Q1 6912.6029 7-2 P2 6912.6440 7-2 P2 6923.1512 7-2 P1 6923.2864 7-2 P1 6927.2254 7-2 Q2 6927.3819 7-2 Q2 6930.2315 7-2 Q1 6931.4712 7-2 Q1 6939.5194 7-2 P2 6939.5232 7-2 P2 6948.9350 7-2 P1 6949.1529 7-2 P1 6955.0805 7-2 Q1 6960. HgP ML broad 6969.8966 7-2 P2 6969.9617 7-2 P2 6978.2578 7-2 P1 6978.5696 7-2 P1 7003.7872 7-2 P2 7003.9250 7-2 P2 7011.2031 7-2 P1 7011.6211 7-2 P1 7030. HgP ML broad 7041.2493 7-2 P2 7041.4690 7-2 P2 7047.8489 7-2 P1 7048.3796 7-2 P1 7088.2706 7-2 P1 7238.7719 8-3 R1 7238.7877 8-3 R1 7240.1664 8-3 R1 7240.1942 8-3 R1 7240.8440 8-3 R1 7240.8555 8-3 R1 7241.3774 8-3 R2 7241.4340 8-3 R2 7241.8988 8-3 R2 7241.9686 8-3 R2 7244.8939 8-3 R1 7244.9196 8-3 R1 7245.0834 8-3 R2 7245.1113 8-3 R2 7246.4909 8-3 R1 7246.5439 8-3 R2 7246.5439 8-3 R1 7246.6154 8-3 R2 7253.1237 8-3 R2 7253.1321 8-3 R2 7255.8384 8-3 R1 7255.9501 8-3 R1 7275.0497 8-3 Q2 7275.1694 8-3 Q2 7276.3867 8-3 Q1 7276.4227 8-3 Q1 7281.4628 8-3 Q2 7281.6644 8-3 Q2 7284.3724 8-3 Q1 7284.5057 8-3 Q1 7292.0922 8-3 Q2 7292.3188 8-3 Q2 7295.7875 8-3 Q1 7296.0916 8-3 Q1 7303.6814 8-3 P2 7303.7550 8-3 P2 7306.8454 8-3 Q2 7307.0211 8-3 Q2 7310.7786 8-3 Q1 7311.3309 8-3 Q1 7316.2466 8-3 P1 7316.3183 8-3 P1 7319.9 [OII] DN 9 7325.6559 8-3 Q2 7325.7042 8-3 Q2 7329.1221 8-3 Q2 7329.1753 8-3 P2 7329.4697 8-3 Q1 7330.2 [OII] DN 9 7330.3468 8-3 Q1 7340.8127 8-3 P1 7340.9566 8-3 P1 7348.3479 8-3 Q2 7348.5062 8-3 Q2 7351.9708 8-3 Q1 7353.2475 8-3 Q1 7358.6568 8-3 P2 7358.6628 8-3 P2 7369.2488 8-3 P1 7369.4835 8-3 P1 7378.3861 8-3 Q1 7380.1302 8-3 Q1 7392.1695 8-3 P2 7392.2275 8-3 P2 7401.6893 8-3 P1 7402.0296 8-3 P1 7429.7108 8-3 P2 7429.8472 8-3 P2 7438.2443 8-3 P1 7438.7037 8-3 P1 7461.2071 4-0 R1 7461.2695 4-0 R1 7462.3845 4-0 R1 7462.4636 4-0 R1 7462.5432 4-0 R2 7462.6324 4-0 R2 7463.1226 4-0 R1 7363.1588 4-0 R1 7463.7193 4-0 R2 7463.8074 4-0 R2 7464.8301 4-0 R2 7464.9059 4-0 R2 7466.5690 4-0 R1 7466.6498 4-0 R1 7470.6817 4-0 R2 7470.7308 4-0 R2 7471.3578 8-3 P2 7471.5812 8-3 P2 7473.6406 4-0 R1 7473.7121 4-0 R1 7479.0176 8-3 P1 7479.6068 8-3 P1 7480.2453 4-0 R2 7480.2571 4-0 R2 7483.4487 4-0 R1 7483.4992 4-0 R1 7493.6500 4-0 R2 7493.6843 4-0 R2 7522.5762 4-0 Q2 7522.7375 4-0 Q2 7523.9650 4-0 Q1 7524.0188 4-0 Q1 7524.1145 8-3 P1 7524.8490 8-3 P1 7528.0964 4-0 Q2 7528.3674 4-0 Q2 7530.6131 4-0 Q1 7530.8093 4-0 Q1 7537.2280 4-0 Q2 7537.5184 4-0 Q2 7540.1591 4-0 Q1 7540.6010 4-0 Q1 7549.8497 4-0 Q2 7550.0595 4-0 Q2 7552.7284 4-0 Q1 7553.5199 4-0 Q1 7557.4524 4-0 P2 7557.5279 4-0 P2 7565.8818 4-0 Q2 7565.9064 4-0 Q2 7568.4135 4-0 Q1 7569.6570 4-0 Q1 7571.6975 4-0 P1 7571.7898 4-0 P1 7585.0299 4-0 Q2 7585.2889 4-0 Q2 7586.0763 4-0 P2 7586.1074 4-0 P2 7587.2865 4-0 Q1 7589.0749 4-0 Q1 7598.3540 4-0 P1 7598.5290 4-0 P1 7607.4364 4-0 Q2 7608.0703 4-0 Q2 7609.4063 4-0 Q1 7611.8321 4-0 Q1 7618.0339 4-0 P2 7618.0658 4-0 P2 7628.4875 4-0 P1 7628.7581 4-0 P1 7653.2575 4-0 P2 7653.3682 4-0 P2 7662.1733 4-0 P1 7662.5498 4-0 P1 7665. KI ML 7691.8129 4-0 P2 7692.0100 4-0 P2 7699. KI ML 7699.4601 4-0 P1 7699.9482 4-0 P1 7712.2090 9-4 R1 7712.2114 9-4 R1 7712.6046 9-4 R1 7712.6267 9-4 R1 7715.0116 9-4 R2 7715.0854 9-4 R2 7715.8297 9-4 R1 7715.8637 9-4 R1 7716.0768 9-4 R2 7716.8905 9-4 R1 7716.9131 9-4 R1 7716.9638 9-4 R2 7718.0278 9-4 R2 7718.0707 9-4 R2 7723.5266 9-4 R2 7723.6298 9-4 R1 7723.7217 9-4 R1 7726.0389 9-4 R2 7726.0401 9-4 R2 7733.7723 4-0 P2 7734.0637 4-0 P2 7735.9447 9-4 R1 7740.3878 4-0 P1 7740.9973 4-0 P1 7749.3626 9-4 Q2 7749.4827 9-4 Q2 7750.6188 9-4 Q1 7750.6549 9-4 Q1 7752.5734 9-4 R1 7756.7539 9-4 Q2 7756.9634 9-4 Q2 7759.9269 9-4 Q1 7760.0613 9-4 Q1 7769.0232 9-4 Q2 7769.2556 9-4 Q2 7773.2161 9-4 Q1 7773.5249 9-4 Q1 7779.2272 4-0 P2 7779.6231 4-0 P2 7780.3848 9-4 P2 7780.4732 9-4 P2 7785.0076 4-0 P1 7785.7461 4-0 P1 7786.0777 9-4 Q2 7786.2591 9-4 Q2 7790.6582 9-4 Q1 7791.2204 9-4 Q1 7794.0698 9-4 P1 7794.1458 9-4 P1 7807.8585 9-4 Q2 7807.9110 9-4 Q2 7808.4324 9-4 P2 7808.4989 9-4 P2 7812.4023 9-4 Q1 7813.3011 9-4 Q1 7821.4238 9-4 P1 7821.5774 9-4 P1 7834.2013 9-4 Q2 7838.5939 9-4 Q1 7839.9020 9-4 Q1 7841.2530 9-4 P2 7841.2764 9-4 P2 7849.1209 5-1 R1 7849.1727 5-1 R1 7849.6879 5-1 R1 7849.7600 5-1 R1 7850.4782 5-1 R2 7850.5725 5-1 R2 7851.9580 5-1 R1 7851.9783 5-1 R1 7852.2676 5-1 R2 7852.3484 5-1 R2 7852.4958 5-1 R2 7852.5895 5-1 R2 7853.2329 9-4 P1 7853.4865 9-4 P1 7853.5648 5-1 R1 7853.6426 5-1 R1 7857.9662 5-1 R2 7858.0193 5-1 R2 7858.2553 5-1 R1 7860.6211 5-1 R1 7860.6922 5-1 R1 7867.7217 5-1 R2 7867.7359 5-1 R2 7869.3932 9-4 Q1 7870.7036 5-1 R1 7870.7538 5-1 R1 7878.7617 9-4 P2 7878.8033 9-4 P2 7881.6631 5-1 R2 7881.6986 5-1 R2 7889.6659 9-4 P1 7890.0414 9-4 P1 7912.1656 5-1 Q2 7912.3341 5-1 Q2 7913.6788 5-1 Q1 7913.7333 5-1 Q1 7918.2049 5-1 Q2 7918.4915 5-1 Q2 7920.9810 9-4 P2 7921.0181 5-1 Q1 7921.1084 9-4 P2 7921.2176 5-1 Q1 7928.2081 5-1 Q2 7928.5174 5-1 Q2 7930.8736 9-4 P1 7931.3833 9-4 P1 7931.5406 5-1 Q1 7931.9930 5-1 Q1 7942.0507 5-1 Q2 7942.2810 5-1 Q2 7945.3841 5-1 Q1 7946.1975 5-1 Q1 7948. Na I ML 7949.1614 5-1 P2 7949.2442 5-1 P2 7959.6524 5-1 Q2 7959.6942 5-1 Q2 7962.6530 5-1 Q1 7963.9344 5-1 Q1 7964.6012 5-1 P1 7964.6964 5-1 P1 7968.2476 5-1 P1 7968.2476 9-4 P2 7976.9931 9-4 P1 7977.6564 9-4 P1 7979.7494 5-1 P2 7979.7864 5-1 P2 7980.7253 5-1 Q2 7980.9770 5-1 Q2 7983.4327 5-1 Q1 7985.2813 5-1 Q1 7993.2397 5-1 P1 7993.4225 5-1 P1 8005.3850 5-1 Q2 8006. Na I ML 8006.0293 5-1 Q2 8007.7928 5-1 Q1 8010.3074 5-1 Q1 8014.0452 5-1 P2 8014.0716 5-1 P2 8115. Na I ML 8025.6662 5-1 P1 8025.9517 5-1 P1 8039.0777 5-1 Q1 8051.9652 5-1 P2 8052.0742 5-1 P2 8061.9779 5-1 P1 8062.3777 5-1 P1 8093.5783 5-1 P2 8093.7801 5-1 P2 8102.2387 5-1 P1 8102.7608 5-1 P1 8104. Ar I ML 8015. Ar I ML 8138.9606 5-1 P2 8139.2640 5-1 P2 8146.5074 5-1 P1 8147.1627 5-1 P1 8183. Na I ML 8188.2153 5-1 P2 8188.6291 5-1 P2 8194.8487 5-1 P1 8195. Na I ML 8195.6448 5-1 P1 8247.3396 5-1 P1 8278.2694 6-2 R1 8278.3304 6-2 R1 8278.5745 6-2 R1 8278.6088 6-2 R1 8279.9396 6-2 R2 8280.0343 6-2 R2 8280.9855 6-2 R2 8281.0713 6-2 R2 8281.6462 6-2 R1 8281.7189 6-2 R1 8282.6651 6-2 R1 8282.6712 6-2 R1 8283.1166 6-2 R2 8286.3675 6-2 R2 8286.4266 6-2 R2 8288.5687 6-2 R1 8288.6353 6-2 R1 8296.2311 6-2 R2 8296.2470 6-2 R2 8298.8702 6-2 R1 8298.9198 6-2 R1 8310.7024 6-2 R2 8310.7349 6-2 R2 8342.9442 6-2 Q2 8343.1218 6-2 Q2 8344.5730 6-2 Q1 8344.6267 6-2 Q1 8349.6230 6-2 Q2 8349.9222 6-2 Q2 8352.7630 6-2 Q1 8352.9661 6-2 Q1 8360.6922 6-2 Q2 8361.0236 6-2 Q2 8364.4899 6-2 Q1 8364.9504 6-2 Q1 8376.0336 6-2 Q2 8376.2849 6-2 Q2 8379.9036 6-2 Q1 8380.7374 6-2 Q1 8382.3473 6-2 P2 8382.4366 6-2 P2 8395.5617 6-2 Q2 8395.6224 6-2 Q2 8399.1174 6-2 P1 8399.1273 6-2 Q1 8399.2176 6-2 P1 8408. Ar I ML 8400.4442 6-2 Q1 8415.2073 6-2 P2 8415.2555 6-2 P2 8419.0051 6-2 Q2 8419.2426 6-2 Q2 8422.2585 6-2 Q1 8424.1669 6-2 Q1 8425. Ar I ML 8430.0771 6-2 P1 8430.2691 6-2 P1 8446.4394 6-2 Q2 8449.3891 6-2 Q1 8451.9886 6-2 Q1 8452.2387 6-2 P2 8452.2602 6-2 P2 8465.2065 6-2 P1 8465.5097 6-2 P1 8493.3357 6-2 P2 8493.4418 6-2 P2 8504.6281 6-2 P1 8505.0550 6-2 P1 8538.5717 6-2 P2 8538.7781 6-2 P2 8548.4275 6-2 P1 8548.9926 6-2 P1 8588.0323 6-2 P2 8588.3525 6-2 P2 8596.6889 6-2 P1 8597.3979 6-2 P1 8642.2667 6-2 P2 8649.4934 6-2 P1 8650.3593 6-2 P1 8758.6930 7-3 R1 8758.7398 7-3 R1 8760.2595 7-3 R1 8760.2710 7-3 R1 8761.2828 7-3 R1 8761.3481 7-3 R1 8761.5485 7-3 R2 8761.6007 7-3 R2 8761.6460 7-3 R2 8761.7090 7-3 R2 8766.0697 7-3 R1 8766.3649 7-3 R2 8766.4356 7-3 R2 8767.8810 7-3 R1 8767.9449 7-3 R1 8776.1969 7-3 R2 8776.2231 7-3 R2 8778.3076 7-3 R1 8778.3562 7-3 R1 8791.1734 7-3 R2 8791.2012 7-3 R2 8825.3569 7-3 Q2 8825.5439 7-3 Q2 8827.0657 7-3 Q1 8827.1219 7-3 Q1 8832.8401 7-3 Q2 8833.1523 7-3 Q2 8836.3330 7-3 Q1 8836.5400 7-3 Q1 8845.2535 7-3 Q2 8845.6018 7-3 Q2 8849.5834 7-3 Q1 8850.0543 7-3 Q1 8862.4808 7-3 Q2 8862.7519 7-3 Q2 8866.9857 7-3 Q1 8867.5378 7-3 P2 8867.6353 7-3 P2 8867.8414 7-3 Q1 8884.4383 7-3 Q2 8884.5141 7-3 Q2 8885.7966 7-3 P1 8885.8992 7-3 P1 8888.6850 7-3 Q1 8890.0406 7-3 Q1 8903.0848 7-3 P2 8903.1474 7-3 P2 8910.8617 7-3 Q2 8911.0984 7-3 Q2 8914.8005 7-3 Q1 8916.7701 7-3 Q1 8919.5331 7-3 P1 8919.7344 7-3 P1 8943.3928 7-3 P2 8943.3992 7-3 P2 8948.1349 7-3 Q1 8957.9231 7-3 P1 8958.2458 7-3 P1 8988.3162 7-3 P2 8988.4148 7-3 P2 9001.1181 7-3 P1 9001.5768 7-3 P1 9037.9505 7-3 P2 9038.1573 7-3 P2 9049.2361 7-3 P1 9049.8480 7-3 P1 9069.0 [SIII] DN 72 9092.3954 7-3 P2 9092.7220 7-3 P2 9102.3859 7-3 P1 9103.1625 7-3 P1 9160.6818 7-3 P1 9305.9850 8-4 R1 9306.0101 8-4 R1 9307.3470 8-4 R1 9307.3990 8-4 R1 9308.9954 8-4 R2 9309.1089 8-4 R2 9309.3820 8-4 R1 9309.4054 8-4 R1 9310.6938 8-4 R2 9310.8212 8-4 R2 9312.8604 8-4 R2 9312.9437 8-4 R2 9313.3176 8-4 R1 9313.3757 8-4 R1 9317.6690 8-4 R1 9317.7610 8-4 R1 9322.4313 8-4 R2 9322.4687 8-4 R2 9323.7068 8-4 R1 9323.7520 8-4 R1 9337.8454 8-4 R2 9337.8664 8-4 R2 9374.2255 8-4 Q2 9374.4171 8-4 Q2 9375.9328 8-4 Q1 9375.9900 8-4 Q1 9382.7499 8-4 Q2 9383.0757 8-4 Q2 9386.6041 8-4 Q1 9386.8130 8-4 Q1 9396.9085 8-4 Q2 9397.2741 8-4 Q2 9401.8432 8-4 Q1 9402.3216 8-4 Q1 9416.5845 8-4 Q2 9416.8746 8-4 Q2 9419.6749 8-4 P2 9419.7885 8-4 P2 9421.8445 8-4 Q1 9422.7166 8-4 Q1 9439.5971 8-4 P1 9439.7041 8-4 P1 9441.7011 8-4 Q2 9441.7911 8-4 Q2 9446.7767 8-4 Q1 9448.1677 8-4 Q1 9458.4905 8-4 P2 9458.5683 8-4 P2 9472.0036 8-4 Q2 9472.2406 8-4 Q2 9476.7481 8-4 P1 9476.7966 8-4 Q1 9476.9610 8-4 P1 9478.8228 8-4 Q1 9502.8111 8-4 P2 9502.8193 8-4 P2 9512.0481 8-4 Q1 9514.8219 8-4 Q1 9519.1824 8-4 P1 9519.5278 8-4 P1 9531.8 [SIII] DN 181 9552.4900 8-4 P2 9552.5767 8-4 P2 9567.0899 8-4 P1 9567.5907 8-4 P1 9607.6228 8-4 P2 9607.8240 8-4 P2 9620.6324 8-4 P1 9621.3027 8-4 P1 9651.4645 3-0 R1 9651.6266 3-0 R1 9652.8381 3-0 R2 9653.2184 3-0 R1 9653.4076 3-0 R1 9655.4970 3-0 R2 9655.6966 3-0 R2 9658.9822 3-0 R1 9659.1857 3-0 R1 9662.5690 3-0 R2 9662.7455 3-0 R2 9668.3365 8-4 P2 9668.6582 8-4 P2 9668.6676 3-0 R1 9668.8695 3-0 R1 9674.1643 3-0 R2 9674.3020 3-0 R2 9679.9570 8-4 P1 9680.8147 8-4 P1 9682.1507 3-0 R1 9682.3345 3-0 R1 9690.4621 3-0 R2 9690.5429 3-0 R2 9699.2611 3-0 R1 9699.4098 3-0 R1 9711.6994 3-0 R2 9711.7079 3-0 R2 9719.7791 3-0 R1 9719.8774 3-0 R1 9738.0510 3-0 R2 9738.1183 3-0 R2 9789.2709 3-0 Q2 9789.5517 3-0 Q2 9791.0685 3-0 Q1 9791.1625 3-0 Q1 9796.3012 3-0 Q2 9796.7697 3-0 Q2 9799.4941 3-0 Q1 9799.8399 3-0 Q1 9807.9572 3-0 Q2 9808.4605 3-0 Q2 9811.5939 3-0 Q1 9812.3710 3-0 Q1 9824.0847 3-0 Q2 9824.4419 3-0 Q2 9827.5265 3-0 Q1 9828.9159 3-0 Q1 9844.5763 3-0 Q2 9844.6073 3-0 Q2 9847.4107 3-0 Q1 9848.4216 3-0 P2 9848.5419 3-0 P2 9849.5879 3-0 Q1 9869.9195 3-0 Q2 9869.3862 3-0 Q2 9871.3332 3-0 Q1 9872.0575 3-0 P1 9872.2115 3-0 P1 9874.4640 3-0 Q1 9894.7209 3-0 P2 9894.7640 3-0 P2 9897.3815 3-0 Q2 9898.5094 3-0 Q2 9899.3700 3-0 Q1 9903.6114 3-0 Q1 9914.5282 3-0 P1 9914.8124 3-0 P1 9930.0347 3-0 Q2 9931.5874 3-0 Q1 9937.0949 3-0 Q1 9941.6327 9-5 R1 9941.6643 9-5 R1 9942.1972 9-5 R1 9942.2051 9-5 R1 9945.2287 3-0 P2 9945.2949 3-0 P2 9945.4048 9-5 R2 9945.5443 9-5 R2 9946.4853 9-5 R1 9946.5348 9-5 R1 9947.6927 9-5 R2 9947.8036 9-5 R2 9948.3362 9-5 R1 9948.4144 9-5 R1 9949.6253 9-5 R2 9956.5538 9-5 R1 9956.5954 9-5 R1 9956.6232 9-5 R2 9956.6837 9-5 R2 9960.4890 9-5 R1 9961.7138 3-0 P1 9962.1456 3-0 P1 9972.3423 9-5 R2 9972.3532 9-5 R2 9978.4648 9-5 R1 9999.8993 3-0 P2 10000.0903 3-0 P2 10011.2430 9-5 Q2 10011.4345 9-5 Q2 10012.7761 9-5 Q1 10012.8323 9-5 Q1 10013.6898 3-0 P1 10014.2816 3-0 P1 10021.1658 9-5 Q2 10021.5044 9-5 Q2 10025.3434 9-5 Q1 10025.5545 9-5 Q1 10037.6711 9-5 Q2 10038.0470 9-5 Q2 10043.2696 9-5 Q1 10043.7570 9-5 Q1 10058.8599 3-0 P2 10059.1858 3-0 P2 10060.6425 9-5 P2 10060.6435 9-5 Q2 10060.7792 9-5 P2 10060.9412 9-5 Q2 10066.7868 9-5 Q1 10067.6758 9-5 Q1 10070.4982 3-0 P1 10071.2581 3-0 P1 10082.4044 9-5 P1 10082.5183 9-5 P1 10090.0171 9-5 Q2 10090.1118 9-5 Q2 10096.1024 9-5 Q1 10097.5270 9-5 Q1 10103.5540 9-5 P2 10103.6531 9-5 P2 10122.2461 3-0 P2 10122.7155 3-0 P2 10122.7155 3-0 P2 10123.8913 9-5 P1 10124.1199 9-5 P1 10125.5545 9-5 Q2 10131.4189 9-5 Q1 10132.1788 3-0 P1 10133.1143 3-0 P1 10133.4985 9-5 Q1 10152.9553 9-5 P2 10152.9893 9-5 P2 10171.5120 9-5 P1 10171.8867 9-5 P1 10172.9766 9-5 Q1 10190.2084 3-0 P2 10190.8296 3-0 P2 10198.7858 3-0 P1 10199.9096 3-0 P1 10208.7484 9-5 P2 10208.8110 9-5 P2 10220.8241 9-5 Q1 10225.5128 9-5 P1 10226.0651 9-5 P1 10263.6922 3-0 P2 10270.3993 3-0 P1 10270.9913 9-5 P2 10271.1812 9-5 P2 10271.7215 3-0 P1 10286.1106 9-5 P1 10286.8589 9-5 P1 10340.2003 9-5 P2 10353.5133 9-5 P1 10354.4860 9-5 P1 10830.3 He I 70 10938.1 H I 20 sptable-1.0.pre20180612/lib/linelists/thar.dat000066400000000000000000000766551331023215600206400ustar00rootroot00000000000000# units Angstroms 3184.9486 3188.2339 3204.3210 3205.0912 3210.3085 3211.1943 3212.0220 3213.5741 3220.3508 3227.8028 3229.0096 3234.9962 3235.8400 3238.9343 3241.1079 3242.3790 3243.6887 3244.4488 3245.7603 3249.8003 3251.9159 3253.8659 3256.2738 3257.3667 3258.1220 3262.6684 3272.0268 3273.9157 3275.0676 3276.1712 3280.3713 3281.7016 3282.6166 3285.7525 3286.5829 3287.7893 3291.7394 3292.5209 3293.6988 3298.0498 3299.6687 3304.2383 3305.3036 3307.2283 3309.3654 3313.6784 3314.8268 3321.4508 3322.0933 3327.1931 3329.7284 3330.4770 3333.1290 3334.6041 3336.1618 3337.8703 3340.7254 3346.5560 3348.7684 3354.1796 3358.6020 3360.9982 3364.6855 3365.3383 3366.5171 3371.7967 3372.8230 3373.4925 3374.9749 3376.4359 3378.5734 3380.8595 3383.1068 3385.5316 3386.5006 3388.5309 3392.0349 3396.7278 3397.5161 3398.5448 3401.7110 3402.6952 3405.5584 3408.7499 3410.0756 3413.0130 3415.8846 3417.4978 3421.2100 3422.6561 3423.9897 3427.0923 3428.9992 3431.8104 3433.9988 3434.7271 3435.9771 3436.7272 3437.3071 3439.3987 3442.5790 3446.5474 3451.7023 3452.6820 3454.0952 3457.0691 3462.8505 3464.1272 3465.0626 3465.7650 3468.2198 3469.3454 3469.9208 3471.2186 3471.9593 3476.7474 3478.2324 3479.1725 3480.5055 3482.7613 3486.5512 3489.5076 3491.5360 3493.5185 3495.6998 3496.8107 3498.0098 3498.6210 3501.8666 3505.4946 3509.7785 3511.1574 3514.3877 3518.4040 3519.9936 3521.9139 3523.5061 3526.6342 3528.4116 3528.9544 3529.3859 3530.5148 3531.4505 3533.1826 3535.3196 3536.0108 3539.5872 3542.4979 3544.0179 3547.3376 3548.5144 3549.5959 3551.4019 3554.3058 3555.0135 3556.9041 3559.5081 3561.0304 3561.7809 3565.0298 3569.8204 3572.3923 3576.6156 3581.6084 3582.3546 3583.1022 3584.1756 3588.4407 3591.4524 3592.7794 3598.1199 3601.0344 3604.6819 3606.5218 3608.3770 3609.4452 3612.4275 3612.8666 3615.1327 3615.8503 3618.3633 3619.2119 3622.7954 3632.8303 3634.5822 3635.9433 3642.2490 3643.5123 3649.2496 3649.7349 3652.1683 3654.4618 3656.6938 3658.8087 3659.6294 3660.4370 3661.6214 3663.2025 3666.9811 3668.1398 3671.5398 3672.3003 3672.5218 3673.7935 3674.891 3675.1372 3675.5675 3675.7893 3675.9592 3676.1424 3678.2701 3678.4804 3679.1343 3679.5444 3679.7105 3680.0609 3680.4477 3680.6053 3681.8836 3682.4863 3684.9329 3687.67 3687.9841 3688.7604 3690.6238 3691.4117 3691.6141 3692.5664 3694.1785 3695.2889 3695.9737 3697.0308 3697.7436 3698.1061 3699.8808 3700.9872 3703.2299 3703.7743 3704.8616 3706.7672 3711.3041 3711.6229 3715.5606 3715.8615 3716.5836 3717.1713 3717.8293 3718.2065 3719.4347 3719.8362 3720.3073 3721.2152 3721.8254 3723.6561 3725.3932 3726.7246 3727.612 3727.9027 3729.3087 3730.3683 3730.7485 3732.9854 3733.6724 3737.5125 3737.889 3740.8551 3741.183 3742.9234 3743.5083 3744.7367 3745.6591 3745.9706 3747.539 3748.2838 3749.0843 3750.4939 3751.0219 3752.5700 3753.2421 3753.5177 3754.0308 3754.593 3755.2121 3756.2941 3757.6941 3758.4671 3758.7063 3763.5053 3765.27 3766.1186 3766.4473 3767.9007 3770.056 3770.52 3771.3708 3772.6498 3773.7574 3776.2711 3777.4167 3781.3189 3783.0127 3783.2964 3784.5749 3784.7942 3785.2804 3785.6002 3786.3824 3786.883 3789.168 3790.356 3790.795 3792.374 3792.73 3794.151 3795.38 3798.103 3799.382 3800.198 3801.443 3803.0750 3803.984 3805.82 3807.874 3808.129 3809.4561 3809.835 3813.068 3816.1666 3818.686 3820.7926 3821.4308 3822.1485 3822.8619 3823.0676 3823.4577 3825.1331 3825.6729 3826.3688 3826.8072 3828.3846 3830.0606 3830.7736 3831.6398 3833.086 3834.6787 3835.7111 3836.5851 3837.8752 3839.6953 3840.8004 3841.5187 3841.9601 3842.8968 3844.7311 3845.4055 3846.8876 3850.5813 3852.1353 3854.5108 3856.3544 3859.8396 3861.3524 3862.0522 3862.4218 3863.4059 3866.9092 3867.5786 3868.2547 3868.5284 3869.6633 3871.6174 3872.1371 3872.7222 3873.1479 3873.474 3873.8224 3874.2438 3874.8619 3875.3731 3875.6462 3877.463 3878.6620 3879.2688 3879.4454 3879.6441 3880.1948 3880.3332 3881.498 3882.143 3884.5245 3884.8225 3885.2254 3885.7681 3886.9159 3889.9059 3891.4017 3891.726 3891.9792 3893.6519 3894.66 3895.4192 3898.4374 3898.7967 3899.031 3900.5767 3900.8785 3901.6621 3903.1024 3903.4812 3904.0828 3905.1865 3907.1603 3907.5432 3908.7491 3908.9797 3909.139 3910.7734 3911.576 3911.9091 3913.645 3914.1623 3915.2953 3915.8489 3916.4176 3917.2693 3918.0701 3918.5115 3919.0234 3921.7799 3922.2191 3923.7995 3924.4034 3925.0934 3925.7188 3926.0456 3927.8062 3928.6233 3929.2904 3929.6693 3930.3303 3931.2566 3932.2264 3932.9113 3933.2375 3933.6611 3934.2742 3936.3532 3936.6718 3937.0406 3937.9237 3938.6144 3942.0732 3944.2534 3945.5072 3945.8201 3946.1455 3947.3308 3947.5046 3948.0305 3948.9789 3950.3951 3950.805 3951.5149 3952.7608 3955.1699 3955.8903 3956.6908 3959.3000 3960.2692 3962.4196 3963.4688 3964.0302 3964.7257 3966.9647 3967.3921 3968.4673 3969.0026 3969.6641 3972.1545 3972.6395 3973.1961 3974.4766 3974.759 3975.4674 3976.4149 3979.0433 3979.3559 3980.0896 3980.755 3981.1065 3981.8281 3982.102 3982.8956 3984.8795 3986.0739 3987.2061 3988.5997 3988.8456 3990.4922 3991.7309 3992.0535 3992.2726 3993.2989 3994.5494 3994.7918 3996.0617 3996.6687 3997.8654 3998.4038 3998.7334 3998.9526 4000.2811 4001.0581 4001.8935 4003.1057 4003.3086 4003.574 4005.0928 4005.3628 4005.9615 4006.3806 4007.0188 4008.2102 4009.0112 4011.5916 4011.7398 4012.4952 4013.8566 4014.5143 4014.7164 4018.099 4019.1289 4020.3541 4021.1498 4021.7506 4022.0674 4023.3378 4024.8025 4025.6556 4027.0091 4029.8256 4030.2925 4030.8424 4034.2461 4034.9218 4035.46 4036.0479 4036.5652 4037.5614 4038.2287 4038.8043 4039.8648 4040.9155 4041.2036 4042.8937 4043.1302 4043.3948 4044.4179 4044.9269 4045.2268 4045.9654 4047.4815 4048.2876 4049.5361 4049.9447 4050.8872 4051.4991 4052.9208 4053.5277 4054.3017 4054.5258 4057.9412 4059.2529 4063.4071 4064.3315 4065.6187 4067.4507 4069.2014 4069.2833 4069.4612 4070.2383 4071.7513 4071.9967 4072.3849 4072.6284 4073.8563 4074.642 4075.503 4075.907 4076.6284 4076.9432 4078.3015 4078.8751 4079.5738 4080.358 4080.7058 4081.3678 4081.5914 4082.0817 4082.3872 4083.4688 4084.6192 4085.0421 4085.2564 4085.4341 4086.5205 4087.2848 4088.7264 4089.1379 4091.3476 4093.3921 4093.6713 4094.747 4096.0759 4097.7478 4098.7316 4098.9327 4100.3414 4102.6177 4103.9121 4104.3821 4104.8385 4105.915 4107.0506 4107.8614 4108.4198 4109.3234 4110.826 4112.7545 4115.7589 4116.7137 4118.4893 4124.0403 4127.412 4128.0499 4128.64 4129.5116 4131.0021 4131.7235 4132.7533 4134.0681 4134.3235 4135.4800 4138.0406 4140.235 4140.3855 4141.6321 4142.4741 4142.701 4143.6491 4147.5396 4148.1816 4148.7269 4151.1453 4154.7205 4156.5166 4158.5905 4159.6599 4161.7389 4162.509 4163.6469 4163.9479 4164.1795 4164.2550 4165.7661 4168.0464 4168.6341 4170.5333 4171.341 4172.6257 4173.4475 4174.4396 4178.0597 4178.3658 4178.8481 4179.9601 4181.8836 4182.9342 4184.1376 4185.1447 4187.141 4190.7129 4191.0294 4192.362 4193.0164 4194.9318 4198.3170 4200.6745 4207.6122 4208.4108 4208.8907 4209.1964 4210.9232 4213.0673 4213.3779 4214.8285 4215.6272 4216.0698 4216.3722 4217.4308 4218.6649 4220.0651 4220.7323 4221.153 4221.6921 4222.6373 4223.4403 4224.2413 4224.6151 4226.2994 4226.7267 4226.9876 4227.3872 4228.158 4228.4166 4229.1477 4229.4545 4229.8644 4230.4267 4230.8242 4233.2873 4235.4636 4236.0471 4237.2198 4239.7873 4240.5947 4241.0948 4241.9725 4242.7197 4243.0195 4243.2611 4243.9241 4247.5988 4247.9886 4248.3908 4249.4761 4249.6791 4250.3146 4250.7749 4251.1846 4253.5385 4253.8674 4255.2373 4256.2537 4257.4963 4257.8982 4258.5204 4259.3619 4260.333 4260.9845 4261.2754 4261.492 4261.9665 4262.6124 4263.3561 4264.1064 4264.3399 4266.2864 4266.5271 4267.5191 4269.0639 4269.9426 4272.1689 4272.8745 4273.3574 4274.0246 4275.1596 4276.8073 4277.3139 4277.5282 4278.3232 4279.0627 4280.568 4281.0678 4281.4145 4282.0413 4282.8976 4283.5184 4284.9749 4285.1823 4286.2285 4287.0808 4288.6688 4289.6551 4290.3937 4291.8098 4292.3057 4293.7698 4294.7193 4295.5849 4295.8155 4297.3066 4299.8393 4300.1008 4300.6495 4302.5261 4303.9892 4304.9565 4306.3668 4307.1762 4308.122 4308.6001 4309.2392 4311.7994 4312.9975 4313.3084 4313.6025 4314.3195 4315.2543 4315.9484 4316.1094 4316.3726 4317.84 4318.4157 4319.0973 4320.1264 4325.2741 4325.8599 4327.7145 4328.6879 4328.9154 4330.412 4330.8438 4331.1995 4332.0297 4332.3395 4333.5612 4333.9369 4335.3379 4337.0708 4337.2774 4338.1078 4339.8716 4340.8954 4342.4442 4343.3817 4343.6035 4343.9515 4344.3265 4345.168 4346.4367 4347.6385 4348.064 4348.5982 4349.0722 4350.2717 4351.2719 4352.2049 4352.6122 4352.8201 4353.4487 4354.4824 4355.3205 4355.5259 4356.0445 4357.6132 4358.3200 4359.3719 4360.1672 4360.7178 4361.3071 4362.0662 4362.4721 4363.7945 4364.0401 4365.9301 4366.9657 4367.418 4367.8316 4369.8756 4370.7532 4371.3290 4372.49 4374.1239 4374.7851 4375.9542 4376.5309 4378.1768 4379.6668 4380.2863 4381.4018 4381.8601 4385.0566 4385.7535 4388.1014 4388.968 4391.1105 4391.3893 4392.974 4393.759 4396.1394 4396.4783 4397.0097 4397.9149 4399.406 4400.0968 4400.3863 4400.9863 4401.5810 4402.2452 4402.6001 4402.9271 4408.8828 4409.8991 4413.3745 4413.6324 4414.4863 4414.767 4416.237 4416.8447 4418.4157 4419.7692 4420.2571 4421.5439 4422.0479 4423.7202 4424.8373 4426.0011 4428.5536 4429.6348 4429.8227 4430.189 4430.9963 4432.2523 4432.9628 4433.4907 4433.838 4434.8266 4434.9564 4435.6787 4436.0484 4436.2844 4436.9961 4438.7464 4439.1237 4439.4614 4439.8793 4440.5737 4440.8659 4441.6084 4443.0863 4443.6657 4445.0338 4445.9012 4447.2296 4447.8346 4448.8792 4449.5206 4450.804 4452.5655 4454.1392 4454.7738 4456.708 4457.2362 4458.0015 4458.7384 4459.5477 4460.5574 4461.5278 4463.666 4463.8346 4464.1386 4465.3406 4465.9751 4468.3208 4469.1891 4469.5253 4470.9906 4474.7594 4475.2214 4478.4032 4478.5958 4479.6376 4480.2661 4480.5453 4481.8107 4483.3468 4486.8973 4487.4955 4488.3123 4488.6803 4489.6645 4490.6715 4490.9816 4492.1007 4493.3337 4494.6907 4494.9616 4495.2378 4496.3155 4496.6381 4497.9144 4498.5384 4498.9401 4499.7037 4499.9832 4500.5769 4502.9268 4504.6306 4505.2167 4506.473 4507.8339 4510.5259 4510.7332 4512.4832 4513.2231 4513.6799 4514.0573 4514.5503 4515.1182 4515.6274 4517.0352 4519.2592 4521.1939 4521.7407 4522.3230 4522.7839 4524.1289 4524.8379 4525.4456 4526.0286 4527.7086 4528.0208 4528.4097 4528.974 4530.3191 4530.5523 4531.7134 4532.2577 4533.077 4533.3042 4534.1198 4534.4025 4535.2546 4535.4903 4535.9798 4537.6426 4540.999 4542.0513 4543.4153 4543.8692 4544.5142 4545.0519 4545.9156 4546.6757 4547.2498 4547.7589 4548.3261 4551.4736 4552.1536 4553.8376 4555.8127 4556.3872 4558.3458 4559.0571 4559.312 4561.3477 4562.0803 4562.4756 4563.6609 4564.4054 4564.8354 4567.2403 4568.1426 4568.5235 4570.9722 4571.2195 4571.5312 4573.7038 4574.0279 4574.3058 4575.2338 4575.4259 4576.7405 4577.5822 4579.3495 4579.8272 4581.1732 4584.3671 4588.4261 4589.1222 4589.2668 4589.8978 4592.666 4592.9675 4593.6437 4595.4206 4596.0967 4596.3078 4598.7627 4599.7046 4600.8717 4602.8862 4603.1446 4604.6529 4605.8237 4606.5021 4607.378 4607.9347 4608.6201 4609.5673 4610.0809 4610.6272 4611.8597 4612.5435 4613.6044 4615.024 4615.334 4615.8838 4616.4523 4617.9065 4619.4794 4620.2408 4620.4476 4621.1629 4622.1209 4623.1169 4623.8911 4624.1365 4624.314 4624.6776 4625.0538 4625.2747 4625.4938 4627.298 4628.2015 4628.4409 4631.7617 4633.7657 4637.2328 4638.1259 4638.6849 4639.5188 4639.7036 4640.0462 4643.5566 4644.7072 4646.6861 4647.2509 4647.9564 4649.9777 4650.2343 4651.5552 4651.9895 4654.0057 4655.2126 4656.1849 4656.5518 4657.9012 4659.5698 4660.3941 4662.5936 4663.2026 4664.9704 4666.0050 4666.5158 4666.7985 4668.1716 4669.6658 4669.9842 4672.4372 4673.6609 4675.376 4676.0555 4676.9721 4678.2352 4680.2377 4680.646 4682.2319 4682.7322 4683.3517 4686.1946 4686.5715 4690.3343 4690.6219 4691.0516 4691.3452 4691.6354 4691.8842 4694.0914 4695.0381 4695.4542 4698.2248 4700.1402 4700.7711 4702.3161 4703.3581 4703.9898 4705.2986 4705.7606 4706.2511 4707.045 4708.2940 4710.8238 4712.0056 4712.4814 4712.8408 4714.6715 4715.4308 4717.3905 4719.4424 4719.9795 4720.4586 4720.7811 4721.2765 4721.591 4722.0886 4723.4382 4723.784 4724.7723 4726.8683 4727.8491 4728.133 4729.1282 4729.8795 4730.6593 4730.8815 4732.0532 4734.0458 4735.9058 4737.9172 4739.6764 4740.5292 4740.9585 4741.3039 4742.1174 4742.5671 4743.687 4745.3375 4747.6176 4748.5911 4749.2002 4749.9713 4752.4141 4757.2196 4761.1101 4762.5242 4764.3463 4764.8646 4765.595 4766.6006 4768.0578 4773.241 4775.313 4775.7940 4776.7792 4777.1915 4778.294 4779.7286 4780.7505 4781.2902 4781.526 4782.7612 4783.6389 4783.8617 4784.0396 4786.531 4787.148 4788.6781 4789.3868 4790.4373 4791.5157 4792.0819 4793.2446 4793.9052 4795.9131 4796.2429 4800.1724 4801.0517 4802.6714 4803.9559 4805.6063 4806.0205 4808.1337 4809.614 4811.871 4812.3755 4813.0069 4813.7204 4813.8963 4817.0206 4818.6477 4819.193 4820.4649 4820.8847 4821.5878 4821.8646 4822.014 4822.8548 4823.1823 4823.6058 4823.9967 4824.6484 4826.7004 4828.6596 4829.7973 4831.1213 4831.5975 4832.4233 4832.8025 4833.6759 4837.4121 4838.3546 4840.4744 4840.8492 4842.1676 4843.9413 4844.1653 4844.7553 4844.9251 4845.1626 4847.3263 4847.8095 4848.3625 4849.1399 4849.8617 4850.4397 4852.8685 4853.6087 4856.2756 4857.5385 4858.0944 4858.3327 4861.2167 4861.7173 4863.1724 4865.4775 4865.91 4867.556 4868.2742 4868.5277 4868.8814 4871.289 4872.0309 4872.9169 4874.3645 4876.4949 4877.0015 4877.8128 4878.0094 4878.733 4879.3497 4879.8635 4881.2046 4881.8531 4882.2432 4885.9843 4886.8661 4888.2612 4889.0422 4889.4903 4889.8553 4890.4582 4891.0379 4891.6606 4892.7592 4893.4453 4894.9551 4898.8044 4899.2401 4902.0545 4902.7943 4904.7516 4907.2093 4909.8431 4910.1576 4910.5488 4910.7929 4911.1358 4911.3787 4912.0428 4912.5293 4913.4789 4914.121 4915.4155 4917.822 4919.8157 4921.6134 4922.9442 4924.4223 4925.4254 4925.9501 4926.2529 4927.2988 4927.7803 4929.086 4929.985 4933.2091 4933.8521 4934.3306 4936.7746 4937.8295 4938.5047 4939.0605 4939.2707 4939.6422 4941.416 4941.9174 4943.0642 4943.7076 4945.4587 4946.6637 4947.5752 4950.2513 4950.6264 4952.6908 4953.532 4957.2963 4958.0988 4958.724 4961.3814 4961.7260 4962.0621 4963.1881 4965.0795 4965.7315 4967.0628 4967.6529 4968.7556 4970.0785 4972.1597 4975.0917 4975.9485 4976.5938 4977.3906 4980.1859 4980.7561 4980.9513 4982.4875 4983.5324 4985.3725 4985.9486 4987.1470 4987.5582 4989.3086 4992.1257 4992.6372 4993.7488 4994.1058 4997.8189 4999.9398 5000.2463 5002.0972 5003.5981 5004.1279 5008.1897 5009.3344 5009.9367 5010.4174 5011.4774 5013.1647 5014.7539 5015.8893 5016.5356 5017.1628 5017.5084 5018.0535 5019.8062 5020.5458 5021.2531 5022.0051 5022.174 5023.7084 5028.6556 5029.0119 5029.6295 5029.637 5029.8916 5035.3375 5036.7284 5038.3018 5039.2303 5039.5265 5040.6805 5041.1224 5041.5998 5043.5145 5044.7195 5045.2481 5046.3527 5046.6372 5047.0434 5048.9366 5049.796 5050.7842 5051.8887 5055.3473 5057.9866 5059.8611 5061.6562 5062.0371 5062.9325 5063.5157 5063.9988 5064.602 5064.9454 5066.1355 5066.7773 5067.1379 5067.9737 5069.3384 5074.6465 5075.4659 5079.1374 5079.9079 5081.4462 5084.6994 5084.9935 5085.2955 5086.1774 5089.2192 5090.0513 5090.5455 5095.0639 5096.4848 5098.0432 5100.6211 5101.1299 5109.7331 5111.2781 5115.0448 5117.2923 5118.2023 5122.4995 5125.4895 5125.9502 5128.4897 5130.2338 5131.072 5133.1051 5134.746 5136.1210 5137.4733 5140.7736 5141.7827 5143.2673 5143.9165 5145.3083 5146.0557 5148.2115 5149.2069 5151.612 5154.2430 5158.6041 5161.5396 5162.2846 5163.4584 5165.7728 5166.6553 5168.9225 5170.2227 5173.6715 5174.7988 5175.3248 5175.9115 5176.2292 5176.4037 5176.961 5177.6228 5178.48 5180.7209 5182.5269 5183.0897 5183.6044 5183.9896 5184.4534 5184.7315 5186.4132 5187.3374 5187.7462 5190.872 5193.8256 5194.4576 5195.8136 5197.236 5198.7999 5199.1637 5202.0087 5203.8479 5205.1522 5207.8015 5209.7246 5211.2305 5213.3492 5216.5966 5216.8139 5218.5271 5219.1099 5220.7068 5220.9263 5221.271 5228.2246 5228.9951 5231.1597 5233.2254 5234.1069 5238.8137 5239.552 5240.1968 5247.6547 5250.8727 5253.4441 5254.4648 5258.3602 5260.1041 5261.472 5264.2332 5265.5514 5266.7103 5269.7927 5270.266 5272.6439 5272.927 5273.1317 5274.1188 5276.4089 5277.146 5277.5002 5280.0855 5280.3441 5281.0687 5281.6285 5286.887 5289.8974 5291.8163 5294.3971 5295.0886 5296.2787 5297.7431 5298.2824 5300.5234 5301.4043 5306.9864 5307.4655 5309.6093 5310.2665 5312.0018 5312.5288 5312.9045 5315.2278 5317.4944 5318.4268 5320.7699 5322.8988 5325.1438 5325.4317 5326.2774 5326.9756 5329.3745 5329.6979 5329.7559 5330.0804 5337.0154 5340.4982 5343.5812 5345.3117 5346.3778 5347.9714 5349.0054 5349.4608 5351.1265 5351.8365 5354.6016 5355.6365 5358.7059 5359.8269 5360.1501 5361.1556 5362.5751 5365.4705 5369.2819 5369.447 5370.7096 5372.7027 5373.4943 5374.8219 5375.3526 5375.7688 5376.1304 5376.7809 5378.8356 5379.1105 5381.3709 5382.9276 5384.0356 5386.6107 5388.0507 5392.5726 5393.5995 5393.9719 5394.7608 5397.516 5398.7015 5398.9219 5399.1745 5399.6218 5400.1455 5402.6048 5403.1993 5406.7553 5407.3439 5407.6535 5410.7687 5415.5226 5417.4858 5419.1285 5421.3517 5421.6628 5421.8359 5424.0079 5425.6783 5426.4075 5429.1048 5431.1120 5432.765 5433.2919 5433.7005 5434.1514 5435.1229 5435.7236 5435.8925 5437.3877 5438.1374 5439.9891 5440.6015 5441.2145 5442.2477 5443.1187 5443.6893 5447.1536 5448.2719 5449.4788 5451.652 5452.2187 5455.1524 5458.9676 5461.7358 5462.6129 5464.2055 5467.1704 5470.7591 5477.5522 5479.0751 5480.8907 5484.1467 5487.8414 5488.6287 5488.9254 5489.0885 5490.1194 5492.6435 5493.204 5494.3306 5495.8738 5496.137 5498.1841 5499.2554 5499.6478 5501.2814 5501.9439 5504.3018 5506.1128 5506.9196 5507.5385 5508.5585 5509.9938 5514.8731 5518.9893 5519.2353 5521.7532 5524.5824 5524.957 5527.2953 5528.2272 5529.0972 5530.0763 5530.6977 5535.971 5537.5563 5538.6087 5539.2618 5539.9106 5541.1466 5541.5815 5541.9357 5542.89 5545.0495 5545.8058 5546.1204 5547.1339 5548.1758 5551.3719 5552.6229 5555.5312 5556.1487 5557.0454 5557.9214 5558.3422 5558.702 5559.8912 5564.2011 5567.9986 5570.9268 5571.1913 5572.0951 5572.4649 5573.3535 5574.9153 5576.2045 5577.6845 5579.3583 5580.0771 5580.7547 5581.9668 5582.8665 5583.7621 5585.8472 5587.0263 5587.7351 5588.7506 5590.1127 5593.6129 5594.4604 5595.0635 5597.4756 5598.4794 5599.6548 5601.1216 5601.6032 5602.863 5604.5154 5606.3861 5606.733 5609.5735 5610.6809 5612.0679 5612.6174 5615.3195 5616.6908 5617.2897 5617.6417 5619.9755 5624.9129 5625.6782 5630.2969 5633.295 5635.8792 5639.7461 5641.5575 5641.7342 5645.5249 5645.6688 5645.8947 5646.4514 5647.7069 5648.6863 5648.9910 5650.7043 5652.902 5654.0234 5654.5185 5655.4897 5657.9255 5659.1272 5660.6594 5663.042 5664.621 5665.1799 5665.6283 5666.4185 5667.1281 5673.8358 5674.9864 5677.0529 5679.005 5681.9001 5685.1921 5687.3489 5690.6934 5691.6612 5696.3904 5698.2937 5700.9176 5702.6511 5705.6371 5707.1033 5708.6794 5715.7244 5717.1711 5719.6227 5720.1828 5724.2374 5724.4638 5725.3885 5727.7103 5729.9823 5736.0297 5739.5196 5741.1705 5741.829 5742.0838 5747.1931 5747.3849 5748.7412 5749.3883 5749.7862 5753.0265 5760.5508 5762.7941 5763.529 5767.7785 5768.1812 5771.7601 5772.1143 5773.9463 5777.4006 5779.8352 5789.6451 5792.4304 5796.0683 5797.3194 5798.4780 5800.8297 5802.0798 5804.1412 5805.7017 5807.6814 5808.6569 5812.9725 5815.4219 5818.4495 5819.6027 5822.7933 5826.2722 5829.1097 5829.8625 5830.8272 5832.3705 5834.2633 5838.9502 5839.8514 5840.6404 5842.05 5843.8069 5844.7909 5845.9188 5852.6806 5853.4745 5854.1207 5855.4986 5857.4491 5860.3103 5863.7184 5866.8119 5868.3745 5869.8507 5870.5526 5871.1828 5872.6028 5874.0383 5874.3513 5874.9865 5879.1265 5882.6242 5884.0331 5885.7016 5886.5314 5888.2622 5888.5841 5889.9531 5891.451 5894.6979 5895.2818 5896.3631 5899.8441 5902.6021 5904.1592 5905.1763 5905.5707 5911.2296 5912.0853 5913.3638 5914.3856 5914.6709 5916.7282 5918.9442 5925.4036 5927.1258 5928.813 5929.9343 5932.4274 5936.3861 5937.1619 5937.6634 5938.457 5938.8252 5940.5653 5942.3585 5943.4653 5944.6472 5946.2347 5948.7991 5954.5852 5955.5616 5956.2588 5960.7806 5964.4723 5968.3199 5969.7373 5971.6008 5972.4351 5973.6649 5975.0648 5976.2005 5981.8846 5982.096 5986.2665 5987.3016 5989.0447 5991.0071 5993.4941 5994.1287 5996.6297 5998.9987 6001.2033 6001.7339 6005.165 6005.7242 6007.0722 6010.1606 6011.5337 6013.6777 6015.4218 6016.3589 6018.9934 6020.2715 6021.0357 6021.4113 6023.2242 6025.15 6026.0448 6028.2713 6029.2257 6029.65 6030.445 6032.1274 6032.8726 6035.1923 6036.7622 6037.6975 6038.6805 6042.5898 6043.2233 6044.4327 6046.8977 6049.051 6050.9818 6052.7229 6053.3808 6055.5937 6058.1813 6059.3725 6061.5361 6064.7508 6065.7799 6067.0803 6069.0207 6070.3412 6073.1036 6077.1057 6077.8728 6078.4212 6079.2227 6081.2433 6085.3748 6085.8797 6087.2622 6088.0305 6090.4482 6097.1945 6098.1205 6098.8031 6099.0831 6099.9886 6101.7251 6105.6351 6107.5337 6112.8375 6113.4657 6114.5392 6114.9234 6116.1661 6119.6998 6120.5564 6121.4075 6122.2144 6123.3619 6123.8331 6124.0687 6124.4805 6125.7396 6127.4160 6129.5458 6133.8143 6137.926 6138.6465 6144.7581 6145.4411 6150.683 6151.9929 6154.0682 6154.5162 6155.2385 6155.581 6157.0878 6161.3534 6162.1700 6162.9699 6164.4796 6165.1232 6169.8221 6170.174 6172.2778 6173.0964 6178.4315 6180.705 6182.6217 6187.135 6188.1251 6189.1449 6191.9053 6193.8563 6198.2227 6200.4325 6201.1002 6203.4925 6205.8599 6207.2201 6207.7504 6208.6869 6215.9383 6220.0112 6221.3192 6224.5272 6226.3697 6232.9745 6234.1962 6234.8554 6239.7121 6240.9536 6243.1201 6245.0409 6245.6182 6246.1736 6248.4055 6250.4858 6257.4237 6258.6068 6261.4181 6264.7139 6265.6036 6266.1737 6268.2001 6271.5444 6274.1166 6276.1646 6277.2385 6278.6453 6279.166 6279.9776 6285.278 6286.0453 6287.2554 6289.4882 6291.1915 6291.6286 6292.0601 6292.8909 6293.2424 6296.8722 6298.9027 6300.9165 6301.4128 6303.2507 6304.2423 6307.6570 6309.16 6310.8101 6312.6222 6314.2693 6315.7750 6317.1824 6321.3004 6321.8199 6324.3978 6326.3669 6327.2778 6331.4137 6332.5118 6333.1459 6335.4060 6337.6201 6339.6684 6342.8595 6346.1209 6348.2321 6348.7375 6355.63 6355.9108 6357.0229 6357.6779 6358.6211 6359.1345 6359.6744 6362.2518 6364.8937 6369.1394 6369.5748 6371.9436 6376.9305 6378.7604 6379.6733 6381.3598 6381.7588 6384.7169 6387.3957 6388.8134 6389.39 6390.1289 6391.1774 6392.3685 6393.7972 6394.0498 6394.7289 6396.9499 6399.2065 6399.9498 6400.6961 6403.0128 6406.4462 6411.8991 6413.6145 6415.5374 6416.3071 6418.3703 6422.1075 6422.8969 6424.8127 6428.7733 6431.555 6436.6699 6437.7613 6438.3095 6438.916 6439.0715 6441.8994 6443.8598 6445.6407 6446.7712 6450.006 6450.9557 6452.0591 6455.2647 6457.2824 6460.4750 6461.0596 6467.6754 6471.2131 6483.0825 6485.3759 6487.4811 6488.8832 6490.7372 6493.1975 6493.7777 6493.9694 6495.2573 6496.0292 6497.4919 6499.1061 6499.6456 6500.6575 6501.3608 6501.9919 6503.5111 6506.9868 6508.3605 6509.0503 6512.3639 6513.8462 6522.0432 6522.4994 6531.3418 6534.6056 6536.1441 6537.1775 6537.6139 6538.112 6542.0498 6545.7186 6550.1877 6551.7055 6554.1603 6558.8756 6560.0574 6564.4445 6565.07 6569.6322 6576.1221 6577.2146 6577.6552 6580.2299 6583.906 6584.613 6585.6945 6588.5396 6591.4845 6593.4628 6593.9391 6596.1141 6598.6778 6599.4824 6600.7311 6602.762 6603.6209 6604.8534 6605.4165 6613.374 6617.058 6617.5154 6618.1668 6619.9458 6620.9665 6632.0837 6633.4579 6638.2207 6638.9119 6639.7403 6643.6976 6644.6635 6646.5407 6648.4954 6648.9586 6654.3675 6655.4892 6656.9386 6658.6774 6660.6761 6662.2686 6663.6966 6664.051 6666.3588 6668.8163 6673.5797 6674.6969 6677.2817 6678.7067 6680.0811 6683.3673 6684.2929 6687.5207 6692.7262 6694.0068 6694.4967 6696.14 6697.7123 6700.7499 6711.2521 6713.97 6717.3851 6719.1995 6722.8899 6726.3091 6727.4583 6728.1183 6728.7595 6729.9328 6732.6491 6733.7488 6738.1800 6741.9212 6742.8845 6746.1355 6751.4267 6752.8335 6753.6598 6756.4528 6757.1092 6758.2035 6766.6117 6770.1069 6772.1745 6773.0973 6778.3123 6779.3242 6780.1252 6780.4131 6787.7364 6788.8403 6791.2351 6795.7982 6798.4868 6800.4645 6807.319 6808.5311 6809.1 6809.3173 6809.5094 6809.6773 6810.5494 6812.4915 6812.7752 6815.6123 6823.5084 6824.6774 6827.2488 6829.0355 6829.3472 6832.8927 6834.9246 6839.2949 6846.479 6851.8842 6852.3545 6853.5234 6854.1093 6854.5128 6855.315 6855.6891 6861.2688 6862.8685 6863.5350 6866.3666 6866.7634 6868.4508 6871.2891 6874.753 6879.5824 6882.8114 6886.4082 6887.0881 6888.1742 6889.3032 6892.2502 6894.2303 6900.7632 6902.2105 6908.9905 6909.8491 6911.2264 6914.7127 6916.1289 6920.0394 6925.0094 6936.6528 6937.6642 6942.538 6943.6105 6945.4902 6946.2134 6951.4776 6952.9666 6954.656 6955.315 6960.25 6962.3117 6965.4307 6969.2976 6981.0831 6985.4718 6986.0298 6989.6553 6992.2126 6992.6966 6993.0371 6993.9873 6996.7573 6999.6238 7000.8036 7002.8829 7007.0961 7014.9689 7015.3172 7018.5675 7020.4841 7021.2832 7025.2251 7026.4616 7028.0228 7030.2514 7032.931 7036.2831 7038.7202 7045.797 7053.6196 7054.4177 7058.4895 7059.5253 7060.0417 7060.6538 7061.3942 7064.4515 7067.2181 7068.7358 7071.0942 7071.48 7072.3939 7074.2563 7075.3336 7077.369 7084.169 7086.7044 7088.8232 7089.3395 7100.5144 7107.4778 7109.1819 7109.8602 7112.9189 7113.9879 7114.3984 7124.5607 7125.82 7130.1846 7130.7236 7131.3586 7132.61 7140.4617 7142.3310 7147.0416 7148.5589 7150.2844 7153.5877 7156.9416 7158.8387 7159.947 7162.5569 7167.2028 7168.8952 7170.3607 7173.3725 7176.186 7176.7213 7188.532 7191.1328 7200.0454 7201.8091 7202.1910 7202.5166 7206.483 7206.9804 7208.0063 7212.6896 7218.0542 7219.1515 7220.9809 7225.1099 7229.938 7229.9386 7230.8623 7233.5365 7240.1848 7242.0919 7244.6965 7246.1277 7250.5895 7253.676 7255.3541 7256.986 7258.1770 7265.1724 7270.6636 7272.9359 7284.9033 7285.4437 7296.2659 7298.1434 7305.4043 7311.7159 7315.0661 7316.005 7323.2106 7324.8073 7326.1491 7328.285 7329.4916 7335.5772 7339.6035 7341.1515 7342.5769 7345.3996 7346.3428 7348.053 7350.814 7353.293 7358.3449 7361.3472 7370.8255 7372.1184 7376.8772 7380.4263 7383.9805 7385.5006 7392.9801 7393.4377 7402.2521 7410.9683 7411.7363 7412.3368 7417.7908 7418.5499 7422.3118 7423.8044 7425.2942 7428.9405 7430.2533 7435.3683 7436.297 7440.4933 7444.7489 7447.8488 7455.208 7458.7541 7461.8746 7462.991 7469.0566 7471.1641 7481.3545 7483.6256 7484.3267 7487.9738 7493.4276 7495.5641 7499.0024 7500.6556 7503.8691 7508.4787 7510.4082 7511.3498 7511.7902 7514.6518 7518.7824 7523.1347 7525.5079 7528.4892 7531.1437 7536.4365 7537.4287 7549.3138 7555.3254 7565.8515 7566.5296 7567.7417 7569.5115 7570.559 7571.0326 7573.3437 7589.3151 7598.2054 7607.8230 7618.3443 7620.0773 7625.7053 7627.1749 7628.8818 7630.3106 7632.1305 7635.106 7637.3852 7638.7805 7647.3794 7651.7451 7652.3202 7653.8284 7654.6998 7658.3246 7660.0234 7660.8903 7666.5679 7668.9608 7670.0575 7672.2552 7676.2195 7678.1267 7683.0189 7685.3075 7691.7706 7693.8016 7699.4034 7699.7794 7701.1081 7703.685 7704.8169 7710.2692 7712.405 7713.9378 7721.2023 7723.7611 7724.2072 7728.951 7731.7385 7742.5628 7743.9552 7761.7133 7762.732 7771.9468 7776.6727 7778.4922 7782.3165 7787.8002 7788.9342 7798.3579 7810.6245 7813.4761 7813.9729 7814.323 7816.1534 7817.7669 7822.3877 7834.4578 7835.6209 7836.4597 7840.2981 7841.7911 7842.2656 7847.5394 7848.4547 7861.91 7861.911 7864.0218 7865.9698 7868.1946 7872.6316 7875.4626 7877.0756 7886.283 7891.075 7893.6191 7896.4528 7899.6229 7900.32 7916.442 7924.9914 7925.7478 7937.7335 7941.7259 7948.1764 7954.5923 7956.974 7972.596 7974.1592 7978.9731 7981.2262 7987.9731 7991.3655 7993.6808 8000.0449 8006.1567 8014.7857 8017.5275 8022.2014 8024.253 8025.7271 8026.2135 8030.2004 8032.4313 8037.2183 8046.1169 8050.648 8053.3085 8054.5355 8062.6304 8075.6518 8085.219 8089.4852 8092.2373 8093.6238 8094.0559 8103.6931 8115.311 8119.1811 8122.7234 8129.4051 8138.4753 8139.9032 8143.138 8149.7021 8152.3818 8157.5434 8159.7277 8163.121 8166.4477 8169.7865 8177.1788 8186.9113 8190.8849 8194.3943 8198.442 8202.1469 8207.4785 8209.4461 8214.1472 8217.2264 8231.4069 8234.9381 8252.3936 8253.6156 8254.7422 8259.5110 8261.0143 8264.5225 8275.6266 8288.4143 8292.5272 8295.5497 8297.1765 8304.4244 8311.6306 8320.8554 8330.4494 8335.7067 8341.4770 8356.0627 8356.0693 8358.726 8360.4915 8366.0741 8367.3936 8369.3404 8379.2261 8384.724 8385.728 8387.1053 8388.5363 8398.178 8399.2578 8401.989 8403.7965 8408.2096 8411.9172 8416.7269 8417.9982 8421.2254 8424.6475 8432.4935 8445.4870 8446.5116 8450.6754 8456.3468 8464.2367 8465.6706 8471.8260 8478.358 8490.3065 8500.6797 8510.6240 8511.9091 8516.5542 8521.4422 8539.793 8542.0871 8543.7225 8544.5955 8554.9440 8556.325 8558.4464 8560.4348 8568.2088 8573.1205 8575.3305 8577.2768 8587.6342 8591.8387 8593.1089 8599.7553 8604.0163 8605.7762 8616.2219 8620.4602 8621.3225 8629.1415 8631.3565 8638.3623 8639.4416 8645.3087 8649.149 8655.876 8662.1372 8665.4855 8667.9442 8675.3983 8678.4083 8687.848 8701.1209 8703.7025 8704.8601 8707.3592 8709.2341 8710.4142 8712.8528 8713.6547 8719.629 8721.6595 8722.4577 8723.7177 8724.3761 8732.424 8734.0234 8739.7816 8748.0309 8749.1697 8751.2062 8758.2434 8760.4496 8761.6862 8766.7450 8771.8602 8772.8052 8775.5733 8782.7156 8784.5621 8790.3761 8792.0572 8798.172 8799.0875 8804.5894 8810.254 8816.1728 8817.7431 8829.6938 8841.1822 8842.0744 8849.9165 8852.7916 8854.9079 8868.8334 8875.2324 8889.1939 8892.9865 8899.2971 8905.6581 8907.0331 8910.8566 8920.2012 8928.0925 8941.6608 8949.1227 8955.8467 8957.9860 8962.1468 8967.6403 8969.8667 8985.2808 8987.4079 8990.8935 8995.1893 8997.8763 9008.4636 9009.8832 9012.5263 9016.5903 9017.5912 9031.8194 9035.9195 9037.8938 9038.6911 9040.1229 9045.3532 9048.2501 9053.4858 9056.0813 9062.5631 9063.96 9066.1115 9068.023 9069.5817 9072.2785 9075.3945 9090.8186 9094.8289 9107.2269 9111.5314 9122.9674 9132.2739 9134.6919 9140.5559 9159.0346 9165.8950 9170.822 9178.7795 9187.5654 9193.5928 9194.6385 9199.6841 9203.9617 9208.5811 9215.9197 9224.4992 9227.5119 9232.496 9233.8574 9239.3261 9250.5782 9260.3254 9263.693 9266.207 9266.9198 9267.6895 9270.1501 9276.2732 9289.5624 9291.5313 9294.974 9300.0131 9307.8956 9310.4440 9317.7296 9336.1509 9336.1624 9340.7053 9354.2198 9360.9879 9383.2722 9388.9308 9390.5852 9399.0891 9409.3488 9414.0886 9420.4985 9431.5996 9432.2827 9436.8127 9455.2023 9461.0279 9467.1954 9470.6819 9474.8793 9486.9256 9494.0442 9495.4979 9497.1891 9500.2999 9505.393 9507.6525 9508.4513 9535.6566 9548.0303 9561.2452 9577.3475 9582.8133 9595.3906 9613.6911 9629.5693 9632.6439 9657.7863 9664.6983 sptable-1.0.pre20180612/lib/linelists/thorium.dat000066400000000000000000000766551331023215600213710ustar00rootroot00000000000000# units Angstroms 3184.9486 3188.2339 3204.3210 3205.0912 3210.3085 3211.1943 3212.0220 3213.5741 3220.3508 3227.8028 3229.0096 3234.9962 3235.8400 3238.9343 3241.1079 3242.3790 3243.6887 3244.4488 3245.7603 3249.8003 3251.9159 3253.8659 3256.2738 3257.3667 3258.1220 3262.6684 3272.0268 3273.9157 3275.0676 3276.1712 3280.3713 3281.7016 3282.6166 3285.7525 3286.5829 3287.7893 3291.7394 3292.5209 3293.6988 3298.0498 3299.6687 3304.2383 3305.3036 3307.2283 3309.3654 3313.6784 3314.8268 3321.4508 3322.0933 3327.1931 3329.7284 3330.4770 3333.1290 3334.6041 3336.1618 3337.8703 3340.7254 3346.5560 3348.7684 3354.1796 3358.6020 3360.9982 3364.6855 3365.3383 3366.5171 3371.7967 3372.8230 3373.4925 3374.9749 3376.4359 3378.5734 3380.8595 3383.1068 3385.5316 3386.5006 3388.5309 3392.0349 3396.7278 3397.5161 3398.5448 3401.7110 3402.6952 3405.5584 3408.7499 3410.0756 3413.0130 3415.8846 3417.4978 3421.2100 3422.6561 3423.9897 3427.0923 3428.9992 3431.8104 3433.9988 3434.7271 3435.9771 3436.7272 3437.3071 3439.3987 3442.5790 3446.5474 3451.7023 3452.6820 3454.0952 3457.0691 3462.8505 3464.1272 3465.0626 3465.7650 3468.2198 3469.3454 3469.9208 3471.2186 3471.9593 3476.7474 3478.2324 3479.1725 3480.5055 3482.7613 3486.5512 3489.5076 3491.5360 3493.5185 3495.6998 3496.8107 3498.0098 3498.6210 3501.8666 3505.4946 3509.7785 3511.1574 3514.3877 3518.4040 3519.9936 3521.9139 3523.5061 3526.6342 3528.4116 3528.9544 3529.3859 3530.5148 3531.4505 3533.1826 3535.3196 3536.0108 3539.5872 3542.4979 3544.0179 3547.3376 3548.5144 3549.5959 3551.4019 3554.3058 3555.0135 3556.9041 3559.5081 3561.0304 3561.7809 3565.0298 3569.8204 3572.3923 3576.6156 3581.6084 3582.3546 3583.1022 3584.1756 3588.4407 3591.4524 3592.7794 3598.1199 3601.0344 3604.6819 3606.5218 3608.3770 3609.4452 3612.4275 3612.8666 3615.1327 3615.8503 3618.3633 3619.2119 3622.7954 3632.8303 3634.5822 3635.9433 3642.2490 3643.5123 3649.2496 3649.7349 3652.1683 3654.4618 3656.6938 3658.8087 3659.6294 3660.4370 3661.6214 3663.2025 3666.9811 3668.1398 3671.5398 3672.3003 3672.5218 3673.7935 3674.891 3675.1372 3675.5675 3675.7893 3675.9592 3676.1424 3678.2701 3678.4804 3679.1343 3679.5444 3679.7105 3680.0609 3680.4477 3680.6053 3681.8836 3682.4863 3684.9329 3687.67 3687.9841 3688.7604 3690.6238 3691.4117 3691.6141 3692.5664 3694.1785 3695.2889 3695.9737 3697.0308 3697.7436 3698.1061 3699.8808 3700.9872 3703.2299 3703.7743 3704.8616 3706.7672 3711.3041 3711.6229 3715.5606 3715.8615 3716.5836 3717.1713 3717.8293 3718.2065 3719.4347 3719.8362 3720.3073 3721.2152 3721.8254 3723.6561 3725.3932 3726.7246 3727.612 3727.9027 3729.3087 3730.3683 3730.7485 3732.9854 3733.6724 3737.5125 3737.889 3740.8551 3741.183 3742.9234 3743.5083 3744.7367 3745.6591 3745.9706 3747.539 3748.2838 3749.0843 3750.4939 3751.0219 3752.5700 3753.2421 3753.5177 3754.0308 3754.593 3755.2121 3756.2941 3757.6941 3758.4671 3758.7063 3763.5053 3765.27 3766.1186 3766.4473 3767.9007 3770.056 3770.52 3771.3708 3772.6498 3773.7574 3776.2711 3777.4167 3781.3189 3783.0127 3783.2964 3784.5749 3784.7942 3785.2804 3785.6002 3786.3824 3786.883 3789.168 3790.356 3790.795 3792.374 3792.73 3794.151 3795.38 3798.103 3799.382 3800.198 3801.443 3803.0750 3803.984 3805.82 3807.874 3808.129 3809.4561 3809.835 3813.068 3816.1666 3818.686 3820.7926 3821.4308 3822.1485 3822.8619 3823.0676 3823.4577 3825.1331 3825.6729 3826.3688 3826.8072 3828.3846 3830.0606 3830.7736 3831.6398 3833.086 3834.6787 3835.7111 3836.5851 3837.8752 3839.6953 3840.8004 3841.5187 3841.9601 3842.8968 3844.7311 3845.4055 3846.8876 3850.5813 3852.1353 3854.5108 3856.3544 3859.8396 3861.3524 3862.0522 3862.4218 3863.4059 3866.9092 3867.5786 3868.2547 3868.5284 3869.6633 3871.6174 3872.1371 3872.7222 3873.1479 3873.474 3873.8224 3874.2438 3874.8619 3875.3731 3875.6462 3877.463 3878.6620 3879.2688 3879.4454 3879.6441 3880.1948 3880.3332 3881.498 3882.143 3884.5245 3884.8225 3885.2254 3885.7681 3886.9159 3889.9059 3891.4017 3891.726 3891.9792 3893.6519 3894.66 3895.4192 3898.4374 3898.7967 3899.031 3900.5767 3900.8785 3901.6621 3903.1024 3903.4812 3904.0828 3905.1865 3907.1603 3907.5432 3908.7491 3908.9797 3909.139 3910.7734 3911.576 3911.9091 3913.645 3914.1623 3915.2953 3915.8489 3916.4176 3917.2693 3918.0701 3918.5115 3919.0234 3921.7799 3922.2191 3923.7995 3924.4034 3925.0934 3925.7188 3926.0456 3927.8062 3928.6233 3929.2904 3929.6693 3930.3303 3931.2566 3932.2264 3932.9113 3933.2375 3933.6611 3934.2742 3936.3532 3936.6718 3937.0406 3937.9237 3938.6144 3942.0732 3944.2534 3945.5072 3945.8201 3946.1455 3947.3308 3947.5046 3948.0305 3948.9789 3950.3951 3950.805 3951.5149 3952.7608 3955.1699 3955.8903 3956.6908 3959.3000 3960.2692 3962.4196 3963.4688 3964.0302 3964.7257 3966.9647 3967.3921 3968.4673 3969.0026 3969.6641 3972.1545 3972.6395 3973.1961 3974.4766 3974.759 3975.4674 3976.4149 3979.0433 3979.3559 3980.0896 3980.755 3981.1065 3981.8281 3982.102 3982.8956 3984.8795 3986.0739 3987.2061 3988.5997 3988.8456 3990.4922 3991.7309 3992.0535 3992.2726 3993.2989 3994.5494 3994.7918 3996.0617 3996.6687 3997.8654 3998.4038 3998.7334 3998.9526 4000.2811 4001.0581 4001.8935 4003.1057 4003.3086 4003.574 4005.0928 4005.3628 4005.9615 4006.3806 4007.0188 4008.2102 4009.0112 4011.5916 4011.7398 4012.4952 4013.8566 4014.5143 4014.7164 4018.099 4019.1289 4020.3541 4021.1498 4021.7506 4022.0674 4023.3378 4024.8025 4025.6556 4027.0091 4029.8256 4030.2925 4030.8424 4034.2461 4034.9218 4035.46 4036.0479 4036.5652 4037.5614 4038.2287 4038.8043 4039.8648 4040.9155 4041.2036 4042.8937 4043.1302 4043.3948 4044.4179 4044.9269 4045.2268 4045.9654 4047.4815 4048.2876 4049.5361 4049.9447 4050.8872 4051.4991 4052.9208 4053.5277 4054.3017 4054.5258 4057.9412 4059.2529 4063.4071 4064.3315 4065.6187 4067.4507 4069.2014 4069.2833 4069.4612 4070.2383 4071.7513 4071.9967 4072.3849 4072.6284 4073.8563 4074.642 4075.503 4075.907 4076.6284 4076.9432 4078.3015 4078.8751 4079.5738 4080.358 4080.7058 4081.3678 4081.5914 4082.0817 4082.3872 4083.4688 4084.6192 4085.0421 4085.2564 4085.4341 4086.5205 4087.2848 4088.7264 4089.1379 4091.3476 4093.3921 4093.6713 4094.747 4096.0759 4097.7478 4098.7316 4098.9327 4100.3414 4102.6177 4103.9121 4104.3821 4104.8385 4105.915 4107.0506 4107.8614 4108.4198 4109.3234 4110.826 4112.7545 4115.7589 4116.7137 4118.4893 4124.0403 4127.412 4128.0499 4128.64 4129.5116 4131.0021 4131.7235 4132.7533 4134.0681 4134.3235 4135.4800 4138.0406 4140.235 4140.3855 4141.6321 4142.4741 4142.701 4143.6491 4147.5396 4148.1816 4148.7269 4151.1453 4154.7205 4156.5166 4158.5905 4159.6599 4161.7389 4162.509 4163.6469 4163.9479 4164.1795 4164.2550 4165.7661 4168.0464 4168.6341 4170.5333 4171.341 4172.6257 4173.4475 4174.4396 4178.0597 4178.3658 4178.8481 4179.9601 4181.8836 4182.9342 4184.1376 4185.1447 4187.141 4190.7129 4191.0294 4192.362 4193.0164 4194.9318 4198.3170 4200.6745 4207.6122 4208.4108 4208.8907 4209.1964 4210.9232 4213.0673 4213.3779 4214.8285 4215.6272 4216.0698 4216.3722 4217.4308 4218.6649 4220.0651 4220.7323 4221.153 4221.6921 4222.6373 4223.4403 4224.2413 4224.6151 4226.2994 4226.7267 4226.9876 4227.3872 4228.158 4228.4166 4229.1477 4229.4545 4229.8644 4230.4267 4230.8242 4233.2873 4235.4636 4236.0471 4237.2198 4239.7873 4240.5947 4241.0948 4241.9725 4242.7197 4243.0195 4243.2611 4243.9241 4247.5988 4247.9886 4248.3908 4249.4761 4249.6791 4250.3146 4250.7749 4251.1846 4253.5385 4253.8674 4255.2373 4256.2537 4257.4963 4257.8982 4258.5204 4259.3619 4260.333 4260.9845 4261.2754 4261.492 4261.9665 4262.6124 4263.3561 4264.1064 4264.3399 4266.2864 4266.5271 4267.5191 4269.0639 4269.9426 4272.1689 4272.8745 4273.3574 4274.0246 4275.1596 4276.8073 4277.3139 4277.5282 4278.3232 4279.0627 4280.568 4281.0678 4281.4145 4282.0413 4282.8976 4283.5184 4284.9749 4285.1823 4286.2285 4287.0808 4288.6688 4289.6551 4290.3937 4291.8098 4292.3057 4293.7698 4294.7193 4295.5849 4295.8155 4297.3066 4299.8393 4300.1008 4300.6495 4302.5261 4303.9892 4304.9565 4306.3668 4307.1762 4308.122 4308.6001 4309.2392 4311.7994 4312.9975 4313.3084 4313.6025 4314.3195 4315.2543 4315.9484 4316.1094 4316.3726 4317.84 4318.4157 4319.0973 4320.1264 4325.2741 4325.8599 4327.7145 4328.6879 4328.9154 4330.412 4330.8438 4331.1995 4332.0297 4332.3395 4333.5612 4333.9369 4335.3379 4337.0708 4337.2774 4338.1078 4339.8716 4340.8954 4342.4442 4343.3817 4343.6035 4343.9515 4344.3265 4345.168 4346.4367 4347.6385 4348.064 4348.5982 4349.0722 4350.2717 4351.2719 4352.2049 4352.6122 4352.8201 4353.4487 4354.4824 4355.3205 4355.5259 4356.0445 4357.6132 4358.3200 4359.3719 4360.1672 4360.7178 4361.3071 4362.0662 4362.4721 4363.7945 4364.0401 4365.9301 4366.9657 4367.418 4367.8316 4369.8756 4370.7532 4371.3290 4372.49 4374.1239 4374.7851 4375.9542 4376.5309 4378.1768 4379.6668 4380.2863 4381.4018 4381.8601 4385.0566 4385.7535 4388.1014 4388.968 4391.1105 4391.3893 4392.974 4393.759 4396.1394 4396.4783 4397.0097 4397.9149 4399.406 4400.0968 4400.3863 4400.9863 4401.5810 4402.2452 4402.6001 4402.9271 4408.8828 4409.8991 4413.3745 4413.6324 4414.4863 4414.767 4416.237 4416.8447 4418.4157 4419.7692 4420.2571 4421.5439 4422.0479 4423.7202 4424.8373 4426.0011 4428.5536 4429.6348 4429.8227 4430.189 4430.9963 4432.2523 4432.9628 4433.4907 4433.838 4434.8266 4434.9564 4435.6787 4436.0484 4436.2844 4436.9961 4438.7464 4439.1237 4439.4614 4439.8793 4440.5737 4440.8659 4441.6084 4443.0863 4443.6657 4445.0338 4445.9012 4447.2296 4447.8346 4448.8792 4449.5206 4450.804 4452.5655 4454.1392 4454.7738 4456.708 4457.2362 4458.0015 4458.7384 4459.5477 4460.5574 4461.5278 4463.666 4463.8346 4464.1386 4465.3406 4465.9751 4468.3208 4469.1891 4469.5253 4470.9906 4474.7594 4475.2214 4478.4032 4478.5958 4479.6376 4480.2661 4480.5453 4481.8107 4483.3468 4486.8973 4487.4955 4488.3123 4488.6803 4489.6645 4490.6715 4490.9816 4492.1007 4493.3337 4494.6907 4494.9616 4495.2378 4496.3155 4496.6381 4497.9144 4498.5384 4498.9401 4499.7037 4499.9832 4500.5769 4502.9268 4504.6306 4505.2167 4506.473 4507.8339 4510.5259 4510.7332 4512.4832 4513.2231 4513.6799 4514.0573 4514.5503 4515.1182 4515.6274 4517.0352 4519.2592 4521.1939 4521.7407 4522.3230 4522.7839 4524.1289 4524.8379 4525.4456 4526.0286 4527.7086 4528.0208 4528.4097 4528.974 4530.3191 4530.5523 4531.7134 4532.2577 4533.077 4533.3042 4534.1198 4534.4025 4535.2546 4535.4903 4535.9798 4537.6426 4540.999 4542.0513 4543.4153 4543.8692 4544.5142 4545.0519 4545.9156 4546.6757 4547.2498 4547.7589 4548.3261 4551.4736 4552.1536 4553.8376 4555.8127 4556.3872 4558.3458 4559.0571 4559.312 4561.3477 4562.0803 4562.4756 4563.6609 4564.4054 4564.8354 4567.2403 4568.1426 4568.5235 4570.9722 4571.2195 4571.5312 4573.7038 4574.0279 4574.3058 4575.2338 4575.4259 4576.7405 4577.5822 4579.3495 4579.8272 4581.1732 4584.3671 4588.4261 4589.1222 4589.2668 4589.8978 4592.666 4592.9675 4593.6437 4595.4206 4596.0967 4596.3078 4598.7627 4599.7046 4600.8717 4602.8862 4603.1446 4604.6529 4605.8237 4606.5021 4607.378 4607.9347 4608.6201 4609.5673 4610.0809 4610.6272 4611.8597 4612.5435 4613.6044 4615.024 4615.334 4615.8838 4616.4523 4617.9065 4619.4794 4620.2408 4620.4476 4621.1629 4622.1209 4623.1169 4623.8911 4624.1365 4624.314 4624.6776 4625.0538 4625.2747 4625.4938 4627.298 4628.2015 4628.4409 4631.7617 4633.7657 4637.2328 4638.1259 4638.6849 4639.5188 4639.7036 4640.0462 4643.5566 4644.7072 4646.6861 4647.2509 4647.9564 4649.9777 4650.2343 4651.5552 4651.9895 4654.0057 4655.2126 4656.1849 4656.5518 4657.9012 4659.5698 4660.3941 4662.5936 4663.2026 4664.9704 4666.0050 4666.5158 4666.7985 4668.1716 4669.6658 4669.9842 4672.4372 4673.6609 4675.376 4676.0555 4676.9721 4678.2352 4680.2377 4680.646 4682.2319 4682.7322 4683.3517 4686.1946 4686.5715 4690.3343 4690.6219 4691.0516 4691.3452 4691.6354 4691.8842 4694.0914 4695.0381 4695.4542 4698.2248 4700.1402 4700.7711 4702.3161 4703.3581 4703.9898 4705.2986 4705.7606 4706.2511 4707.045 4708.2940 4710.8238 4712.0056 4712.4814 4712.8408 4714.6715 4715.4308 4717.3905 4719.4424 4719.9795 4720.4586 4720.7811 4721.2765 4721.591 4722.0886 4723.4382 4723.784 4724.7723 4726.8683 4727.8491 4728.133 4729.1282 4729.8795 4730.6593 4730.8815 4732.0532 4734.0458 4735.9058 4737.9172 4739.6764 4740.5292 4740.9585 4741.3039 4742.1174 4742.5671 4743.687 4745.3375 4747.6176 4748.5911 4749.2002 4749.9713 4752.4141 4757.2196 4761.1101 4762.5242 4764.3463 4764.8646 4765.595 4766.6006 4768.0578 4773.241 4775.313 4775.7940 4776.7792 4777.1915 4778.294 4779.7286 4780.7505 4781.2902 4781.526 4782.7612 4783.6389 4783.8617 4784.0396 4786.531 4787.148 4788.6781 4789.3868 4790.4373 4791.5157 4792.0819 4793.2446 4793.9052 4795.9131 4796.2429 4800.1724 4801.0517 4802.6714 4803.9559 4805.6063 4806.0205 4808.1337 4809.614 4811.871 4812.3755 4813.0069 4813.7204 4813.8963 4817.0206 4818.6477 4819.193 4820.4649 4820.8847 4821.5878 4821.8646 4822.014 4822.8548 4823.1823 4823.6058 4823.9967 4824.6484 4826.7004 4828.6596 4829.7973 4831.1213 4831.5975 4832.4233 4832.8025 4833.6759 4837.4121 4838.3546 4840.4744 4840.8492 4842.1676 4843.9413 4844.1653 4844.7553 4844.9251 4845.1626 4847.3263 4847.8095 4848.3625 4849.1399 4849.8617 4850.4397 4852.8685 4853.6087 4856.2756 4857.5385 4858.0944 4858.3327 4861.2167 4861.7173 4863.1724 4865.4775 4865.91 4867.556 4868.2742 4868.5277 4868.8814 4871.289 4872.0309 4872.9169 4874.3645 4876.4949 4877.0015 4877.8128 4878.0094 4878.733 4879.3497 4879.8635 4881.2046 4881.8531 4882.2432 4885.9843 4886.8661 4888.2612 4889.0422 4889.4903 4889.8553 4890.4582 4891.0379 4891.6606 4892.7592 4893.4453 4894.9551 4898.8044 4899.2401 4902.0545 4902.7943 4904.7516 4907.2093 4909.8431 4910.1576 4910.5488 4910.7929 4911.1358 4911.3787 4912.0428 4912.5293 4913.4789 4914.121 4915.4155 4917.822 4919.8157 4921.6134 4922.9442 4924.4223 4925.4254 4925.9501 4926.2529 4927.2988 4927.7803 4929.086 4929.985 4933.2091 4933.8521 4934.3306 4936.7746 4937.8295 4938.5047 4939.0605 4939.2707 4939.6422 4941.416 4941.9174 4943.0642 4943.7076 4945.4587 4946.6637 4947.5752 4950.2513 4950.6264 4952.6908 4953.532 4957.2963 4958.0988 4958.724 4961.3814 4961.7260 4962.0621 4963.1881 4965.0795 4965.7315 4967.0628 4967.6529 4968.7556 4970.0785 4972.1597 4975.0917 4975.9485 4976.5938 4977.3906 4980.1859 4980.7561 4980.9513 4982.4875 4983.5324 4985.3725 4985.9486 4987.1470 4987.5582 4989.3086 4992.1257 4992.6372 4993.7488 4994.1058 4997.8189 4999.9398 5000.2463 5002.0972 5003.5981 5004.1279 5008.1897 5009.3344 5009.9367 5010.4174 5011.4774 5013.1647 5014.7539 5015.8893 5016.5356 5017.1628 5017.5084 5018.0535 5019.8062 5020.5458 5021.2531 5022.0051 5022.174 5023.7084 5028.6556 5029.0119 5029.6295 5029.637 5029.8916 5035.3375 5036.7284 5038.3018 5039.2303 5039.5265 5040.6805 5041.1224 5041.5998 5043.5145 5044.7195 5045.2481 5046.3527 5046.6372 5047.0434 5048.9366 5049.796 5050.7842 5051.8887 5055.3473 5057.9866 5059.8611 5061.6562 5062.0371 5062.9325 5063.5157 5063.9988 5064.602 5064.9454 5066.1355 5066.7773 5067.1379 5067.9737 5069.3384 5074.6465 5075.4659 5079.1374 5079.9079 5081.4462 5084.6994 5084.9935 5085.2955 5086.1774 5089.2192 5090.0513 5090.5455 5095.0639 5096.4848 5098.0432 5100.6211 5101.1299 5109.7331 5111.2781 5115.0448 5117.2923 5118.2023 5122.4995 5125.4895 5125.9502 5128.4897 5130.2338 5131.072 5133.1051 5134.746 5136.1210 5137.4733 5140.7736 5141.7827 5143.2673 5143.9165 5145.3083 5146.0557 5148.2115 5149.2069 5151.612 5154.2430 5158.6041 5161.5396 5162.2846 5163.4584 5165.7728 5166.6553 5168.9225 5170.2227 5173.6715 5174.7988 5175.3248 5175.9115 5176.2292 5176.4037 5176.961 5177.6228 5178.48 5180.7209 5182.5269 5183.0897 5183.6044 5183.9896 5184.4534 5184.7315 5186.4132 5187.3374 5187.7462 5190.872 5193.8256 5194.4576 5195.8136 5197.236 5198.7999 5199.1637 5202.0087 5203.8479 5205.1522 5207.8015 5209.7246 5211.2305 5213.3492 5216.5966 5216.8139 5218.5271 5219.1099 5220.7068 5220.9263 5221.271 5228.2246 5228.9951 5231.1597 5233.2254 5234.1069 5238.8137 5239.552 5240.1968 5247.6547 5250.8727 5253.4441 5254.4648 5258.3602 5260.1041 5261.472 5264.2332 5265.5514 5266.7103 5269.7927 5270.266 5272.6439 5272.927 5273.1317 5274.1188 5276.4089 5277.146 5277.5002 5280.0855 5280.3441 5281.0687 5281.6285 5286.887 5289.8974 5291.8163 5294.3971 5295.0886 5296.2787 5297.7431 5298.2824 5300.5234 5301.4043 5306.9864 5307.4655 5309.6093 5310.2665 5312.0018 5312.5288 5312.9045 5315.2278 5317.4944 5318.4268 5320.7699 5322.8988 5325.1438 5325.4317 5326.2774 5326.9756 5329.3745 5329.6979 5329.7559 5330.0804 5337.0154 5340.4982 5343.5812 5345.3117 5346.3778 5347.9714 5349.0054 5349.4608 5351.1265 5351.8365 5354.6016 5355.6365 5358.7059 5359.8269 5360.1501 5361.1556 5362.5751 5365.4705 5369.2819 5369.447 5370.7096 5372.7027 5373.4943 5374.8219 5375.3526 5375.7688 5376.1304 5376.7809 5378.8356 5379.1105 5381.3709 5382.9276 5384.0356 5386.6107 5388.0507 5392.5726 5393.5995 5393.9719 5394.7608 5397.516 5398.7015 5398.9219 5399.1745 5399.6218 5400.1455 5402.6048 5403.1993 5406.7553 5407.3439 5407.6535 5410.7687 5415.5226 5417.4858 5419.1285 5421.3517 5421.6628 5421.8359 5424.0079 5425.6783 5426.4075 5429.1048 5431.1120 5432.765 5433.2919 5433.7005 5434.1514 5435.1229 5435.7236 5435.8925 5437.3877 5438.1374 5439.9891 5440.6015 5441.2145 5442.2477 5443.1187 5443.6893 5447.1536 5448.2719 5449.4788 5451.652 5452.2187 5455.1524 5458.9676 5461.7358 5462.6129 5464.2055 5467.1704 5470.7591 5477.5522 5479.0751 5480.8907 5484.1467 5487.8414 5488.6287 5488.9254 5489.0885 5490.1194 5492.6435 5493.204 5494.3306 5495.8738 5496.137 5498.1841 5499.2554 5499.6478 5501.2814 5501.9439 5504.3018 5506.1128 5506.9196 5507.5385 5508.5585 5509.9938 5514.8731 5518.9893 5519.2353 5521.7532 5524.5824 5524.957 5527.2953 5528.2272 5529.0972 5530.0763 5530.6977 5535.971 5537.5563 5538.6087 5539.2618 5539.9106 5541.1466 5541.5815 5541.9357 5542.89 5545.0495 5545.8058 5546.1204 5547.1339 5548.1758 5551.3719 5552.6229 5555.5312 5556.1487 5557.0454 5557.9214 5558.3422 5558.702 5559.8912 5564.2011 5567.9986 5570.9268 5571.1913 5572.0951 5572.4649 5573.3535 5574.9153 5576.2045 5577.6845 5579.3583 5580.0771 5580.7547 5581.9668 5582.8665 5583.7621 5585.8472 5587.0263 5587.7351 5588.7506 5590.1127 5593.6129 5594.4604 5595.0635 5597.4756 5598.4794 5599.6548 5601.1216 5601.6032 5602.863 5604.5154 5606.3861 5606.733 5609.5735 5610.6809 5612.0679 5612.6174 5615.3195 5616.6908 5617.2897 5617.6417 5619.9755 5624.9129 5625.6782 5630.2969 5633.295 5635.8792 5639.7461 5641.5575 5641.7342 5645.5249 5645.6688 5645.8947 5646.4514 5647.7069 5648.6863 5648.9910 5650.7043 5652.902 5654.0234 5654.5185 5655.4897 5657.9255 5659.1272 5660.6594 5663.042 5664.621 5665.1799 5665.6283 5666.4185 5667.1281 5673.8358 5674.9864 5677.0529 5679.005 5681.9001 5685.1921 5687.3489 5690.6934 5691.6612 5696.3904 5698.2937 5700.9176 5702.6511 5705.6371 5707.1033 5708.6794 5715.7244 5717.1711 5719.6227 5720.1828 5724.2374 5724.4638 5725.3885 5727.7103 5729.9823 5736.0297 5739.5196 5741.1705 5741.829 5742.0838 5747.1931 5747.3849 5748.7412 5749.3883 5749.7862 5753.0265 5760.5508 5762.7941 5763.529 5767.7785 5768.1812 5771.7601 5772.1143 5773.9463 5777.4006 5779.8352 5789.6451 5792.4304 5796.0683 5797.3194 5798.4780 5800.8297 5802.0798 5804.1412 5805.7017 5807.6814 5808.6569 5812.9725 5815.4219 5818.4495 5819.6027 5822.7933 5826.2722 5829.1097 5829.8625 5830.8272 5832.3705 5834.2633 5838.9502 5839.8514 5840.6404 5842.05 5843.8069 5844.7909 5845.9188 5852.6806 5853.4745 5854.1207 5855.4986 5857.4491 5860.3103 5863.7184 5866.8119 5868.3745 5869.8507 5870.5526 5871.1828 5872.6028 5874.0383 5874.3513 5874.9865 5879.1265 5882.6242 5884.0331 5885.7016 5886.5314 5888.2622 5888.5841 5889.9531 5891.451 5894.6979 5895.2818 5896.3631 5899.8441 5902.6021 5904.1592 5905.1763 5905.5707 5911.2296 5912.0853 5913.3638 5914.3856 5914.6709 5916.7282 5918.9442 5925.4036 5927.1258 5928.813 5929.9343 5932.4274 5936.3861 5937.1619 5937.6634 5938.457 5938.8252 5940.5653 5942.3585 5943.4653 5944.6472 5946.2347 5948.7991 5954.5852 5955.5616 5956.2588 5960.7806 5964.4723 5968.3199 5969.7373 5971.6008 5972.4351 5973.6649 5975.0648 5976.2005 5981.8846 5982.096 5986.2665 5987.3016 5989.0447 5991.0071 5993.4941 5994.1287 5996.6297 5998.9987 6001.2033 6001.7339 6005.165 6005.7242 6007.0722 6010.1606 6011.5337 6013.6777 6015.4218 6016.3589 6018.9934 6020.2715 6021.0357 6021.4113 6023.2242 6025.15 6026.0448 6028.2713 6029.2257 6029.65 6030.445 6032.1274 6032.8726 6035.1923 6036.7622 6037.6975 6038.6805 6042.5898 6043.2233 6044.4327 6046.8977 6049.051 6050.9818 6052.7229 6053.3808 6055.5937 6058.1813 6059.3725 6061.5361 6064.7508 6065.7799 6067.0803 6069.0207 6070.3412 6073.1036 6077.1057 6077.8728 6078.4212 6079.2227 6081.2433 6085.3748 6085.8797 6087.2622 6088.0305 6090.4482 6097.1945 6098.1205 6098.8031 6099.0831 6099.9886 6101.7251 6105.6351 6107.5337 6112.8375 6113.4657 6114.5392 6114.9234 6116.1661 6119.6998 6120.5564 6121.4075 6122.2144 6123.3619 6123.8331 6124.0687 6124.4805 6125.7396 6127.4160 6129.5458 6133.8143 6137.926 6138.6465 6144.7581 6145.4411 6150.683 6151.9929 6154.0682 6154.5162 6155.2385 6155.581 6157.0878 6161.3534 6162.1700 6162.9699 6164.4796 6165.1232 6169.8221 6170.174 6172.2778 6173.0964 6178.4315 6180.705 6182.6217 6187.135 6188.1251 6189.1449 6191.9053 6193.8563 6198.2227 6200.4325 6201.1002 6203.4925 6205.8599 6207.2201 6207.7504 6208.6869 6215.9383 6220.0112 6221.3192 6224.5272 6226.3697 6232.9745 6234.1962 6234.8554 6239.7121 6240.9536 6243.1201 6245.0409 6245.6182 6246.1736 6248.4055 6250.4858 6257.4237 6258.6068 6261.4181 6264.7139 6265.6036 6266.1737 6268.2001 6271.5444 6274.1166 6276.1646 6277.2385 6278.6453 6279.166 6279.9776 6285.278 6286.0453 6287.2554 6289.4882 6291.1915 6291.6286 6292.0601 6292.8909 6293.2424 6296.8722 6298.9027 6300.9165 6301.4128 6303.2507 6304.2423 6307.6570 6309.16 6310.8101 6312.6222 6314.2693 6315.7750 6317.1824 6321.3004 6321.8199 6324.3978 6326.3669 6327.2778 6331.4137 6332.5118 6333.1459 6335.4060 6337.6201 6339.6684 6342.8595 6346.1209 6348.2321 6348.7375 6355.63 6355.9108 6357.0229 6357.6779 6358.6211 6359.1345 6359.6744 6362.2518 6364.8937 6369.1394 6369.5748 6371.9436 6376.9305 6378.7604 6379.6733 6381.3598 6381.7588 6384.7169 6387.3957 6388.8134 6389.39 6390.1289 6391.1774 6392.3685 6393.7972 6394.0498 6394.7289 6396.9499 6399.2065 6399.9498 6400.6961 6403.0128 6406.4462 6411.8991 6413.6145 6415.5374 6416.3071 6418.3703 6422.1075 6422.8969 6424.8127 6428.7733 6431.555 6436.6699 6437.7613 6438.3095 6438.916 6439.0715 6441.8994 6443.8598 6445.6407 6446.7712 6450.006 6450.9557 6452.0591 6455.2647 6457.2824 6460.4750 6461.0596 6467.6754 6471.2131 6483.0825 6485.3759 6487.4811 6488.8832 6490.7372 6493.1975 6493.7777 6493.9694 6495.2573 6496.0292 6497.4919 6499.1061 6499.6456 6500.6575 6501.3608 6501.9919 6503.5111 6506.9868 6508.3605 6509.0503 6512.3639 6513.8462 6522.0432 6522.4994 6531.3418 6534.6056 6536.1441 6537.1775 6537.6139 6538.112 6542.0498 6545.7186 6550.1877 6551.7055 6554.1603 6558.8756 6560.0574 6564.4445 6565.07 6569.6322 6576.1221 6577.2146 6577.6552 6580.2299 6583.906 6584.613 6585.6945 6588.5396 6591.4845 6593.4628 6593.9391 6596.1141 6598.6778 6599.4824 6600.7311 6602.762 6603.6209 6604.8534 6605.4165 6613.374 6617.058 6617.5154 6618.1668 6619.9458 6620.9665 6632.0837 6633.4579 6638.2207 6638.9119 6639.7403 6643.6976 6644.6635 6646.5407 6648.4954 6648.9586 6654.3675 6655.4892 6656.9386 6658.6774 6660.6761 6662.2686 6663.6966 6664.051 6666.3588 6668.8163 6673.5797 6674.6969 6677.2817 6678.7067 6680.0811 6683.3673 6684.2929 6687.5207 6692.7262 6694.0068 6694.4967 6696.14 6697.7123 6700.7499 6711.2521 6713.97 6717.3851 6719.1995 6722.8899 6726.3091 6727.4583 6728.1183 6728.7595 6729.9328 6732.6491 6733.7488 6738.1800 6741.9212 6742.8845 6746.1355 6751.4267 6752.8335 6753.6598 6756.4528 6757.1092 6758.2035 6766.6117 6770.1069 6772.1745 6773.0973 6778.3123 6779.3242 6780.1252 6780.4131 6787.7364 6788.8403 6791.2351 6795.7982 6798.4868 6800.4645 6807.319 6808.5311 6809.1 6809.3173 6809.5094 6809.6773 6810.5494 6812.4915 6812.7752 6815.6123 6823.5084 6824.6774 6827.2488 6829.0355 6829.3472 6832.8927 6834.9246 6839.2949 6846.479 6851.8842 6852.3545 6853.5234 6854.1093 6854.5128 6855.315 6855.6891 6861.2688 6862.8685 6863.5350 6866.3666 6866.7634 6868.4508 6871.2891 6874.753 6879.5824 6882.8114 6886.4082 6887.0881 6888.1742 6889.3032 6892.2502 6894.2303 6900.7632 6902.2105 6908.9905 6909.8491 6911.2264 6914.7127 6916.1289 6920.0394 6925.0094 6936.6528 6937.6642 6942.538 6943.6105 6945.4902 6946.2134 6951.4776 6952.9666 6954.656 6955.315 6960.25 6962.3117 6965.4307 6969.2976 6981.0831 6985.4718 6986.0298 6989.6553 6992.2126 6992.6966 6993.0371 6993.9873 6996.7573 6999.6238 7000.8036 7002.8829 7007.0961 7014.9689 7015.3172 7018.5675 7020.4841 7021.2832 7025.2251 7026.4616 7028.0228 7030.2514 7032.931 7036.2831 7038.7202 7045.797 7053.6196 7054.4177 7058.4895 7059.5253 7060.0417 7060.6538 7061.3942 7064.4515 7067.2181 7068.7358 7071.0942 7071.48 7072.3939 7074.2563 7075.3336 7077.369 7084.169 7086.7044 7088.8232 7089.3395 7100.5144 7107.4778 7109.1819 7109.8602 7112.9189 7113.9879 7114.3984 7124.5607 7125.82 7130.1846 7130.7236 7131.3586 7132.61 7140.4617 7142.3310 7147.0416 7148.5589 7150.2844 7153.5877 7156.9416 7158.8387 7159.947 7162.5569 7167.2028 7168.8952 7170.3607 7173.3725 7176.186 7176.7213 7188.532 7191.1328 7200.0454 7201.8091 7202.1910 7202.5166 7206.483 7206.9804 7208.0063 7212.6896 7218.0542 7219.1515 7220.9809 7225.1099 7229.938 7229.9386 7230.8623 7233.5365 7240.1848 7242.0919 7244.6965 7246.1277 7250.5895 7253.676 7255.3541 7256.986 7258.1770 7265.1724 7270.6636 7272.9359 7284.9033 7285.4437 7296.2659 7298.1434 7305.4043 7311.7159 7315.0661 7316.005 7323.2106 7324.8073 7326.1491 7328.285 7329.4916 7335.5772 7339.6035 7341.1515 7342.5769 7345.3996 7346.3428 7348.053 7350.814 7353.293 7358.3449 7361.3472 7370.8255 7372.1184 7376.8772 7380.4263 7383.9805 7385.5006 7392.9801 7393.4377 7402.2521 7410.9683 7411.7363 7412.3368 7417.7908 7418.5499 7422.3118 7423.8044 7425.2942 7428.9405 7430.2533 7435.3683 7436.297 7440.4933 7444.7489 7447.8488 7455.208 7458.7541 7461.8746 7462.991 7469.0566 7471.1641 7481.3545 7483.6256 7484.3267 7487.9738 7493.4276 7495.5641 7499.0024 7500.6556 7503.8691 7508.4787 7510.4082 7511.3498 7511.7902 7514.6518 7518.7824 7523.1347 7525.5079 7528.4892 7531.1437 7536.4365 7537.4287 7549.3138 7555.3254 7565.8515 7566.5296 7567.7417 7569.5115 7570.559 7571.0326 7573.3437 7589.3151 7598.2054 7607.8230 7618.3443 7620.0773 7625.7053 7627.1749 7628.8818 7630.3106 7632.1305 7635.106 7637.3852 7638.7805 7647.3794 7651.7451 7652.3202 7653.8284 7654.6998 7658.3246 7660.0234 7660.8903 7666.5679 7668.9608 7670.0575 7672.2552 7676.2195 7678.1267 7683.0189 7685.3075 7691.7706 7693.8016 7699.4034 7699.7794 7701.1081 7703.685 7704.8169 7710.2692 7712.405 7713.9378 7721.2023 7723.7611 7724.2072 7728.951 7731.7385 7742.5628 7743.9552 7761.7133 7762.732 7771.9468 7776.6727 7778.4922 7782.3165 7787.8002 7788.9342 7798.3579 7810.6245 7813.4761 7813.9729 7814.323 7816.1534 7817.7669 7822.3877 7834.4578 7835.6209 7836.4597 7840.2981 7841.7911 7842.2656 7847.5394 7848.4547 7861.91 7861.911 7864.0218 7865.9698 7868.1946 7872.6316 7875.4626 7877.0756 7886.283 7891.075 7893.6191 7896.4528 7899.6229 7900.32 7916.442 7924.9914 7925.7478 7937.7335 7941.7259 7948.1764 7954.5923 7956.974 7972.596 7974.1592 7978.9731 7981.2262 7987.9731 7991.3655 7993.6808 8000.0449 8006.1567 8014.7857 8017.5275 8022.2014 8024.253 8025.7271 8026.2135 8030.2004 8032.4313 8037.2183 8046.1169 8050.648 8053.3085 8054.5355 8062.6304 8075.6518 8085.219 8089.4852 8092.2373 8093.6238 8094.0559 8103.6931 8115.311 8119.1811 8122.7234 8129.4051 8138.4753 8139.9032 8143.138 8149.7021 8152.3818 8157.5434 8159.7277 8163.121 8166.4477 8169.7865 8177.1788 8186.9113 8190.8849 8194.3943 8198.442 8202.1469 8207.4785 8209.4461 8214.1472 8217.2264 8231.4069 8234.9381 8252.3936 8253.6156 8254.7422 8259.5110 8261.0143 8264.5225 8275.6266 8288.4143 8292.5272 8295.5497 8297.1765 8304.4244 8311.6306 8320.8554 8330.4494 8335.7067 8341.4770 8356.0627 8356.0693 8358.726 8360.4915 8366.0741 8367.3936 8369.3404 8379.2261 8384.724 8385.728 8387.1053 8388.5363 8398.178 8399.2578 8401.989 8403.7965 8408.2096 8411.9172 8416.7269 8417.9982 8421.2254 8424.6475 8432.4935 8445.4870 8446.5116 8450.6754 8456.3468 8464.2367 8465.6706 8471.8260 8478.358 8490.3065 8500.6797 8510.6240 8511.9091 8516.5542 8521.4422 8539.793 8542.0871 8543.7225 8544.5955 8554.9440 8556.325 8558.4464 8560.4348 8568.2088 8573.1205 8575.3305 8577.2768 8587.6342 8591.8387 8593.1089 8599.7553 8604.0163 8605.7762 8616.2219 8620.4602 8621.3225 8629.1415 8631.3565 8638.3623 8639.4416 8645.3087 8649.149 8655.876 8662.1372 8665.4855 8667.9442 8675.3983 8678.4083 8687.848 8701.1209 8703.7025 8704.8601 8707.3592 8709.2341 8710.4142 8712.8528 8713.6547 8719.629 8721.6595 8722.4577 8723.7177 8724.3761 8732.424 8734.0234 8739.7816 8748.0309 8749.1697 8751.2062 8758.2434 8760.4496 8761.6862 8766.7450 8771.8602 8772.8052 8775.5733 8782.7156 8784.5621 8790.3761 8792.0572 8798.172 8799.0875 8804.5894 8810.254 8816.1728 8817.7431 8829.6938 8841.1822 8842.0744 8849.9165 8852.7916 8854.9079 8868.8334 8875.2324 8889.1939 8892.9865 8899.2971 8905.6581 8907.0331 8910.8566 8920.2012 8928.0925 8941.6608 8949.1227 8955.8467 8957.9860 8962.1468 8967.6403 8969.8667 8985.2808 8987.4079 8990.8935 8995.1893 8997.8763 9008.4636 9009.8832 9012.5263 9016.5903 9017.5912 9031.8194 9035.9195 9037.8938 9038.6911 9040.1229 9045.3532 9048.2501 9053.4858 9056.0813 9062.5631 9063.96 9066.1115 9068.023 9069.5817 9072.2785 9075.3945 9090.8186 9094.8289 9107.2269 9111.5314 9122.9674 9132.2739 9134.6919 9140.5559 9159.0346 9165.8950 9170.822 9178.7795 9187.5654 9193.5928 9194.6385 9199.6841 9203.9617 9208.5811 9215.9197 9224.4992 9227.5119 9232.496 9233.8574 9239.3261 9250.5782 9260.3254 9263.693 9266.207 9266.9198 9267.6895 9270.1501 9276.2732 9289.5624 9291.5313 9294.974 9300.0131 9307.8956 9310.4440 9317.7296 9336.1509 9336.1624 9340.7053 9354.2198 9360.9879 9383.2722 9388.9308 9390.5852 9399.0891 9409.3488 9414.0886 9420.4985 9431.5996 9432.2827 9436.8127 9455.2023 9461.0279 9467.1954 9470.6819 9474.8793 9486.9256 9494.0442 9495.4979 9497.1891 9500.2999 9505.393 9507.6525 9508.4513 9535.6566 9548.0303 9561.2452 9577.3475 9582.8133 9595.3906 9613.6911 9629.5693 9632.6439 9657.7863 9664.6983 sptable-1.0.pre20180612/lib/linelists/vacidhenear.dat000066400000000000000000000023761331023215600221400ustar00rootroot00000000000000# units Angstroms 3188.6648 3465.1323 3521.5068 3546.5933 3560.5266 3719.2676 3730.3508 3738.9526 3781.9141 3851.6621 3889.7478 3929.7324 3965.8486 4027.3269 4045.5605 4073.3499 4132.8955 4159.7622 4260.5596 4278.7539 4301.6099 4427.2529 4472.7319 4511.9980 4546.3545 4580.6733 4659.2441 4714.4619 4766.2227 4807.4136 4881.2627 4923.3032 4966.5059 5017.0737 5189.1909 5222.7241 5402.0635 5497.3994 5574.0952 5608.2886 5652.2715 5749.8936 5766.0171 5854.1099 5877.2466 5946.4810 6031.6670 6076.0195 6097.8506 6144.7627 6165.2993 6219.0015 6268.2280 6306.5327 6336.1797 6384.7559 6404.0161 6508.3257 6534.6875 6600.7759 6680.0439 6718.8975 6754.6963 6873.1865 6931.3794 6967.3516 7034.3516 7067.1362 7109.4561 7127.7646 7149.0107 7175.9160 7208.9722 7247.1641 7274.9404 7283.3550 7313.7241 7355.3418 7374.1489 7386.0142 7440.9473 7490.9341 7505.9336 7516.7202 7537.8501 7546.1235 7637.2065 7672.1514 7725.9258 7893.2461 7950.3608 8008.3574 8014.2036 8016.9902 8055.5220 8084.6807 8105.9204 8112.2305 8117.5430 8266.7930 8302.6074 8379.9092 8426.9619 8497.6943 8523.7832 8608.1436 8622.8379 8637.0195 8656.7598 8670.3242 8764.1260 8783.0342 8784.5996 8786.1670 8856.2969 9077.9111 9125.4697 9151.1904 9197.2031 9227.0293 9294.1299 9356.7852 9427.9648 9536.7822 9660.4336 9787.1836 sptable-1.0.pre20180612/lib/linelists/vacthar.dat000066400000000000000000000735621331023215600213240ustar00rootroot00000000000000# units Angstroms 3185.8696 3189.1560 3205.2471 3206.0176 3211.2363 3212.1218 3212.9497 3214.5024 3221.2810 3228.7346 3229.9419 3235.9297 3236.7739 3239.8691 3242.0432 3243.3147 3244.6245 3245.3848 3246.6965 3250.7378 3252.8542 3254.8047 3257.2126 3258.3059 3259.0615 3263.6094 3272.9700 3274.8594 3276.0117 3277.1155 3281.3164 3282.6472 3283.5625 3286.6992 3287.5300 3288.7366 3292.6875 3293.4692 3294.6475 3298.9998 3300.6191 3305.1895 3306.2554 3308.1804 3310.3181 3314.6321 3315.7808 3322.4065 3323.0493 3328.1501 3330.6863 3331.4351 3334.0876 3335.5632 3337.1211 3338.8301 3341.6858 3347.5181 3349.7307 3355.1438 3359.5674 3361.9639 3365.6521 3366.3052 3367.4844 3372.7654 3373.7920 3374.4612 3375.9441 3377.4055 3379.5437 3381.8306 3384.0781 3386.5037 3387.4727 3389.5037 3393.0085 3397.7029 3398.4915 3399.5200 3402.6870 3403.6716 3406.5356 3409.7280 3411.0542 3413.9919 3416.8643 3418.4780 3422.1912 3423.6377 3424.9719 3428.0747 3429.9824 3432.7942 3434.9834 3435.7117 3436.9622 3437.7126 3438.2925 3440.3843 3443.5657 3447.5352 3452.6912 3453.6709 3455.0847 3458.0593 3463.8425 3465.1196 3466.0552 3466.7573 3469.2129 3470.3389 3470.9146 3472.2124 3472.9534 3477.7429 3479.2283 3480.1689 3481.5017 3483.7581 3487.5493 3490.5063 3492.5352 3494.5181 3496.7000 3497.8113 3499.0105 3499.6221 3502.8687 3506.4976 3510.7822 3512.1616 3515.3928 3519.4102 3521.0002 3522.9211 3524.5134 3527.6423 3529.4202 3529.9631 3530.3950 3531.5242 3532.4600 3534.1926 3536.3303 3537.0215 3540.5986 3543.5100 3545.0305 3548.3513 3549.5283 3550.6101 3552.4167 3555.3210 3556.0288 3557.9199 3560.5247 3562.0476 3562.7983 3566.0481 3570.8396 3573.4124 3577.6367 3582.6309 3583.3770 3584.1248 3585.1985 3589.4648 3592.4773 3593.8047 3599.1462 3602.0618 3605.7102 3607.5505 3609.4063 3610.4749 3613.4580 3613.8972 3616.1636 3616.8813 3619.3950 3620.2439 3623.8284 3633.8657 3635.6182 3636.9797 3643.2871 3644.5508 3650.2893 3650.7747 3653.2087 3655.5032 3657.7356 3659.8511 3660.6721 3661.4800 3662.6646 3664.2456 3668.0256 3669.1846 3672.5854 3673.3462 3673.5676 3674.8396 3675.9377 3676.1838 3676.6143 3676.8362 3677.0061 3677.1892 3679.3176 3679.5281 3680.1816 3680.5918 3680.7581 3681.1084 3681.4954 3681.6531 3682.9316 3683.5347 3685.9819 3688.7197 3689.0339 3689.8105 3691.6743 3692.4624 3692.6648 3693.6177 3695.2300 3696.3408 3697.0254 3698.0828 3698.7959 3699.1584 3700.9336 3702.0405 3704.2837 3704.8284 3705.9158 3707.8218 3712.3604 3712.6790 3716.6174 3716.9185 3717.6406 3718.2288 3718.8867 3719.2642 3720.4927 3720.8943 3721.3655 3722.2734 3722.8840 3724.7151 3726.4529 3727.7847 3728.6724 3728.9629 3730.3694 3731.4294 3731.8093 3734.0466 3734.7339 3738.5752 3738.9517 3741.9185 3742.2468 3743.9875 3744.5728 3745.8015 3746.7241 3747.0356 3748.6045 3749.3489 3750.1497 3751.5598 3752.0879 3753.6365 3754.3088 3754.5842 3755.0977 3755.6602 3756.2793 3757.3618 3758.7620 3759.5352 3759.7744 3764.5750 3766.3401 3767.1890 3767.5173 3768.9709 3771.1270 3771.5911 3772.4421 3773.7217 3774.8293 3777.3438 3778.4897 3782.3931 3784.0874 3784.3711 3785.6501 3785.8689 3786.3555 3786.6750 3787.4575 3787.9583 3790.2439 3791.4324 3791.8713 3793.4509 3793.8069 3795.2283 3796.4575 3799.1816 3800.4609 3801.2771 3802.5225 3804.1548 3805.0637 3806.9004 3808.9548 3809.2097 3810.5374 3810.9163 3814.1504 3817.2498 3819.7700 3821.8770 3822.5156 3823.2334 3823.9465 3824.1523 3824.5425 3826.2183 3826.7583 3827.4546 3827.8928 3829.4707 3831.1472 3831.8606 3832.7271 3834.1733 3835.7666 3836.7996 3837.6738 3838.9641 3840.7847 3841.8899 3842.6082 3843.0498 3843.9866 3845.8215 3846.4961 3847.9788 3851.6733 3853.2278 3855.6038 3857.4482 3860.9343 3862.4470 3863.1470 3863.5168 3864.5012 3868.0054 3868.6750 3869.3513 3869.6250 3870.7603 3872.7148 3873.2349 3873.8201 3874.2458 3874.5723 3874.9207 3875.3423 3875.9602 3876.4717 3876.7449 3878.5620 3879.7617 3880.3684 3880.5452 3880.7439 3881.2947 3881.4333 3882.5979 3883.2432 3885.6252 3885.9233 3886.3262 3886.8691 3888.0173 3891.0083 3892.5044 3892.8289 3893.0820 3894.7551 3895.7634 3896.5229 3899.5422 3899.9014 3900.1357 3901.6819 3901.9839 3902.7673 3904.2078 3904.5869 3905.1885 3906.2927 3908.2671 3908.6499 3909.8562 3910.0869 3910.2461 3911.8811 3912.6838 3913.0171 3914.7534 3915.2710 3916.4043 3916.9580 3917.5269 3918.3789 3919.1799 3919.6213 3920.1335 3922.8906 3923.3293 3924.9104 3925.5144 3926.2048 3926.8303 3927.1572 3928.9182 3929.7356 3930.4028 3930.7817 3931.4431 3932.3696 3933.3396 3934.0249 3934.3511 3934.7749 3935.3879 3937.4678 3937.7864 3938.1553 3939.0386 3939.7295 3943.1892 3945.3696 3946.6238 3946.9368 3947.2622 3948.4480 3948.6218 3949.1477 3950.0967 3951.5129 3951.9231 3952.6333 3953.8794 3956.2893 3957.0100 3957.8108 3960.4207 3961.3901 3963.5410 3964.5903 3965.1521 3965.8472 3968.0867 3968.5144 3969.5898 3970.1255 3970.7871 3973.2783 3973.7632 3974.3201 3975.6008 3975.8835 3976.5918 3977.5396 3980.1687 3980.4817 3981.2156 3981.8809 3982.2327 3982.9546 3983.2285 3984.0222 3986.0066 3987.2012 3988.3335 3989.7275 3989.9736 3991.6206 3992.8596 3993.1824 3993.4016 3994.4280 3995.6787 3995.9214 3997.1917 3997.7988 3998.9958 3999.5344 3999.8640 4000.0835 4001.4121 4002.1895 4003.0251 4004.2375 4004.4407 4004.7061 4006.2253 4006.4954 4007.0942 4007.5134 4008.1519 4009.3430 4010.1443 4012.7253 4012.8735 4013.6292 4014.9912 4015.6492 4015.8511 4019.2349 4020.2649 4021.4902 4022.2864 4022.8872 4023.2041 4024.4751 4025.9402 4026.7935 4028.1472 4030.9646 4031.4316 4031.9812 4035.3860 4036.0618 4036.6001 4037.1882 4037.7056 4038.7019 4039.3696 4039.9453 4041.0061 4042.0571 4042.3455 4044.0361 4044.2725 4044.5371 4045.5605 4046.0698 4046.3696 4047.1084 4048.6250 4049.4314 4050.6802 4051.0889 4052.0317 4052.6438 4054.0659 4054.6724 4055.4468 4055.6709 4059.0872 4060.3992 4064.5544 4065.4792 4066.7668 4068.5994 4070.3506 4070.4324 4070.6104 4071.3877 4072.9011 4073.1465 4073.5352 4073.7786 4075.0066 4075.7927 4076.6538 4077.0581 4077.7798 4078.0940 4079.4529 4080.0264 4080.7253 4081.5098 4081.8577 4082.5200 4082.7434 4083.2341 4083.5396 4084.6216 4085.7722 4086.1951 4086.4097 4086.5874 4087.6741 4088.4387 4089.8806 4090.2922 4092.5027 4094.5476 4094.8269 4095.9031 4097.2319 4098.9043 4099.8887 4100.0898 4101.4990 4103.7754 4105.0703 4105.5405 4105.9966 4107.0737 4108.2095 4109.0205 4109.5791 4110.4829 4111.9863 4113.9150 4116.9199 4117.8755 4119.6514 4125.2041 4128.5762 4129.2144 4129.8047 4130.6763 4132.1670 4132.8892 4133.9189 4135.2339 4135.4897 4136.6465 4139.2075 4141.4028 4141.5537 4142.8003 4143.6426 4143.8696 4144.8179 4148.7095 4149.3516 4149.8970 4152.3159 4155.8921 4157.6885 4159.7627 4160.8325 4162.9121 4163.6821 4164.8208 4165.1216 4165.3535 4165.4287 4166.9404 4169.2217 4169.8096 4171.7090 4172.5171 4173.8018 4174.6240 4175.6162 4179.2368 4179.5435 4180.0259 4181.1377 4183.0625 4184.1128 4185.3169 4186.3237 4188.3213 4191.8940 4192.2104 4193.5435 4194.1982 4196.1138 4199.5000 4201.8574 4208.7974 4209.5962 4210.0762 4210.3818 4212.1094 4214.2544 4214.5649 4216.0161 4216.8149 4217.2573 4217.5596 4218.6187 4219.8535 4221.2539 4221.9214 4222.3418 4222.8813 4223.8267 4224.6304 4225.4312 4225.8052 4227.4897 4227.9165 4228.1782 4228.5776 4229.3486 4229.6069 4230.3384 4230.6455 4231.0552 4231.6182 4232.0156 4234.4790 4236.6558 4237.2397 4238.4126 4240.9810 4241.7886 4242.2891 4243.1670 4243.9146 4244.2144 4244.4561 4245.1191 4248.7944 4249.1851 4249.5869 4250.6729 4250.8760 4251.5112 4251.9717 4252.3813 4254.7358 4255.0645 4256.4351 4257.4517 4258.6943 4259.0967 4259.7192 4260.5605 4261.5322 4262.1836 4262.4746 4262.6914 4263.1660 4263.8120 4264.5557 4265.3066 4265.5400 4267.4873 4267.7280 4268.7202 4270.2656 4271.1440 4273.3716 4274.0771 4274.5601 4275.2275 4276.3628 4278.0107 4278.5181 4278.7324 4279.5273 4280.2671 4281.7725 4282.2725 4282.6191 4283.2461 4284.1025 4284.7236 4286.1807 4286.3877 4287.4346 4288.2866 4289.8755 4290.8623 4291.6006 4293.0171 4293.5132 4294.9780 4295.9272 4296.7935 4297.0239 4298.5156 4301.0488 4301.3105 4301.8594 4303.7363 4305.2002 4306.1675 4307.5781 4308.3882 4309.3340 4309.8120 4310.4512 4313.0117 4314.2104 4314.5215 4314.8154 4315.5327 4316.4678 4317.1621 4317.3232 4317.5864 4319.0542 4319.6299 4320.3115 4321.3413 4326.4902 4327.0762 4328.9312 4329.9053 4330.1328 4331.6299 4332.0615 4332.4175 4333.2480 4333.5576 4334.7798 4335.1558 4336.5571 4338.2905 4338.4966 4339.3271 4341.0913 4342.1157 4343.6650 4344.6025 4344.8247 4345.1729 4345.5479 4346.3892 4347.6582 4348.8608 4349.2861 4349.8203 4350.2949 4351.4941 4352.4951 4353.4282 4353.8359 4354.0439 4354.6724 4355.7065 4356.5444 4356.7500 4357.2690 4358.8384 4359.5449 4360.5977 4361.3926 4361.9434 4362.5332 4363.2925 4363.6982 4365.0210 4365.2666 4367.1572 4368.1929 4368.6450 4369.0586 4371.1035 4371.9814 4372.5571 4373.7188 4375.3530 4376.0142 4377.1836 4377.7603 4379.4067 4380.8975 4381.5171 4382.6328 4383.0908 4386.2886 4386.9858 4389.3345 4390.2012 4392.3442 4392.6230 4394.2085 4394.9932 4397.3740 4397.7134 4398.2446 4399.1504 4400.6416 4401.3325 4401.6221 4402.2222 4402.8174 4403.4814 4403.8364 4404.1641 4410.1211 4411.1377 4414.6143 4414.8721 4415.7261 4416.0068 4417.4771 4418.0854 4419.6563 4421.0103 4421.4990 4422.7856 4423.2900 4424.9629 4426.0801 4427.2441 4429.7969 4430.8784 4431.0664 4431.4326 4432.2402 4433.4966 4434.2075 4434.7354 4435.0825 4436.0718 4436.2017 4436.9238 4437.2939 4437.5298 4438.2417 4439.9927 4440.3696 4440.7075 4441.1260 4441.8203 4442.1123 4442.8555 4444.3340 4444.9131 4446.2817 4447.1494 4448.4780 4449.0830 4450.1284 4450.7695 4452.0537 4453.8154 4455.3896 4456.0244 4457.9590 4458.4878 4459.2524 4459.9893 4460.7993 4461.8096 4462.7798 4464.9185 4465.0869 4465.3916 4466.5938 4467.2285 4469.5747 4470.4429 4470.7798 4472.2456 4476.0151 4476.4771 4479.6602 4479.8525 4480.8945 4481.5234 4481.8027 4483.0684 4484.6050 4488.1567 4488.7549 4489.5718 4489.9399 4490.9238 4491.9312 4492.2412 4493.3608 4494.5938 4495.9517 4496.2222 4496.4985 4497.5767 4497.8994 4499.1763 4499.8003 4500.2017 4500.9658 4501.2456 4501.8389 4504.1899 4505.8940 4506.4805 4507.7373 4509.0986 4511.7910 4511.9985 4513.7490 4514.4893 4514.9458 4515.3232 4515.8164 4516.3848 4516.8940 4518.3022 4520.5269 4522.4619 4523.0083 4523.5913 4524.0518 4525.3975 4526.1064 4526.7148 4527.2979 4528.9780 4529.2905 4529.6792 4530.2441 4531.5894 4531.8228 4532.9839 4533.5288 4534.3481 4534.5752 4535.3911 4535.6738 4536.5259 4536.7617 4537.2520 4538.9150 4542.2725 4543.3247 4544.6895 4545.1431 4545.7886 4546.3262 4547.1899 4547.9507 4548.5249 4549.0337 4549.6016 4552.7500 4553.4302 4555.1143 4557.0894 4557.6641 4559.6230 4560.3350 4560.5898 4562.6260 4563.3589 4563.7544 4564.9399 4565.6846 4566.1147 4568.5200 4569.4229 4569.8037 4572.2534 4572.5010 4572.8125 4574.9854 4575.3096 4575.5879 4576.5161 4576.7080 4578.0234 4578.8647 4580.6328 4581.1108 4582.4570 4585.6519 4589.7124 4590.4077 4590.5522 4591.1836 4593.9526 4594.2539 4594.9307 4596.7080 4597.3843 4597.5952 4600.0508 4600.9932 4602.1606 4604.1758 4604.4341 4605.9429 4607.1143 4607.7925 4608.6685 4609.2256 4609.9111 4610.8589 4611.3726 4611.9189 4613.1519 4613.8354 4614.8970 4616.3169 4616.6270 4617.1768 4617.7456 4619.2002 4620.7734 4621.5352 4621.7422 4622.4575 4623.4160 4624.4116 4625.1865 4625.4316 4625.6089 4625.9727 4626.3486 4626.5703 4626.7891 4628.5938 4629.4976 4629.7368 4633.0586 4635.0630 4638.5313 4639.4248 4639.9839 4640.8184 4641.0029 4641.3457 4644.8569 4646.0078 4647.9873 4648.5522 4649.2583 4651.2798 4651.5366 4652.8579 4653.2920 4655.3091 4656.5161 4657.4888 4657.8555 4659.2056 4660.8745 4661.6987 4663.8989 4664.5078 4666.2759 4667.3110 4667.8218 4668.1045 4669.4780 4670.9731 4671.2915 4673.7446 4674.9692 4676.6846 4677.3647 4678.2813 4679.5449 4681.5479 4681.9561 4683.5425 4684.0430 4684.6626 4687.5063 4687.8833 4691.6475 4691.9351 4692.3647 4692.6582 4692.9482 4693.1978 4695.4053 4696.3521 4696.7686 4699.5391 4701.4551 4702.0864 4703.6313 4704.6738 4705.3057 4706.6152 4707.0771 4707.5679 4708.3618 4709.6113 4712.1416 4713.3237 4713.7998 4714.1592 4715.9902 4716.7500 4718.7104 4720.7627 4721.3003 4721.7793 4722.1021 4722.5972 4722.9116 4723.4097 4724.7598 4725.1060 4726.0942 4728.1904 4729.1719 4729.4556 4730.4517 4731.2026 4731.9829 4732.2051 4733.3770 4735.3696 4737.2305 4739.2422 4741.0020 4741.8550 4742.2842 4742.6299 4743.4434 4743.8931 4745.0137 4746.6646 4748.9453 4749.9194 4750.5283 4751.2998 4753.7432 4758.5503 4762.4414 4763.8564 4765.6787 4766.1973 4766.9282 4767.9336 4769.3911 4774.5757 4776.6479 4777.1289 4778.1147 4778.5269 4779.6299 4781.0645 4782.0869 4782.6265 4782.8623 4784.0981 4784.9761 4785.1992 4785.3770 4787.8687 4788.4863 4790.0171 4790.7256 4791.7769 4792.8550 4793.4219 4794.5845 4795.2456 4797.2539 4797.5835 4801.5142 4802.3940 4804.0142 4805.2988 4806.9497 4807.3638 4809.4780 4810.9585 4813.2163 4813.7202 4814.3516 4815.0654 4815.2417 4818.3667 4819.9941 4820.5396 4821.8120 4822.2319 4822.9351 4823.2119 4823.3613 4824.2026 4824.5298 4824.9536 4825.3447 4825.9966 4828.0488 4830.0088 4831.1470 4832.4712 4832.9478 4833.7734 4834.1533 4835.0264 4838.7637 4839.7065 4841.8271 4842.2017 4843.5205 4845.2949 4845.5190 4846.1089 4846.2793 4846.5166 4848.6807 4849.1641 4849.7173 4850.4951 4851.2168 4851.7954 4854.2241 4854.9644 4857.6318 4858.8955 4859.4512 4859.6895 4862.5747 4863.0752 4864.5308 4866.8364 4867.2690 4868.9155 4869.6343 4869.8877 4870.2412 4872.6494 4873.3916 4874.2778 4875.7256 4877.8569 4878.3638 4879.1753 4879.3716 4880.0957 4880.7124 4881.2261 4882.5679 4883.2168 4883.6069 4887.3491 4888.2310 4889.6265 4890.4077 4890.8560 4891.2212 4891.8237 4892.4043 4893.0269 4894.1260 4894.8120 4896.3218 4900.1719 4900.6079 4903.4233 4904.1631 4906.1206 4908.5796 4911.2139 4911.5288 4911.9199 4912.1641 4912.5068 4912.7500 4913.4146 4913.9009 4914.8506 4915.4932 4916.7881 4919.1948 4921.1895 4922.9873 4924.3188 4925.7974 4926.8003 4927.3257 4927.6284 4928.6743 4929.1563 4930.4619 4931.3613 4934.5864 4935.2295 4935.7080 4938.1528 4939.2075 4939.8833 4940.4390 4940.6489 4941.0205 4942.7949 4943.2964 4944.4434 4945.0869 4946.8384 4948.0439 4948.9561 4951.6328 4952.0078 4954.0732 4954.9146 4958.6797 4959.4824 4960.1079 4962.7661 4963.1108 4963.4468 4964.5732 4966.4653 4967.1172 4968.4492 4969.0391 4970.1421 4971.4658 4973.5474 4976.4800 4977.3374 4977.9824 4978.7798 4981.5757 4982.1460 4982.3413 4983.8770 4984.9224 4986.7632 4987.3394 4988.5381 4988.9492 4990.7002 4993.5181 4994.0298 4995.1421 4995.4990 4999.2129 5001.3345 5001.6411 5003.4927 5004.9941 5005.5239 5009.5869 5010.7319 5011.3340 5011.8149 5012.8755 5014.5630 5016.1528 5017.2886 5017.9351 5018.5620 5018.9077 5019.4536 5021.2065 5021.9463 5022.6538 5023.4058 5023.5747 5025.1099 5030.0581 5030.4141 5031.0317 5031.0396 5031.2939 5036.7412 5038.1328 5039.7065 5040.6357 5040.9316 5042.0859 5042.5283 5043.0054 5044.9209 5046.1265 5046.6548 5047.7598 5048.0444 5048.4507 5050.3442 5051.2041 5052.1924 5053.2974 5056.7568 5059.3970 5061.2720 5063.0674 5063.4487 5064.3442 5064.9272 5065.4111 5066.0142 5066.3574 5067.5483 5068.1899 5068.5508 5069.3867 5070.7520 5076.0610 5076.8804 5080.5527 5081.3237 5082.8623 5086.1162 5086.4111 5086.7129 5087.5947 5090.6377 5091.4697 5091.9644 5096.4839 5097.9053 5099.4639 5102.0425 5102.5518 5111.1572 5112.7031 5116.4707 5118.7188 5119.6284 5123.9268 5126.9170 5127.3784 5129.9185 5131.6631 5132.5015 5134.5352 5136.1768 5137.5518 5138.9043 5142.2056 5143.2153 5144.7002 5145.3496 5146.7417 5147.4893 5149.6455 5150.6416 5153.0469 5155.6792 5160.0410 5162.9775 5163.7227 5164.8970 5167.2119 5168.0947 5170.3623 5171.6631 5175.1123 5176.2397 5176.7661 5177.3530 5177.6704 5177.8452 5178.4023 5179.0645 5179.9219 5182.1636 5183.9702 5184.5332 5185.0479 5185.4331 5185.8975 5186.1753 5187.8574 5188.7817 5189.1909 5192.3174 5195.2720 5195.9038 5197.2603 5198.6831 5200.2476 5200.6113 5203.4575 5205.2969 5206.6021 5209.2515 5211.1753 5212.6816 5214.8008 5218.0493 5218.2666 5219.9805 5220.5635 5222.1606 5222.3804 5222.7251 5229.6797 5230.4507 5232.6157 5234.6821 5235.5640 5240.2715 5241.0103 5241.6553 5249.1157 5252.3340 5254.9067 5255.9272 5259.8242 5261.5684 5262.9365 5265.6987 5267.0171 5268.1763 5271.2593 5271.7329 5274.1118 5274.3945 5274.5996 5275.5869 5277.8770 5278.6143 5278.9683 5281.5547 5281.8135 5282.5381 5283.0981 5288.3584 5291.3691 5293.2886 5295.8701 5296.5615 5297.7524 5299.2173 5299.7563 5301.9980 5302.8794 5308.4629 5308.9419 5311.0869 5311.7441 5313.4800 5314.0068 5314.3823 5316.7070 5318.9741 5319.9067 5322.2505 5324.3799 5326.6255 5326.9136 5327.7593 5328.4575 5330.8569 5331.1802 5331.2383 5331.5630 5338.5000 5341.9834 5345.0674 5346.7983 5347.8647 5349.4585 5350.4932 5350.9487 5352.6147 5353.3247 5356.0908 5357.1260 5360.1963 5361.3174 5361.6406 5362.6470 5364.0664 5366.9629 5370.7749 5370.9399 5372.2031 5374.1968 5374.9888 5376.3164 5376.8477 5377.2642 5377.6255 5378.2764 5380.3315 5380.6064 5382.8677 5384.4248 5385.5332 5388.1084 5389.5488 5394.0718 5395.0991 5395.4712 5396.2603 5399.0166 5400.2026 5400.4229 5400.6753 5401.1226 5401.6465 5404.1069 5404.7012 5408.2583 5408.8472 5409.1567 5412.2729 5417.0278 5418.9917 5420.6348 5422.8589 5423.1699 5423.3433 5425.5156 5427.1865 5427.9160 5430.6143 5432.6216 5434.2754 5434.8022 5435.2114 5435.6621 5436.6338 5437.2349 5437.4038 5438.8994 5439.6489 5441.5015 5442.1143 5442.7271 5443.7603 5444.6318 5445.2021 5448.6675 5449.7861 5450.9932 5453.1665 5453.7339 5456.6680 5460.4849 5463.2534 5464.1309 5465.7241 5468.6895 5472.2793 5479.0742 5480.5977 5482.4136 5485.6704 5489.3662 5490.1543 5490.4507 5490.6138 5491.6450 5494.1699 5494.7305 5495.8574 5497.4014 5497.6646 5499.7119 5500.7837 5501.1763 5502.8101 5503.4727 5505.8306 5507.6421 5508.4492 5509.0684 5510.0889 5511.5239 5516.4048 5520.5220 5520.7686 5523.2871 5526.1172 5526.4917 5528.8306 5529.7627 5530.6328 5531.6123 5532.2339 5537.5088 5539.0942 5540.1475 5540.8003 5541.4492 5542.6855 5543.1206 5543.4751 5544.4297 5546.5894 5547.3462 5547.6611 5548.6743 5549.7168 5552.9141 5554.1655 5557.0742 5557.6924 5558.5889 5559.4653 5559.8862 5560.2461 5561.4355 5565.7466 5569.5444 5572.4736 5572.7383 5573.6421 5574.0122 5574.9009 5576.4634 5577.7529 5579.2329 5580.9072 5581.6265 5582.3042 5583.5166 5584.4165 5585.3125 5587.3979 5588.5776 5589.2861 5590.3022 5591.6650 5595.1660 5596.0137 5596.6167 5599.0298 5600.0337 5601.2095 5602.6768 5603.1582 5604.4185 5606.0718 5607.9429 5608.2896 5611.1313 5612.2383 5613.6260 5614.1753 5616.8784 5618.2505 5618.8491 5619.2012 5621.5361 5626.4746 5627.2402 5631.8594 5634.8584 5637.4434 5641.3110 5643.1230 5643.3003 5647.0918 5647.2358 5647.4614 5648.0181 5649.2744 5650.2539 5650.5591 5652.2725 5654.4707 5655.5928 5656.0879 5657.0591 5659.4956 5660.6978 5662.2300 5664.6138 5666.1934 5666.7520 5667.2007 5667.9912 5668.7007 5675.4106 5676.5610 5678.6284 5680.5811 5683.4766 5686.7695 5688.9272 5692.2725 5693.2407 5697.9717 5699.8740 5702.4990 5704.2329 5707.2197 5708.6865 5710.2627 5717.3101 5718.7568 5721.2090 5721.7695 5725.8252 5726.0518 5726.9771 5729.2993 5731.5718 5737.6211 5741.1118 5742.7632 5743.4219 5743.6768 5748.7871 5748.9790 5750.3359 5750.9829 5751.3813 5754.6221 5762.1489 5764.3926 5765.1274 5769.3774 5769.7808 5773.3608 5773.7148 5775.5474 5779.0024 5781.4375 5791.2505 5794.0361 5797.6753 5798.9268 5800.0859 5802.4380 5803.6885 5805.7505 5807.3115 5809.2920 5810.2676 5814.5845 5817.0342 5820.0630 5821.2163 5824.4082 5827.8877 5830.7261 5831.4790 5832.4438 5833.9878 5835.8809 5840.5684 5841.4702 5842.2593 5843.6689 5845.4268 5846.4111 5847.5391 5854.3027 5855.0972 5855.7432 5857.1216 5859.0728 5861.9341 5865.3433 5868.4380 5870.0010 5871.4775 5872.1797 5872.8101 5874.2305 5875.6660 5875.9790 5876.6147 5880.7559 5884.2544 5885.6641 5887.3330 5888.1626 5889.8940 5890.2163 5891.5854 5893.0840 5896.3315 5896.9155 5897.9976 5901.4795 5904.2378 5905.7954 5906.8130 5907.2075 5912.8677 5913.7241 5915.0029 5916.0244 5916.3096 5918.3672 5920.5840 5927.0454 5928.7681 5930.4556 5931.5771 5934.0708 5938.0308 5938.8071 5939.3086 5940.1021 5940.4707 5942.2114 5944.0049 5945.1118 5946.2939 5947.8823 5950.4473 5956.2349 5957.2114 5957.9087 5962.4321 5966.1245 5969.9731 5971.3911 5973.2549 5974.0898 5975.3198 5976.7202 5977.8564 5983.5420 5983.7534 5987.9253 5988.9604 5990.7041 5992.6670 5995.1538 5995.7891 5998.2905 6000.6597 6002.8652 6003.3960 6006.8281 6007.3872 6008.7358 6011.8252 6013.1982 6015.3433 6017.0879 6018.0249 6020.6602 6021.9385 6022.7031 6023.0786 6024.8921 6026.8184 6027.7139 6029.9409 6030.8950 6031.3198 6032.1147 6033.7979 6034.5430 6036.8638 6038.4341 6039.3691 6040.3530 6044.2632 6044.8965 6046.1064 6048.5718 6050.7261 6052.6577 6054.3989 6055.0571 6057.2705 6059.8589 6061.0508 6063.2148 6066.4307 6067.4595 6068.7603 6070.7012 6072.0225 6074.7847 6078.7876 6079.5552 6080.1040 6080.9053 6082.9263 6087.0596 6087.5645 6088.9473 6089.7153 6092.1343 6098.8818 6099.8086 6100.4912 6100.7715 6101.6772 6103.4141 6107.3252 6109.2241 6114.5293 6115.1582 6116.2314 6116.6162 6117.8589 6121.3936 6122.2510 6123.1021 6123.9092 6125.0566 6125.5283 6125.7642 6126.1758 6127.4355 6129.1123 6131.2427 6135.5122 6139.6250 6140.3457 6146.4590 6147.1421 6152.3857 6153.6958 6155.7720 6156.2197 6156.9419 6157.2852 6158.7920 6163.0581 6163.8750 6164.6748 6166.1851 6166.8286 6171.5293 6171.8809 6173.9858 6174.8042 6180.1411 6182.4150 6184.3320 6188.8467 6189.8374 6190.8574 6193.6187 6195.5703 6199.9375 6202.1479 6202.8159 6205.2090 6207.5771 6208.9375 6209.4683 6210.4048 6217.6582 6221.7324 6223.0405 6226.2495 6228.0923 6234.6992 6235.9214 6236.5806 6241.4385 6242.6802 6244.8477 6246.7690 6247.3462 6247.9019 6250.1333 6252.2144 6259.1543 6260.3379 6263.1499 6266.4463 6267.3364 6267.9067 6269.9336 6273.2788 6275.8521 6277.9004 6278.9741 6280.3818 6280.9028 6281.7144 6287.0161 6287.7837 6288.9941 6291.2275 6292.9312 6293.3687 6293.8003 6294.6313 6294.9829 6298.6138 6300.6450 6302.6592 6303.1553 6304.9937 6305.9858 6309.4019 6310.9053 6312.5552 6314.3682 6316.0156 6317.5215 6318.9297 6323.0483 6323.5684 6326.1470 6328.1162 6329.0278 6333.1646 6334.2632 6334.8975 6337.1577 6339.3730 6341.4209 6344.6128 6347.8755 6349.9868 6350.4922 6357.3867 6357.6675 6358.7803 6359.4351 6360.3789 6360.8921 6361.4326 6364.0107 6366.6533 6370.8999 6371.3354 6373.7051 6378.6934 6380.5234 6381.4370 6383.1240 6383.5229 6386.4819 6389.1611 6390.5796 6391.1563 6391.8955 6392.9438 6394.1357 6395.5649 6395.8174 6396.4966 6398.7183 6400.9756 6401.7188 6402.4658 6404.7827 6408.2173 6413.6714 6415.3872 6417.3110 6418.0811 6420.1445 6423.8828 6424.6724 6426.5884 6430.5508 6433.3330 6438.4487 6439.5400 6440.0889 6440.6953 6440.8506 6443.6797 6445.6406 6447.4219 6448.5522 6451.7881 6452.7383 6453.8418 6457.0483 6459.0664 6462.2603 6462.8447 6469.4624 6473.0010 6484.8740 6487.1680 6489.2734 6490.6763 6492.5308 6494.9917 6495.5723 6495.7637 6497.0522 6497.8242 6499.2871 6500.9019 6501.4414 6502.4541 6503.1572 6503.7886 6505.3081 6508.7847 6510.1587 6510.8491 6514.1631 6515.6460 6523.8452 6524.3018 6533.1465 6536.4111 6537.9502 6538.9844 6539.4204 6539.9185 6543.8569 6547.5269 6551.9966 6553.5151 6555.9707 6560.6870 6561.8696 6566.2573 6566.8833 6571.4468 6577.9385 6579.0317 6579.4722 6582.0474 6585.7241 6586.4316 6587.5132 6590.3594 6593.3052 6595.2842 6595.7603 6597.9360 6600.5005 6601.3052 6602.5542 6604.5859 6605.4448 6606.6777 6607.2412 6615.2007 6618.8857 6619.3433 6619.9951 6621.7744 6622.7949 6633.9155 6635.2900 6640.0542 6640.7456 6641.5742 6645.5327 6646.4990 6648.3755 6650.3311 6650.7944 6656.2051 6657.3267 6658.7764 6660.5156 6662.5151 6664.1079 6665.5366 6665.8906 6668.1992 6670.6577 6675.4219 6676.5396 6679.1255 6680.5503 6681.9253 6685.2124 6686.1382 6689.3667 6694.5737 6695.8550 6696.3447 6697.9888 6699.5615 6702.6001 6713.1050 6715.8237 6719.2397 6721.0547 6724.7461 6728.1660 6729.3159 6729.9756 6730.6172 6731.7905 6734.5078 6735.6079 6740.0405 6743.7827 6744.7461 6747.9980 6753.2905 6754.6978 6755.5244 6758.3179 6758.9751 6760.0688 6768.4790 6771.9751 6774.0435 6774.9663 6780.1831 6781.1953 6781.9961 6782.2842 6789.6094 6790.7139 6793.1089 6797.6738 6800.3628 6802.3413 6809.1973 6810.4102 6810.9790 6811.1968 6811.3887 6811.5566 6812.4287 6814.3716 6814.6553 6817.4932 6825.3916 6826.5605 6829.1333 6830.9204 6831.2319 6834.7783 6836.8110 6841.1821 6848.3687 6853.7754 6854.2456 6855.4150 6856.0010 6856.4043 6857.2070 6857.5811 6863.1626 6864.7627 6865.4292 6868.2617 6868.6582 6870.3462 6873.1855 6876.6504 6881.4805 6884.7100 6888.3076 6888.9878 6890.0742 6891.2036 6894.1514 6896.1323 6902.6670 6904.1143 6910.8965 6911.7554 6913.1328 6916.6201 6918.0366 6921.9482 6926.9194 6938.5664 6939.5776 6944.4531 6945.5259 6947.4063 6948.1294 6953.3950 6954.8848 6956.5742 6957.2334 6962.1699 6964.2319 6967.3521 6971.2197 6983.0088 6987.3984 6987.9570 6991.5835 6994.1411 6994.6255 6994.9663 6995.9165 6998.6875 7001.5547 7002.7349 7004.8140 7009.0283 7016.9028 7017.2520 7020.5024 7022.4194 7023.2192 7027.1621 7028.3989 7029.9609 7032.1899 7034.8701 7038.2231 7040.6611 7047.7397 7055.5645 7056.3628 7060.4355 7061.4717 7061.9883 7062.6006 7063.3413 7066.3994 7069.1670 7070.6851 7073.0439 7073.4297 7074.3442 7076.2070 7077.2842 7079.3208 7086.1221 7088.6587 7090.7778 7091.2939 7102.4722 7109.4380 7111.1426 7111.8208 7114.8804 7115.9492 7116.3599 7126.5249 7127.7847 7132.1504 7132.6899 7133.3247 7134.5767 7142.4297 7144.2998 7149.0112 7150.5293 7152.2549 7155.5596 7158.9141 7160.8120 7161.9199 7164.5313 7169.1782 7170.8711 7172.3369 7175.3496 7178.1641 7178.6992 7190.5137 7193.1147 7202.0298 7203.7939 7204.1758 7204.5015 7208.4692 7208.9668 7209.9932 7214.6772 7220.0435 7221.1411 7222.9712 7227.1011 7231.9307 7231.9312 7232.8550 7235.5303 7242.1802 7244.0879 7246.6929 7248.1250 7252.5879 7255.6748 7257.3535 7258.9858 7260.1772 7267.1748 7272.6675 7274.9404 7286.9102 7287.4512 7298.2764 7300.1543 7307.4170 7313.7300 7317.0811 7318.0205 7325.2280 7326.8252 7328.1670 7330.3042 7331.5107 7337.5981 7341.6255 7343.1738 7344.5996 7347.4229 7348.3667 7350.0776 7352.8389 7355.3188 7360.3721 7363.3750 7372.8564 7374.1489 7378.9097 7382.4595 7386.0146 7387.5352 7395.0166 7395.4741 7404.2910 7413.0098 7413.7783 7414.3789 7419.8345 7420.5938 7424.3569 7425.8496 7427.3394 7430.9863 7432.2993 7437.4155 7438.3447 7442.5420 7446.7993 7449.8994 7457.2607 7460.8076 7463.9292 7465.0464 7471.1133 7473.2212 7483.4146 7485.6865 7486.3877 7490.0356 7495.4912 7497.6279 7501.0674 7502.7212 7505.9355 7510.5464 7512.4766 7513.4180 7513.8584 7516.7212 7520.8525 7525.2065 7527.5801 7530.5625 7533.2173 7538.5117 7539.5044 7551.3931 7557.4058 7567.9351 7568.6133 7569.8257 7571.5962 7572.6440 7573.1177 7575.4292 7591.4038 7600.2969 7609.9175 7620.4414 7622.1748 7627.8042 7629.2744 7630.9819 7632.4106 7634.2310 7637.2075 7639.4873 7640.8828 7649.4844 7653.8511 7654.4268 7655.9355 7656.8066 7660.4326 7662.1318 7662.9990 7668.6782 7671.0718 7672.1689 7674.3672 7678.3325 7680.2397 7685.1338 7687.4229 7693.8877 7695.9194 7701.5225 7701.8989 7703.2275 7705.8057 7706.9375 7712.3911 7714.5278 7716.0615 7723.3276 7725.8872 7726.3330 7731.0786 7733.8667 7744.6943 7746.0864 7763.8491 7764.8677 7774.0850 7778.8125 7780.6323 7784.4575 7789.9429 7791.0771 7800.5034 7812.7734 7815.6260 7816.1226 7816.4731 7818.3037 7819.9180 7824.5400 7836.6138 7837.7769 7838.6157 7842.4556 7843.9487 7844.4233 7849.6987 7850.6138 7864.0732 7864.0742 7866.1855 7868.1338 7870.3599 7874.7979 7877.6294 7879.2432 7888.4531 7893.2461 7895.7910 7898.6250 7901.7964 7902.4937 7918.6201 7927.1719 7927.9282 7939.9165 7943.9102 7950.3623 7956.7798 7959.1626 7974.7886 7976.3521 7981.1675 7983.4209 7990.1699 7993.5635 7995.8789 8002.2451 8008.3584 8016.9897 8019.7324 8024.4072 8026.4600 8027.9341 8028.4209 8032.4087 8034.6401 8039.4287 8048.3296 8052.8618 8055.5234 8056.7510 8064.8477 8077.8726 8087.4429 8091.7100 8094.4629 8095.8501 8096.2817 8105.9214 8117.5430 8121.4141 8124.9575 8131.6411 8140.7124 8142.1411 8145.3765 8151.9424 8154.6230 8159.7861 8161.9707 8165.3652 8168.6929 8172.0322 8179.4268 8189.1616 8193.1367 8196.6475 8200.6963 8204.4014 8209.7344 8211.7031 8216.4053 8219.4854 8233.6699 8237.2021 8254.6621 8255.8838 8257.0117 8261.7813 8263.2852 8266.7939 8277.9023 8290.6924 8294.8066 8297.8301 8299.4580 8306.7080 8313.9160 8323.1426 8332.7393 8337.9980 8343.7695 8358.3584 8358.3652 8361.0225 8362.7881 8368.3730 8369.6924 8371.6406 8381.5293 8387.0273 8388.0322 8389.4102 8390.8408 8400.4854 8401.5654 8404.2979 8406.1064 8410.5205 8414.2285 8419.0391 8420.3115 8423.5391 8426.9619 8434.8105 8447.8076 8448.8330 8452.9980 8458.6699 8466.5625 8467.9971 8474.1543 8480.6885 8492.6396 8503.0156 8512.9629 8514.2480 8518.8945 8523.7842 8542.1396 8544.4346 8546.0703 8546.9434 8557.2949 8558.6768 8560.7979 8562.7871 8570.5635 8575.4756 8577.6865 8579.6318 8589.9922 8594.1982 8595.4697 8602.1172 8606.3799 8608.1396 8618.5879 8622.8281 8623.6904 8631.5117 8633.7275 8640.7354 8641.8145 8647.6826 8651.5254 8658.2529 8664.5156 8667.8652 8670.3252 8677.7813 8680.7920 8690.2334 8703.5107 8706.0928 8707.2510 8709.7510 8711.6260 8712.8066 8715.2451 8716.0479 8722.0234 8724.0547 8724.8535 8726.1143 8726.7725 8734.8223 8736.4219 8742.1816 8750.4336 8751.5732 8753.6094 8760.6484 8762.8555 8764.0928 8769.1533 8774.2695 8775.2148 8777.9834 8785.1279 8786.9756 8792.7900 8794.4727 8800.5879 8801.5049 8807.0078 8812.6738 8818.5947 8820.1650 8832.1172 8843.6104 8844.5020 8852.3457 8855.2227 8857.3389 8871.2676 8877.6689 8891.6348 8895.4277 8901.7402 8908.1035 8909.4785 8913.3027 8922.6504 8930.5439 8944.1162 8951.5801 8958.3057 8960.4453 8964.6074 8970.1025 8972.3301 8987.7480 8989.8760 8993.3623 8997.6592 9000.3467 9010.9375 9012.3564 9015.0010 9019.0654 9020.0664 9034.2988 9038.4004 9040.3750 9041.1729 9042.6045 9047.8369 9050.7344 9055.9707 9058.5674 9065.0518 9066.4482 9068.6006 9070.5127 9072.0723 9074.7686 9077.8857 9093.3145 9097.3262 9109.7256 9114.0313 9125.4717 9134.7793 9137.1992 9143.0645 9161.5479 9168.4102 9173.3389 9181.2979 9190.0869 9196.1152 9197.1621 9202.2090 9206.4873 9211.1084 9218.4492 9227.0303 9230.0439 9235.0293 9236.3916 9241.8613 9253.1162 9262.8662 9266.2354 9268.7500 9269.4629 9270.2324 9272.6943 9278.8193 9292.1113 9294.0811 9297.5244 9302.5645 9310.4502 9312.9990 9320.2861 9338.7139 9338.7246 9343.2686 9356.7871 9363.5566 9385.8477 9391.5068 9393.1621 9401.6680 9411.9297 9416.6709 9423.0820 9434.1865 9434.8691 9439.4014 9457.7959 9463.6230 9469.7920 9473.2793 9477.4775 9489.5283 9496.6484 9498.1025 9499.7949 9502.9053 9508.0000 9510.2607 9511.0596 9538.2715 9550.6494 9563.8682 9579.9746 9585.4424 9598.0225 9616.3281 9632.2109 9635.2861 9660.4355 9667.3496 sptable-1.0.pre20180612/lib/linelists/vacthorium.dat000066400000000000000000000735621331023215600220550ustar00rootroot00000000000000# units Angstroms 3185.8696 3189.1560 3205.2471 3206.0176 3211.2363 3212.1218 3212.9497 3214.5024 3221.2810 3228.7346 3229.9419 3235.9297 3236.7739 3239.8691 3242.0432 3243.3147 3244.6245 3245.3848 3246.6965 3250.7378 3252.8542 3254.8047 3257.2126 3258.3059 3259.0615 3263.6094 3272.9700 3274.8594 3276.0117 3277.1155 3281.3164 3282.6472 3283.5625 3286.6992 3287.5300 3288.7366 3292.6875 3293.4692 3294.6475 3298.9998 3300.6191 3305.1895 3306.2554 3308.1804 3310.3181 3314.6321 3315.7808 3322.4065 3323.0493 3328.1501 3330.6863 3331.4351 3334.0876 3335.5632 3337.1211 3338.8301 3341.6858 3347.5181 3349.7307 3355.1438 3359.5674 3361.9639 3365.6521 3366.3052 3367.4844 3372.7654 3373.7920 3374.4612 3375.9441 3377.4055 3379.5437 3381.8306 3384.0781 3386.5037 3387.4727 3389.5037 3393.0085 3397.7029 3398.4915 3399.5200 3402.6870 3403.6716 3406.5356 3409.7280 3411.0542 3413.9919 3416.8643 3418.4780 3422.1912 3423.6377 3424.9719 3428.0747 3429.9824 3432.7942 3434.9834 3435.7117 3436.9622 3437.7126 3438.2925 3440.3843 3443.5657 3447.5352 3452.6912 3453.6709 3455.0847 3458.0593 3463.8425 3465.1196 3466.0552 3466.7573 3469.2129 3470.3389 3470.9146 3472.2124 3472.9534 3477.7429 3479.2283 3480.1689 3481.5017 3483.7581 3487.5493 3490.5063 3492.5352 3494.5181 3496.7000 3497.8113 3499.0105 3499.6221 3502.8687 3506.4976 3510.7822 3512.1616 3515.3928 3519.4102 3521.0002 3522.9211 3524.5134 3527.6423 3529.4202 3529.9631 3530.3950 3531.5242 3532.4600 3534.1926 3536.3303 3537.0215 3540.5986 3543.5100 3545.0305 3548.3513 3549.5283 3550.6101 3552.4167 3555.3210 3556.0288 3557.9199 3560.5247 3562.0476 3562.7983 3566.0481 3570.8396 3573.4124 3577.6367 3582.6309 3583.3770 3584.1248 3585.1985 3589.4648 3592.4773 3593.8047 3599.1462 3602.0618 3605.7102 3607.5505 3609.4063 3610.4749 3613.4580 3613.8972 3616.1636 3616.8813 3619.3950 3620.2439 3623.8284 3633.8657 3635.6182 3636.9797 3643.2871 3644.5508 3650.2893 3650.7747 3653.2087 3655.5032 3657.7356 3659.8511 3660.6721 3661.4800 3662.6646 3664.2456 3668.0256 3669.1846 3672.5854 3673.3462 3673.5676 3674.8396 3675.9377 3676.1838 3676.6143 3676.8362 3677.0061 3677.1892 3679.3176 3679.5281 3680.1816 3680.5918 3680.7581 3681.1084 3681.4954 3681.6531 3682.9316 3683.5347 3685.9819 3688.7197 3689.0339 3689.8105 3691.6743 3692.4624 3692.6648 3693.6177 3695.2300 3696.3408 3697.0254 3698.0828 3698.7959 3699.1584 3700.9336 3702.0405 3704.2837 3704.8284 3705.9158 3707.8218 3712.3604 3712.6790 3716.6174 3716.9185 3717.6406 3718.2288 3718.8867 3719.2642 3720.4927 3720.8943 3721.3655 3722.2734 3722.8840 3724.7151 3726.4529 3727.7847 3728.6724 3728.9629 3730.3694 3731.4294 3731.8093 3734.0466 3734.7339 3738.5752 3738.9517 3741.9185 3742.2468 3743.9875 3744.5728 3745.8015 3746.7241 3747.0356 3748.6045 3749.3489 3750.1497 3751.5598 3752.0879 3753.6365 3754.3088 3754.5842 3755.0977 3755.6602 3756.2793 3757.3618 3758.7620 3759.5352 3759.7744 3764.5750 3766.3401 3767.1890 3767.5173 3768.9709 3771.1270 3771.5911 3772.4421 3773.7217 3774.8293 3777.3438 3778.4897 3782.3931 3784.0874 3784.3711 3785.6501 3785.8689 3786.3555 3786.6750 3787.4575 3787.9583 3790.2439 3791.4324 3791.8713 3793.4509 3793.8069 3795.2283 3796.4575 3799.1816 3800.4609 3801.2771 3802.5225 3804.1548 3805.0637 3806.9004 3808.9548 3809.2097 3810.5374 3810.9163 3814.1504 3817.2498 3819.7700 3821.8770 3822.5156 3823.2334 3823.9465 3824.1523 3824.5425 3826.2183 3826.7583 3827.4546 3827.8928 3829.4707 3831.1472 3831.8606 3832.7271 3834.1733 3835.7666 3836.7996 3837.6738 3838.9641 3840.7847 3841.8899 3842.6082 3843.0498 3843.9866 3845.8215 3846.4961 3847.9788 3851.6733 3853.2278 3855.6038 3857.4482 3860.9343 3862.4470 3863.1470 3863.5168 3864.5012 3868.0054 3868.6750 3869.3513 3869.6250 3870.7603 3872.7148 3873.2349 3873.8201 3874.2458 3874.5723 3874.9207 3875.3423 3875.9602 3876.4717 3876.7449 3878.5620 3879.7617 3880.3684 3880.5452 3880.7439 3881.2947 3881.4333 3882.5979 3883.2432 3885.6252 3885.9233 3886.3262 3886.8691 3888.0173 3891.0083 3892.5044 3892.8289 3893.0820 3894.7551 3895.7634 3896.5229 3899.5422 3899.9014 3900.1357 3901.6819 3901.9839 3902.7673 3904.2078 3904.5869 3905.1885 3906.2927 3908.2671 3908.6499 3909.8562 3910.0869 3910.2461 3911.8811 3912.6838 3913.0171 3914.7534 3915.2710 3916.4043 3916.9580 3917.5269 3918.3789 3919.1799 3919.6213 3920.1335 3922.8906 3923.3293 3924.9104 3925.5144 3926.2048 3926.8303 3927.1572 3928.9182 3929.7356 3930.4028 3930.7817 3931.4431 3932.3696 3933.3396 3934.0249 3934.3511 3934.7749 3935.3879 3937.4678 3937.7864 3938.1553 3939.0386 3939.7295 3943.1892 3945.3696 3946.6238 3946.9368 3947.2622 3948.4480 3948.6218 3949.1477 3950.0967 3951.5129 3951.9231 3952.6333 3953.8794 3956.2893 3957.0100 3957.8108 3960.4207 3961.3901 3963.5410 3964.5903 3965.1521 3965.8472 3968.0867 3968.5144 3969.5898 3970.1255 3970.7871 3973.2783 3973.7632 3974.3201 3975.6008 3975.8835 3976.5918 3977.5396 3980.1687 3980.4817 3981.2156 3981.8809 3982.2327 3982.9546 3983.2285 3984.0222 3986.0066 3987.2012 3988.3335 3989.7275 3989.9736 3991.6206 3992.8596 3993.1824 3993.4016 3994.4280 3995.6787 3995.9214 3997.1917 3997.7988 3998.9958 3999.5344 3999.8640 4000.0835 4001.4121 4002.1895 4003.0251 4004.2375 4004.4407 4004.7061 4006.2253 4006.4954 4007.0942 4007.5134 4008.1519 4009.3430 4010.1443 4012.7253 4012.8735 4013.6292 4014.9912 4015.6492 4015.8511 4019.2349 4020.2649 4021.4902 4022.2864 4022.8872 4023.2041 4024.4751 4025.9402 4026.7935 4028.1472 4030.9646 4031.4316 4031.9812 4035.3860 4036.0618 4036.6001 4037.1882 4037.7056 4038.7019 4039.3696 4039.9453 4041.0061 4042.0571 4042.3455 4044.0361 4044.2725 4044.5371 4045.5605 4046.0698 4046.3696 4047.1084 4048.6250 4049.4314 4050.6802 4051.0889 4052.0317 4052.6438 4054.0659 4054.6724 4055.4468 4055.6709 4059.0872 4060.3992 4064.5544 4065.4792 4066.7668 4068.5994 4070.3506 4070.4324 4070.6104 4071.3877 4072.9011 4073.1465 4073.5352 4073.7786 4075.0066 4075.7927 4076.6538 4077.0581 4077.7798 4078.0940 4079.4529 4080.0264 4080.7253 4081.5098 4081.8577 4082.5200 4082.7434 4083.2341 4083.5396 4084.6216 4085.7722 4086.1951 4086.4097 4086.5874 4087.6741 4088.4387 4089.8806 4090.2922 4092.5027 4094.5476 4094.8269 4095.9031 4097.2319 4098.9043 4099.8887 4100.0898 4101.4990 4103.7754 4105.0703 4105.5405 4105.9966 4107.0737 4108.2095 4109.0205 4109.5791 4110.4829 4111.9863 4113.9150 4116.9199 4117.8755 4119.6514 4125.2041 4128.5762 4129.2144 4129.8047 4130.6763 4132.1670 4132.8892 4133.9189 4135.2339 4135.4897 4136.6465 4139.2075 4141.4028 4141.5537 4142.8003 4143.6426 4143.8696 4144.8179 4148.7095 4149.3516 4149.8970 4152.3159 4155.8921 4157.6885 4159.7627 4160.8325 4162.9121 4163.6821 4164.8208 4165.1216 4165.3535 4165.4287 4166.9404 4169.2217 4169.8096 4171.7090 4172.5171 4173.8018 4174.6240 4175.6162 4179.2368 4179.5435 4180.0259 4181.1377 4183.0625 4184.1128 4185.3169 4186.3237 4188.3213 4191.8940 4192.2104 4193.5435 4194.1982 4196.1138 4199.5000 4201.8574 4208.7974 4209.5962 4210.0762 4210.3818 4212.1094 4214.2544 4214.5649 4216.0161 4216.8149 4217.2573 4217.5596 4218.6187 4219.8535 4221.2539 4221.9214 4222.3418 4222.8813 4223.8267 4224.6304 4225.4312 4225.8052 4227.4897 4227.9165 4228.1782 4228.5776 4229.3486 4229.6069 4230.3384 4230.6455 4231.0552 4231.6182 4232.0156 4234.4790 4236.6558 4237.2397 4238.4126 4240.9810 4241.7886 4242.2891 4243.1670 4243.9146 4244.2144 4244.4561 4245.1191 4248.7944 4249.1851 4249.5869 4250.6729 4250.8760 4251.5112 4251.9717 4252.3813 4254.7358 4255.0645 4256.4351 4257.4517 4258.6943 4259.0967 4259.7192 4260.5605 4261.5322 4262.1836 4262.4746 4262.6914 4263.1660 4263.8120 4264.5557 4265.3066 4265.5400 4267.4873 4267.7280 4268.7202 4270.2656 4271.1440 4273.3716 4274.0771 4274.5601 4275.2275 4276.3628 4278.0107 4278.5181 4278.7324 4279.5273 4280.2671 4281.7725 4282.2725 4282.6191 4283.2461 4284.1025 4284.7236 4286.1807 4286.3877 4287.4346 4288.2866 4289.8755 4290.8623 4291.6006 4293.0171 4293.5132 4294.9780 4295.9272 4296.7935 4297.0239 4298.5156 4301.0488 4301.3105 4301.8594 4303.7363 4305.2002 4306.1675 4307.5781 4308.3882 4309.3340 4309.8120 4310.4512 4313.0117 4314.2104 4314.5215 4314.8154 4315.5327 4316.4678 4317.1621 4317.3232 4317.5864 4319.0542 4319.6299 4320.3115 4321.3413 4326.4902 4327.0762 4328.9312 4329.9053 4330.1328 4331.6299 4332.0615 4332.4175 4333.2480 4333.5576 4334.7798 4335.1558 4336.5571 4338.2905 4338.4966 4339.3271 4341.0913 4342.1157 4343.6650 4344.6025 4344.8247 4345.1729 4345.5479 4346.3892 4347.6582 4348.8608 4349.2861 4349.8203 4350.2949 4351.4941 4352.4951 4353.4282 4353.8359 4354.0439 4354.6724 4355.7065 4356.5444 4356.7500 4357.2690 4358.8384 4359.5449 4360.5977 4361.3926 4361.9434 4362.5332 4363.2925 4363.6982 4365.0210 4365.2666 4367.1572 4368.1929 4368.6450 4369.0586 4371.1035 4371.9814 4372.5571 4373.7188 4375.3530 4376.0142 4377.1836 4377.7603 4379.4067 4380.8975 4381.5171 4382.6328 4383.0908 4386.2886 4386.9858 4389.3345 4390.2012 4392.3442 4392.6230 4394.2085 4394.9932 4397.3740 4397.7134 4398.2446 4399.1504 4400.6416 4401.3325 4401.6221 4402.2222 4402.8174 4403.4814 4403.8364 4404.1641 4410.1211 4411.1377 4414.6143 4414.8721 4415.7261 4416.0068 4417.4771 4418.0854 4419.6563 4421.0103 4421.4990 4422.7856 4423.2900 4424.9629 4426.0801 4427.2441 4429.7969 4430.8784 4431.0664 4431.4326 4432.2402 4433.4966 4434.2075 4434.7354 4435.0825 4436.0718 4436.2017 4436.9238 4437.2939 4437.5298 4438.2417 4439.9927 4440.3696 4440.7075 4441.1260 4441.8203 4442.1123 4442.8555 4444.3340 4444.9131 4446.2817 4447.1494 4448.4780 4449.0830 4450.1284 4450.7695 4452.0537 4453.8154 4455.3896 4456.0244 4457.9590 4458.4878 4459.2524 4459.9893 4460.7993 4461.8096 4462.7798 4464.9185 4465.0869 4465.3916 4466.5938 4467.2285 4469.5747 4470.4429 4470.7798 4472.2456 4476.0151 4476.4771 4479.6602 4479.8525 4480.8945 4481.5234 4481.8027 4483.0684 4484.6050 4488.1567 4488.7549 4489.5718 4489.9399 4490.9238 4491.9312 4492.2412 4493.3608 4494.5938 4495.9517 4496.2222 4496.4985 4497.5767 4497.8994 4499.1763 4499.8003 4500.2017 4500.9658 4501.2456 4501.8389 4504.1899 4505.8940 4506.4805 4507.7373 4509.0986 4511.7910 4511.9985 4513.7490 4514.4893 4514.9458 4515.3232 4515.8164 4516.3848 4516.8940 4518.3022 4520.5269 4522.4619 4523.0083 4523.5913 4524.0518 4525.3975 4526.1064 4526.7148 4527.2979 4528.9780 4529.2905 4529.6792 4530.2441 4531.5894 4531.8228 4532.9839 4533.5288 4534.3481 4534.5752 4535.3911 4535.6738 4536.5259 4536.7617 4537.2520 4538.9150 4542.2725 4543.3247 4544.6895 4545.1431 4545.7886 4546.3262 4547.1899 4547.9507 4548.5249 4549.0337 4549.6016 4552.7500 4553.4302 4555.1143 4557.0894 4557.6641 4559.6230 4560.3350 4560.5898 4562.6260 4563.3589 4563.7544 4564.9399 4565.6846 4566.1147 4568.5200 4569.4229 4569.8037 4572.2534 4572.5010 4572.8125 4574.9854 4575.3096 4575.5879 4576.5161 4576.7080 4578.0234 4578.8647 4580.6328 4581.1108 4582.4570 4585.6519 4589.7124 4590.4077 4590.5522 4591.1836 4593.9526 4594.2539 4594.9307 4596.7080 4597.3843 4597.5952 4600.0508 4600.9932 4602.1606 4604.1758 4604.4341 4605.9429 4607.1143 4607.7925 4608.6685 4609.2256 4609.9111 4610.8589 4611.3726 4611.9189 4613.1519 4613.8354 4614.8970 4616.3169 4616.6270 4617.1768 4617.7456 4619.2002 4620.7734 4621.5352 4621.7422 4622.4575 4623.4160 4624.4116 4625.1865 4625.4316 4625.6089 4625.9727 4626.3486 4626.5703 4626.7891 4628.5938 4629.4976 4629.7368 4633.0586 4635.0630 4638.5313 4639.4248 4639.9839 4640.8184 4641.0029 4641.3457 4644.8569 4646.0078 4647.9873 4648.5522 4649.2583 4651.2798 4651.5366 4652.8579 4653.2920 4655.3091 4656.5161 4657.4888 4657.8555 4659.2056 4660.8745 4661.6987 4663.8989 4664.5078 4666.2759 4667.3110 4667.8218 4668.1045 4669.4780 4670.9731 4671.2915 4673.7446 4674.9692 4676.6846 4677.3647 4678.2813 4679.5449 4681.5479 4681.9561 4683.5425 4684.0430 4684.6626 4687.5063 4687.8833 4691.6475 4691.9351 4692.3647 4692.6582 4692.9482 4693.1978 4695.4053 4696.3521 4696.7686 4699.5391 4701.4551 4702.0864 4703.6313 4704.6738 4705.3057 4706.6152 4707.0771 4707.5679 4708.3618 4709.6113 4712.1416 4713.3237 4713.7998 4714.1592 4715.9902 4716.7500 4718.7104 4720.7627 4721.3003 4721.7793 4722.1021 4722.5972 4722.9116 4723.4097 4724.7598 4725.1060 4726.0942 4728.1904 4729.1719 4729.4556 4730.4517 4731.2026 4731.9829 4732.2051 4733.3770 4735.3696 4737.2305 4739.2422 4741.0020 4741.8550 4742.2842 4742.6299 4743.4434 4743.8931 4745.0137 4746.6646 4748.9453 4749.9194 4750.5283 4751.2998 4753.7432 4758.5503 4762.4414 4763.8564 4765.6787 4766.1973 4766.9282 4767.9336 4769.3911 4774.5757 4776.6479 4777.1289 4778.1147 4778.5269 4779.6299 4781.0645 4782.0869 4782.6265 4782.8623 4784.0981 4784.9761 4785.1992 4785.3770 4787.8687 4788.4863 4790.0171 4790.7256 4791.7769 4792.8550 4793.4219 4794.5845 4795.2456 4797.2539 4797.5835 4801.5142 4802.3940 4804.0142 4805.2988 4806.9497 4807.3638 4809.4780 4810.9585 4813.2163 4813.7202 4814.3516 4815.0654 4815.2417 4818.3667 4819.9941 4820.5396 4821.8120 4822.2319 4822.9351 4823.2119 4823.3613 4824.2026 4824.5298 4824.9536 4825.3447 4825.9966 4828.0488 4830.0088 4831.1470 4832.4712 4832.9478 4833.7734 4834.1533 4835.0264 4838.7637 4839.7065 4841.8271 4842.2017 4843.5205 4845.2949 4845.5190 4846.1089 4846.2793 4846.5166 4848.6807 4849.1641 4849.7173 4850.4951 4851.2168 4851.7954 4854.2241 4854.9644 4857.6318 4858.8955 4859.4512 4859.6895 4862.5747 4863.0752 4864.5308 4866.8364 4867.2690 4868.9155 4869.6343 4869.8877 4870.2412 4872.6494 4873.3916 4874.2778 4875.7256 4877.8569 4878.3638 4879.1753 4879.3716 4880.0957 4880.7124 4881.2261 4882.5679 4883.2168 4883.6069 4887.3491 4888.2310 4889.6265 4890.4077 4890.8560 4891.2212 4891.8237 4892.4043 4893.0269 4894.1260 4894.8120 4896.3218 4900.1719 4900.6079 4903.4233 4904.1631 4906.1206 4908.5796 4911.2139 4911.5288 4911.9199 4912.1641 4912.5068 4912.7500 4913.4146 4913.9009 4914.8506 4915.4932 4916.7881 4919.1948 4921.1895 4922.9873 4924.3188 4925.7974 4926.8003 4927.3257 4927.6284 4928.6743 4929.1563 4930.4619 4931.3613 4934.5864 4935.2295 4935.7080 4938.1528 4939.2075 4939.8833 4940.4390 4940.6489 4941.0205 4942.7949 4943.2964 4944.4434 4945.0869 4946.8384 4948.0439 4948.9561 4951.6328 4952.0078 4954.0732 4954.9146 4958.6797 4959.4824 4960.1079 4962.7661 4963.1108 4963.4468 4964.5732 4966.4653 4967.1172 4968.4492 4969.0391 4970.1421 4971.4658 4973.5474 4976.4800 4977.3374 4977.9824 4978.7798 4981.5757 4982.1460 4982.3413 4983.8770 4984.9224 4986.7632 4987.3394 4988.5381 4988.9492 4990.7002 4993.5181 4994.0298 4995.1421 4995.4990 4999.2129 5001.3345 5001.6411 5003.4927 5004.9941 5005.5239 5009.5869 5010.7319 5011.3340 5011.8149 5012.8755 5014.5630 5016.1528 5017.2886 5017.9351 5018.5620 5018.9077 5019.4536 5021.2065 5021.9463 5022.6538 5023.4058 5023.5747 5025.1099 5030.0581 5030.4141 5031.0317 5031.0396 5031.2939 5036.7412 5038.1328 5039.7065 5040.6357 5040.9316 5042.0859 5042.5283 5043.0054 5044.9209 5046.1265 5046.6548 5047.7598 5048.0444 5048.4507 5050.3442 5051.2041 5052.1924 5053.2974 5056.7568 5059.3970 5061.2720 5063.0674 5063.4487 5064.3442 5064.9272 5065.4111 5066.0142 5066.3574 5067.5483 5068.1899 5068.5508 5069.3867 5070.7520 5076.0610 5076.8804 5080.5527 5081.3237 5082.8623 5086.1162 5086.4111 5086.7129 5087.5947 5090.6377 5091.4697 5091.9644 5096.4839 5097.9053 5099.4639 5102.0425 5102.5518 5111.1572 5112.7031 5116.4707 5118.7188 5119.6284 5123.9268 5126.9170 5127.3784 5129.9185 5131.6631 5132.5015 5134.5352 5136.1768 5137.5518 5138.9043 5142.2056 5143.2153 5144.7002 5145.3496 5146.7417 5147.4893 5149.6455 5150.6416 5153.0469 5155.6792 5160.0410 5162.9775 5163.7227 5164.8970 5167.2119 5168.0947 5170.3623 5171.6631 5175.1123 5176.2397 5176.7661 5177.3530 5177.6704 5177.8452 5178.4023 5179.0645 5179.9219 5182.1636 5183.9702 5184.5332 5185.0479 5185.4331 5185.8975 5186.1753 5187.8574 5188.7817 5189.1909 5192.3174 5195.2720 5195.9038 5197.2603 5198.6831 5200.2476 5200.6113 5203.4575 5205.2969 5206.6021 5209.2515 5211.1753 5212.6816 5214.8008 5218.0493 5218.2666 5219.9805 5220.5635 5222.1606 5222.3804 5222.7251 5229.6797 5230.4507 5232.6157 5234.6821 5235.5640 5240.2715 5241.0103 5241.6553 5249.1157 5252.3340 5254.9067 5255.9272 5259.8242 5261.5684 5262.9365 5265.6987 5267.0171 5268.1763 5271.2593 5271.7329 5274.1118 5274.3945 5274.5996 5275.5869 5277.8770 5278.6143 5278.9683 5281.5547 5281.8135 5282.5381 5283.0981 5288.3584 5291.3691 5293.2886 5295.8701 5296.5615 5297.7524 5299.2173 5299.7563 5301.9980 5302.8794 5308.4629 5308.9419 5311.0869 5311.7441 5313.4800 5314.0068 5314.3823 5316.7070 5318.9741 5319.9067 5322.2505 5324.3799 5326.6255 5326.9136 5327.7593 5328.4575 5330.8569 5331.1802 5331.2383 5331.5630 5338.5000 5341.9834 5345.0674 5346.7983 5347.8647 5349.4585 5350.4932 5350.9487 5352.6147 5353.3247 5356.0908 5357.1260 5360.1963 5361.3174 5361.6406 5362.6470 5364.0664 5366.9629 5370.7749 5370.9399 5372.2031 5374.1968 5374.9888 5376.3164 5376.8477 5377.2642 5377.6255 5378.2764 5380.3315 5380.6064 5382.8677 5384.4248 5385.5332 5388.1084 5389.5488 5394.0718 5395.0991 5395.4712 5396.2603 5399.0166 5400.2026 5400.4229 5400.6753 5401.1226 5401.6465 5404.1069 5404.7012 5408.2583 5408.8472 5409.1567 5412.2729 5417.0278 5418.9917 5420.6348 5422.8589 5423.1699 5423.3433 5425.5156 5427.1865 5427.9160 5430.6143 5432.6216 5434.2754 5434.8022 5435.2114 5435.6621 5436.6338 5437.2349 5437.4038 5438.8994 5439.6489 5441.5015 5442.1143 5442.7271 5443.7603 5444.6318 5445.2021 5448.6675 5449.7861 5450.9932 5453.1665 5453.7339 5456.6680 5460.4849 5463.2534 5464.1309 5465.7241 5468.6895 5472.2793 5479.0742 5480.5977 5482.4136 5485.6704 5489.3662 5490.1543 5490.4507 5490.6138 5491.6450 5494.1699 5494.7305 5495.8574 5497.4014 5497.6646 5499.7119 5500.7837 5501.1763 5502.8101 5503.4727 5505.8306 5507.6421 5508.4492 5509.0684 5510.0889 5511.5239 5516.4048 5520.5220 5520.7686 5523.2871 5526.1172 5526.4917 5528.8306 5529.7627 5530.6328 5531.6123 5532.2339 5537.5088 5539.0942 5540.1475 5540.8003 5541.4492 5542.6855 5543.1206 5543.4751 5544.4297 5546.5894 5547.3462 5547.6611 5548.6743 5549.7168 5552.9141 5554.1655 5557.0742 5557.6924 5558.5889 5559.4653 5559.8862 5560.2461 5561.4355 5565.7466 5569.5444 5572.4736 5572.7383 5573.6421 5574.0122 5574.9009 5576.4634 5577.7529 5579.2329 5580.9072 5581.6265 5582.3042 5583.5166 5584.4165 5585.3125 5587.3979 5588.5776 5589.2861 5590.3022 5591.6650 5595.1660 5596.0137 5596.6167 5599.0298 5600.0337 5601.2095 5602.6768 5603.1582 5604.4185 5606.0718 5607.9429 5608.2896 5611.1313 5612.2383 5613.6260 5614.1753 5616.8784 5618.2505 5618.8491 5619.2012 5621.5361 5626.4746 5627.2402 5631.8594 5634.8584 5637.4434 5641.3110 5643.1230 5643.3003 5647.0918 5647.2358 5647.4614 5648.0181 5649.2744 5650.2539 5650.5591 5652.2725 5654.4707 5655.5928 5656.0879 5657.0591 5659.4956 5660.6978 5662.2300 5664.6138 5666.1934 5666.7520 5667.2007 5667.9912 5668.7007 5675.4106 5676.5610 5678.6284 5680.5811 5683.4766 5686.7695 5688.9272 5692.2725 5693.2407 5697.9717 5699.8740 5702.4990 5704.2329 5707.2197 5708.6865 5710.2627 5717.3101 5718.7568 5721.2090 5721.7695 5725.8252 5726.0518 5726.9771 5729.2993 5731.5718 5737.6211 5741.1118 5742.7632 5743.4219 5743.6768 5748.7871 5748.9790 5750.3359 5750.9829 5751.3813 5754.6221 5762.1489 5764.3926 5765.1274 5769.3774 5769.7808 5773.3608 5773.7148 5775.5474 5779.0024 5781.4375 5791.2505 5794.0361 5797.6753 5798.9268 5800.0859 5802.4380 5803.6885 5805.7505 5807.3115 5809.2920 5810.2676 5814.5845 5817.0342 5820.0630 5821.2163 5824.4082 5827.8877 5830.7261 5831.4790 5832.4438 5833.9878 5835.8809 5840.5684 5841.4702 5842.2593 5843.6689 5845.4268 5846.4111 5847.5391 5854.3027 5855.0972 5855.7432 5857.1216 5859.0728 5861.9341 5865.3433 5868.4380 5870.0010 5871.4775 5872.1797 5872.8101 5874.2305 5875.6660 5875.9790 5876.6147 5880.7559 5884.2544 5885.6641 5887.3330 5888.1626 5889.8940 5890.2163 5891.5854 5893.0840 5896.3315 5896.9155 5897.9976 5901.4795 5904.2378 5905.7954 5906.8130 5907.2075 5912.8677 5913.7241 5915.0029 5916.0244 5916.3096 5918.3672 5920.5840 5927.0454 5928.7681 5930.4556 5931.5771 5934.0708 5938.0308 5938.8071 5939.3086 5940.1021 5940.4707 5942.2114 5944.0049 5945.1118 5946.2939 5947.8823 5950.4473 5956.2349 5957.2114 5957.9087 5962.4321 5966.1245 5969.9731 5971.3911 5973.2549 5974.0898 5975.3198 5976.7202 5977.8564 5983.5420 5983.7534 5987.9253 5988.9604 5990.7041 5992.6670 5995.1538 5995.7891 5998.2905 6000.6597 6002.8652 6003.3960 6006.8281 6007.3872 6008.7358 6011.8252 6013.1982 6015.3433 6017.0879 6018.0249 6020.6602 6021.9385 6022.7031 6023.0786 6024.8921 6026.8184 6027.7139 6029.9409 6030.8950 6031.3198 6032.1147 6033.7979 6034.5430 6036.8638 6038.4341 6039.3691 6040.3530 6044.2632 6044.8965 6046.1064 6048.5718 6050.7261 6052.6577 6054.3989 6055.0571 6057.2705 6059.8589 6061.0508 6063.2148 6066.4307 6067.4595 6068.7603 6070.7012 6072.0225 6074.7847 6078.7876 6079.5552 6080.1040 6080.9053 6082.9263 6087.0596 6087.5645 6088.9473 6089.7153 6092.1343 6098.8818 6099.8086 6100.4912 6100.7715 6101.6772 6103.4141 6107.3252 6109.2241 6114.5293 6115.1582 6116.2314 6116.6162 6117.8589 6121.3936 6122.2510 6123.1021 6123.9092 6125.0566 6125.5283 6125.7642 6126.1758 6127.4355 6129.1123 6131.2427 6135.5122 6139.6250 6140.3457 6146.4590 6147.1421 6152.3857 6153.6958 6155.7720 6156.2197 6156.9419 6157.2852 6158.7920 6163.0581 6163.8750 6164.6748 6166.1851 6166.8286 6171.5293 6171.8809 6173.9858 6174.8042 6180.1411 6182.4150 6184.3320 6188.8467 6189.8374 6190.8574 6193.6187 6195.5703 6199.9375 6202.1479 6202.8159 6205.2090 6207.5771 6208.9375 6209.4683 6210.4048 6217.6582 6221.7324 6223.0405 6226.2495 6228.0923 6234.6992 6235.9214 6236.5806 6241.4385 6242.6802 6244.8477 6246.7690 6247.3462 6247.9019 6250.1333 6252.2144 6259.1543 6260.3379 6263.1499 6266.4463 6267.3364 6267.9067 6269.9336 6273.2788 6275.8521 6277.9004 6278.9741 6280.3818 6280.9028 6281.7144 6287.0161 6287.7837 6288.9941 6291.2275 6292.9312 6293.3687 6293.8003 6294.6313 6294.9829 6298.6138 6300.6450 6302.6592 6303.1553 6304.9937 6305.9858 6309.4019 6310.9053 6312.5552 6314.3682 6316.0156 6317.5215 6318.9297 6323.0483 6323.5684 6326.1470 6328.1162 6329.0278 6333.1646 6334.2632 6334.8975 6337.1577 6339.3730 6341.4209 6344.6128 6347.8755 6349.9868 6350.4922 6357.3867 6357.6675 6358.7803 6359.4351 6360.3789 6360.8921 6361.4326 6364.0107 6366.6533 6370.8999 6371.3354 6373.7051 6378.6934 6380.5234 6381.4370 6383.1240 6383.5229 6386.4819 6389.1611 6390.5796 6391.1563 6391.8955 6392.9438 6394.1357 6395.5649 6395.8174 6396.4966 6398.7183 6400.9756 6401.7188 6402.4658 6404.7827 6408.2173 6413.6714 6415.3872 6417.3110 6418.0811 6420.1445 6423.8828 6424.6724 6426.5884 6430.5508 6433.3330 6438.4487 6439.5400 6440.0889 6440.6953 6440.8506 6443.6797 6445.6406 6447.4219 6448.5522 6451.7881 6452.7383 6453.8418 6457.0483 6459.0664 6462.2603 6462.8447 6469.4624 6473.0010 6484.8740 6487.1680 6489.2734 6490.6763 6492.5308 6494.9917 6495.5723 6495.7637 6497.0522 6497.8242 6499.2871 6500.9019 6501.4414 6502.4541 6503.1572 6503.7886 6505.3081 6508.7847 6510.1587 6510.8491 6514.1631 6515.6460 6523.8452 6524.3018 6533.1465 6536.4111 6537.9502 6538.9844 6539.4204 6539.9185 6543.8569 6547.5269 6551.9966 6553.5151 6555.9707 6560.6870 6561.8696 6566.2573 6566.8833 6571.4468 6577.9385 6579.0317 6579.4722 6582.0474 6585.7241 6586.4316 6587.5132 6590.3594 6593.3052 6595.2842 6595.7603 6597.9360 6600.5005 6601.3052 6602.5542 6604.5859 6605.4448 6606.6777 6607.2412 6615.2007 6618.8857 6619.3433 6619.9951 6621.7744 6622.7949 6633.9155 6635.2900 6640.0542 6640.7456 6641.5742 6645.5327 6646.4990 6648.3755 6650.3311 6650.7944 6656.2051 6657.3267 6658.7764 6660.5156 6662.5151 6664.1079 6665.5366 6665.8906 6668.1992 6670.6577 6675.4219 6676.5396 6679.1255 6680.5503 6681.9253 6685.2124 6686.1382 6689.3667 6694.5737 6695.8550 6696.3447 6697.9888 6699.5615 6702.6001 6713.1050 6715.8237 6719.2397 6721.0547 6724.7461 6728.1660 6729.3159 6729.9756 6730.6172 6731.7905 6734.5078 6735.6079 6740.0405 6743.7827 6744.7461 6747.9980 6753.2905 6754.6978 6755.5244 6758.3179 6758.9751 6760.0688 6768.4790 6771.9751 6774.0435 6774.9663 6780.1831 6781.1953 6781.9961 6782.2842 6789.6094 6790.7139 6793.1089 6797.6738 6800.3628 6802.3413 6809.1973 6810.4102 6810.9790 6811.1968 6811.3887 6811.5566 6812.4287 6814.3716 6814.6553 6817.4932 6825.3916 6826.5605 6829.1333 6830.9204 6831.2319 6834.7783 6836.8110 6841.1821 6848.3687 6853.7754 6854.2456 6855.4150 6856.0010 6856.4043 6857.2070 6857.5811 6863.1626 6864.7627 6865.4292 6868.2617 6868.6582 6870.3462 6873.1855 6876.6504 6881.4805 6884.7100 6888.3076 6888.9878 6890.0742 6891.2036 6894.1514 6896.1323 6902.6670 6904.1143 6910.8965 6911.7554 6913.1328 6916.6201 6918.0366 6921.9482 6926.9194 6938.5664 6939.5776 6944.4531 6945.5259 6947.4063 6948.1294 6953.3950 6954.8848 6956.5742 6957.2334 6962.1699 6964.2319 6967.3521 6971.2197 6983.0088 6987.3984 6987.9570 6991.5835 6994.1411 6994.6255 6994.9663 6995.9165 6998.6875 7001.5547 7002.7349 7004.8140 7009.0283 7016.9028 7017.2520 7020.5024 7022.4194 7023.2192 7027.1621 7028.3989 7029.9609 7032.1899 7034.8701 7038.2231 7040.6611 7047.7397 7055.5645 7056.3628 7060.4355 7061.4717 7061.9883 7062.6006 7063.3413 7066.3994 7069.1670 7070.6851 7073.0439 7073.4297 7074.3442 7076.2070 7077.2842 7079.3208 7086.1221 7088.6587 7090.7778 7091.2939 7102.4722 7109.4380 7111.1426 7111.8208 7114.8804 7115.9492 7116.3599 7126.5249 7127.7847 7132.1504 7132.6899 7133.3247 7134.5767 7142.4297 7144.2998 7149.0112 7150.5293 7152.2549 7155.5596 7158.9141 7160.8120 7161.9199 7164.5313 7169.1782 7170.8711 7172.3369 7175.3496 7178.1641 7178.6992 7190.5137 7193.1147 7202.0298 7203.7939 7204.1758 7204.5015 7208.4692 7208.9668 7209.9932 7214.6772 7220.0435 7221.1411 7222.9712 7227.1011 7231.9307 7231.9312 7232.8550 7235.5303 7242.1802 7244.0879 7246.6929 7248.1250 7252.5879 7255.6748 7257.3535 7258.9858 7260.1772 7267.1748 7272.6675 7274.9404 7286.9102 7287.4512 7298.2764 7300.1543 7307.4170 7313.7300 7317.0811 7318.0205 7325.2280 7326.8252 7328.1670 7330.3042 7331.5107 7337.5981 7341.6255 7343.1738 7344.5996 7347.4229 7348.3667 7350.0776 7352.8389 7355.3188 7360.3721 7363.3750 7372.8564 7374.1489 7378.9097 7382.4595 7386.0146 7387.5352 7395.0166 7395.4741 7404.2910 7413.0098 7413.7783 7414.3789 7419.8345 7420.5938 7424.3569 7425.8496 7427.3394 7430.9863 7432.2993 7437.4155 7438.3447 7442.5420 7446.7993 7449.8994 7457.2607 7460.8076 7463.9292 7465.0464 7471.1133 7473.2212 7483.4146 7485.6865 7486.3877 7490.0356 7495.4912 7497.6279 7501.0674 7502.7212 7505.9355 7510.5464 7512.4766 7513.4180 7513.8584 7516.7212 7520.8525 7525.2065 7527.5801 7530.5625 7533.2173 7538.5117 7539.5044 7551.3931 7557.4058 7567.9351 7568.6133 7569.8257 7571.5962 7572.6440 7573.1177 7575.4292 7591.4038 7600.2969 7609.9175 7620.4414 7622.1748 7627.8042 7629.2744 7630.9819 7632.4106 7634.2310 7637.2075 7639.4873 7640.8828 7649.4844 7653.8511 7654.4268 7655.9355 7656.8066 7660.4326 7662.1318 7662.9990 7668.6782 7671.0718 7672.1689 7674.3672 7678.3325 7680.2397 7685.1338 7687.4229 7693.8877 7695.9194 7701.5225 7701.8989 7703.2275 7705.8057 7706.9375 7712.3911 7714.5278 7716.0615 7723.3276 7725.8872 7726.3330 7731.0786 7733.8667 7744.6943 7746.0864 7763.8491 7764.8677 7774.0850 7778.8125 7780.6323 7784.4575 7789.9429 7791.0771 7800.5034 7812.7734 7815.6260 7816.1226 7816.4731 7818.3037 7819.9180 7824.5400 7836.6138 7837.7769 7838.6157 7842.4556 7843.9487 7844.4233 7849.6987 7850.6138 7864.0732 7864.0742 7866.1855 7868.1338 7870.3599 7874.7979 7877.6294 7879.2432 7888.4531 7893.2461 7895.7910 7898.6250 7901.7964 7902.4937 7918.6201 7927.1719 7927.9282 7939.9165 7943.9102 7950.3623 7956.7798 7959.1626 7974.7886 7976.3521 7981.1675 7983.4209 7990.1699 7993.5635 7995.8789 8002.2451 8008.3584 8016.9897 8019.7324 8024.4072 8026.4600 8027.9341 8028.4209 8032.4087 8034.6401 8039.4287 8048.3296 8052.8618 8055.5234 8056.7510 8064.8477 8077.8726 8087.4429 8091.7100 8094.4629 8095.8501 8096.2817 8105.9214 8117.5430 8121.4141 8124.9575 8131.6411 8140.7124 8142.1411 8145.3765 8151.9424 8154.6230 8159.7861 8161.9707 8165.3652 8168.6929 8172.0322 8179.4268 8189.1616 8193.1367 8196.6475 8200.6963 8204.4014 8209.7344 8211.7031 8216.4053 8219.4854 8233.6699 8237.2021 8254.6621 8255.8838 8257.0117 8261.7813 8263.2852 8266.7939 8277.9023 8290.6924 8294.8066 8297.8301 8299.4580 8306.7080 8313.9160 8323.1426 8332.7393 8337.9980 8343.7695 8358.3584 8358.3652 8361.0225 8362.7881 8368.3730 8369.6924 8371.6406 8381.5293 8387.0273 8388.0322 8389.4102 8390.8408 8400.4854 8401.5654 8404.2979 8406.1064 8410.5205 8414.2285 8419.0391 8420.3115 8423.5391 8426.9619 8434.8105 8447.8076 8448.8330 8452.9980 8458.6699 8466.5625 8467.9971 8474.1543 8480.6885 8492.6396 8503.0156 8512.9629 8514.2480 8518.8945 8523.7842 8542.1396 8544.4346 8546.0703 8546.9434 8557.2949 8558.6768 8560.7979 8562.7871 8570.5635 8575.4756 8577.6865 8579.6318 8589.9922 8594.1982 8595.4697 8602.1172 8606.3799 8608.1396 8618.5879 8622.8281 8623.6904 8631.5117 8633.7275 8640.7354 8641.8145 8647.6826 8651.5254 8658.2529 8664.5156 8667.8652 8670.3252 8677.7813 8680.7920 8690.2334 8703.5107 8706.0928 8707.2510 8709.7510 8711.6260 8712.8066 8715.2451 8716.0479 8722.0234 8724.0547 8724.8535 8726.1143 8726.7725 8734.8223 8736.4219 8742.1816 8750.4336 8751.5732 8753.6094 8760.6484 8762.8555 8764.0928 8769.1533 8774.2695 8775.2148 8777.9834 8785.1279 8786.9756 8792.7900 8794.4727 8800.5879 8801.5049 8807.0078 8812.6738 8818.5947 8820.1650 8832.1172 8843.6104 8844.5020 8852.3457 8855.2227 8857.3389 8871.2676 8877.6689 8891.6348 8895.4277 8901.7402 8908.1035 8909.4785 8913.3027 8922.6504 8930.5439 8944.1162 8951.5801 8958.3057 8960.4453 8964.6074 8970.1025 8972.3301 8987.7480 8989.8760 8993.3623 8997.6592 9000.3467 9010.9375 9012.3564 9015.0010 9019.0654 9020.0664 9034.2988 9038.4004 9040.3750 9041.1729 9042.6045 9047.8369 9050.7344 9055.9707 9058.5674 9065.0518 9066.4482 9068.6006 9070.5127 9072.0723 9074.7686 9077.8857 9093.3145 9097.3262 9109.7256 9114.0313 9125.4717 9134.7793 9137.1992 9143.0645 9161.5479 9168.4102 9173.3389 9181.2979 9190.0869 9196.1152 9197.1621 9202.2090 9206.4873 9211.1084 9218.4492 9227.0303 9230.0439 9235.0293 9236.3916 9241.8613 9253.1162 9262.8662 9266.2354 9268.7500 9269.4629 9270.2324 9272.6943 9278.8193 9292.1113 9294.0811 9297.5244 9302.5645 9310.4502 9312.9990 9320.2861 9338.7139 9338.7246 9343.2686 9356.7871 9363.5566 9385.8477 9391.5068 9393.1621 9401.6680 9411.9297 9416.6709 9423.0820 9434.1865 9434.8691 9439.4014 9457.7959 9463.6230 9469.7920 9473.2793 9477.4775 9489.5283 9496.6484 9498.1025 9499.7949 9502.9053 9508.0000 9510.2607 9511.0596 9538.2715 9550.6494 9563.8682 9579.9746 9585.4424 9598.0225 9616.3281 9632.2109 9635.2861 9660.4355 9667.3496 sptable-1.0.pre20180612/lib/linelists/xenon.dat000066400000000000000000000022121331023215600210030ustar00rootroot00000000000000# units Angstroms 10530.8 120 10709.7 50 10841.3 1000 10898.3 120 11088.3 300 11130.2 40 11144.2 20 11617.3 50 11745.5 300 11796.8 150 11860.5 160 11956.4 40 12088.1 60 12238.6 200 12261.1 20 12593.7 150 12626.8 2500 13547.8 120 13660.8 3000 14146.2 2000 14244.8 600 14368.8 200 14664.8 50 14736.8 5000 15103.9 20 15422.6 2000 15561.4 50 15983.9 150 16044.2 50 16057.7 500 16559.0 30 16732.6 2000 17330.5 1500 18793.2 500 20192.6 80 20267.8 2000 21378.9 20 21475.9 300 22412.8 60 22624.4 10 23199.6 1500 23286.0 50 24450.4 100 24709.1 60 24831.4 5500 25152.8 200 25166.3 70 26027.6 20 26276.1 3500 26518.2 4500 28389.1 300 28590.1 1000 29392.3 300 29456.2 80 29657.5 20 29821.6 10 30261.3 1000 30483.9 2000 30512.6 20 30802.5 800 31077.6 9900 31284.3 10 31344.6 90 31616.7 800 32310.9 10 32747.9 2000 33274.7 10 33675.7 7000 34023.8 150 34084.2 80 34344.6 1000 34753.7 150 35080.0 5000 36219.2 90 36241.8 30 36518.5 500 36798.4 800 36858.6 80 38696.9 10 38737.7 30 38748.6 20 38878.8 70 38950.4 300 38959.7 150 38973.1 120 39483.9 70 39529.9 50 39965.7 200 sptable-1.0.pre20180612/lib/mkpkg.inc000066400000000000000000000011721331023215600167640ustar00rootroot00000000000000# Global MKPKG definitions for the NOAO packages. #$set XFLAGS = "$(XFLAGS) -p noao -p sptable" #$set XVFLAGS = "$(XVFLAGS) -p noao -p sptable" #$set LFLAGS = "$(LFLAGS) -p noao -p sptable" $set XFLAGS = "$(XFLAGS) -p sptable -p noao" $set XVFLAGS = "$(XVFLAGS) -p sptable -p noao" $set LFLAGS = "$(LFLAGS) -p sptable -p noao" $ifeq (MACH, linux) then $include "sptable$lib/mkpkg.sf.LINUX" $else $ifeq (MACH, linux64) then $include "sptable$lib/mkpkg.sf.LINUX64" $else $ifeq (MACH, macosx) then $include "sptable$lib/mkpkg.sf.MACOSX" $else $ifeq (MACH, macintel) then $include "sptable$lib/mkpkg.sf.MACINTEL" $end sptable-1.0.pre20180612/lib/mkpkg.sf.LINUX000066400000000000000000000000001331023215600175060ustar00rootroot00000000000000sptable-1.0.pre20180612/lib/mkpkg.sf.LINUX64000066400000000000000000000000001331023215600176600ustar00rootroot00000000000000sptable-1.0.pre20180612/lib/mkpkg.sf.MACINTEL000066400000000000000000000000001331023215600200030ustar00rootroot00000000000000sptable-1.0.pre20180612/lib/mkpkg.sf.MACOSX000066400000000000000000000000001331023215600176010ustar00rootroot00000000000000sptable-1.0.pre20180612/lib/obsdb.dat000066400000000000000000000326261331023215600167530ustar00rootroot00000000000000# Observatory Parameters. # # Some were taken from the Almanac and others have been submitted. # Observatories wishing to be added or make changes in the default # distributed database should send information to iraf@noao.edu. observatory = "kpno" name = "Kitt Peak National Observatory" longitude = 111:36.0 latitude = 31:57.8 altitude = 2120. timezone = 7 observatory = "wiyn" name = "WIYN Observatory" longitude = 111:36.0 latitude = 31:57.8 altitude = 2120. timezone = 7 observatory = "ctio" name = "Cerro Tololo Interamerican Observatory" longitude = 70.815 latitude = -30.16527778 altitude = 2215. timezone = 4 observatory = "lasilla" name = "European Southern Observatory: La Silla" longitude = 70:43.8 latitude = -29:15.4 altitude = 2347 timezone = 4 observatory = "paranal" name = "European Southern Observatory: Paranal" longitude = 70:24.2 latitude = -24:37.5 altitude = 2635 timezone = 4 observatory = "lick" name = "Lick Observatory" longitude = 121:38.2 latitude = 37:20.6 altitude = 1290 timezone = 8 # Observatory entry from a conversation with Craig Foltz 8/20/97. # Name was changed and the "mmt" entry was removed. observatory = "mmto" name = "MMT Observatory" longitude = 110:53.1 latitude = 31:41.3 altitude = 2600 timezone = 7 observatory = "cfht" name = "Canada-France-Hawaii Telescope" longitude = 155:28.3 latitude = 19:49.6 altitude = 4215 timezone = 10 observatory = "lapalma" name = "Roque de los Muchachos, La Palma" longitude = 17:52.8 latitude = 28:45.5 altitude = 2327 timezone = 0 observatory = "mso" name = "Mt. Stromlo Observatory" longitude = 210:58:32.4 latitude = -35:19:14.34 altitude = 767 timezone = -10 observatory = "sso" name = "Siding Spring Observatory" longitude = 210:56:19.70 latitude = -31:16:24.10 altitude = 1149 timezone = -10 observatory = "aao" name = "Anglo-Australian Observatory" longitude = 210:56:2.09 latitude = -31:16:37.34 altitude = 1164 timezone = -10 observatory = "mcdonald" name = "McDonald Observatory" longitude = 104.0216667 latitude = 30.6716667 altitude = 2075 timezone = 6 observatory = "lco" name = "Las Campanas Observatory" longitude = 70:42.1 latitude = -29:0.2 altitude = 2282 timezone = 4 # Submitted by Alan Koski 1/13/93 observatory = "mtbigelow" name = "Catalina Observatory: 61 inch telescope" longitude = 110:43.9 latitude = 32:25.0 altitude = 2510. timezone = 7 # Revised by Daniel Durand 2/23/93 observatory = "dao" name = "Dominion Astrophysical Observatory" longitude = 123:25.0 latitude = 48:31.3 altitude = 229 timezone = 8 # Submitted by Patrick Vielle 5/4/93 observatory = "spm" name = "Observatorio Astronomico Nacional, San Pedro Martir" longitude = 115:29:13 latitude = 31:01:45 altitude = 2830 timezone = 7 # Submitted by Patrick Vielle 5/4/93 observatory = "tona" name = "Observatorio Astronomico Nacional, Tonantzintla" longitude = 98:18:50 latitude = 19:01:58 timezone = 8 # Submitted by Don Hamilton 8/18/93 observatory = "Palomar" name = "The Hale Telescope" longitude = 116:51:46.80 latitude = 33:21:21.6 altitude = 1706. timezone = 8 # Submitted by Pat Seitzer 10/31/93 observatory = "mdm" name = "Michigan-Dartmouth-MIT Observatory" longitude = 111:37.0 latitude = 31:57.0 altitude = 1938.5 timezone = 7 # Submitted by Ignacio Ferrin 9/1/94 observatory = "NOV" name = "National Observatory of Venezuela" longitude = 70:52.0 latitude = 8:47.4 altitude = 3610 timezone = 4 # Submitted by Alan Welty 10/28/94 observatory = "bmo" name = "Black Moshannon Observatory" longitude = 78:00.3 latitude = 40:55.3 altitude = 738 timezone = 5 # Submitted by Biwei JIANG 11/28/95 observatory = "BAO" name = "Beijing XingLong Observatory" longitude = 242:25.5 latitude = 40:23.6 altitude = 950. timezone = -8 # From Astronomical Almanac 1996 observatory = "keck" name = "W. M. Keck Observatory" longitude = 155:28.7 latitude = 19:49.7 altitude = 4160 timezone = 10 # Submitted by Lina Tomasella 6/11/96: Padova Astronomical Obs., Asiago, Italy. observatory = "ekar" name = "Mt. Ekar 182 cm. Telescope" longitude = 348:25:07.92 latitude = 45:50:54.92 altitude = 1413.69 timezone = -1 # Submitted by Michael Ledlow 8/8/96 observatory = "apo" name = "Apache Point Observatory" longitude = 105:49.2 latitude = 32:46.8 altitude = 2798. timezone = 7 # Submitted by Michael Ledlow 8/8/96 observatory = "lowell" name = "Lowell Observatory" longitude = 111:32.1 latitude = 35:05.8 altitude = 2198. timezone = 7 # Submitted by S.G. Bhargavi 8/12/96 observatory = "vbo" name = "Vainu Bappu Observatory" longitude = 281.1734 latitude = 12.57666 altitude = 725. timezone = -5.5 # Submitted by S. Giridhar 6/28/03 observatory = "iao" name = "Indian Astronomical Observatory, Hanle" longitude = 281.03583 latitude = 32.7794 altitude = 4500 timezone = -5.5 # Submitted by Doug Mink 1/6/97 observatory = "flwo" name = "Whipple Observatory" longitude = 110:52:39 latitude = 31:40:51.4 altitude = 2320 timezone = 7 observatory = "flwo1" name = "Whipple Observatory" longitude = 110:52:39 latitude = 31:40:51.4 altitude = 2320 timezone = 7 # Submitted by Doug Mink 1/6/97 observatory = "oro" name = "Oak Ridge Observatory" longitude = 71:33:29.32 latitude = 42:30:18.94 altitude = 184 timezone = 5 # Submitted by Claudia Vilega Rodriques 12/12/97 observatory = "lna" name = "Laboratorio Nacional de Astrofisica - Brazil" longitude = 45.5825 latitude = -22:32:04 altitude = 1864 timezone = 3 # Submitted by John Memzies 12/31/99 observatory = "saao" name = "South African Astronomical Observatory" longitude = 339:11:21.5 latitude = -32:22:46 altitude = 1798 timezone = -2 # Submitted by Jorge Federico Gonzalez 12/10/98 observatory = "casleo" name = "Complejo Astronomico El Leoncito, San Juan" longitude = 69:18:00 latitude = -31:47:57 altitude = 2552 timezone = 3 # Submitted by Jorge Federico Gonzalez 12/10/98 observatory = "bosque" name = "Estacion Astrofisica Bosque Alegre, Cordoba" longitude = 64:32:45 latitude = -31:35:54 altitude = 1250 timezone = 3 # Submitted by Ilian Iliev 1/19/99 observatory = "rozhen" name = "National Astronomical Observatory Rozhen - Bulgaria" longitude = 335:15:22 latitude = 41:41:35 altitude = 1759 timezone = -2 # Submitted by Bill Vacca 7/14/99 observatory = "irtf" name = "NASA Infrared Telescope Facility" longitude = 155.471999 latitude = 19.826218 altitude = 4168 timezone = 10 # Submitted by Andy Layden 7/16/99 observatory = "bgsuo" name = "Bowling Green State Univ Observatory" longitude = 83:39:33 latitude = 41:22:42 altitude = 225. timezone = 5 # Submitted by Oliver-Mark Cordes 8/5/99 observatory = "DSAZ" name = "Deutsch-Spanisches Observatorium Calar Alto - Spain" longitude = 2:32:46.5 latitude = 37:13:25 altitude = 2168 timezone = -1 # Submitted by Matilde Fernandez 2/2/99 observatory = "ca" name = "Calar Alto Observatory" longitude = 2:32:46.5 latitude = 37:13:25 altitude = 2168 timezone = -1 # Submitted by Oliver-Mark Cordes 8/5/99 observatory = "holi" name = "Observatorium Hoher List (Universitaet Bonn) - Germany" longitude = 6.85 latitude = 50.16276 altitude = 541 timezone = -1 # Submitted by Steven Majewski 8/27/99 observatory = "lmo" name = "Leander McCormick Observatory" longitude = 78:31:24 latitude = 38:02:00 altitude = 264 timezone = 5 # Submitted by Steven Majewski 8/27/99 observatory = "fmo" name = "Fan Mountain Observatory" longitude = 78:41:36 latitude = 37:52:42 altitude = 566 timezone = 5 # Submitted by Kim K. McLeod 10/13/1999 observatory = "whitin" name = "Whitin Observatory, Wellesley College" longitude = 71.305833 latitude = 42.295 altitude = 32 timezone = 5 # Submitted by Nuno Peixinho 6/7/2000 # Parameters for the Sierra Nevada Observatory (Spain) observatory = "osn" name = "Observatorio de Sierra Nevada" longitude = 3:23:05 latitude = 37:03:51 altitude = 2896 timezone = -1 # Gemini Observatory - Submitted by Inger Jorgensen # # Gemini-North # These values are from the aerial survey made Sept 25, 1996 # http://www.ifa.hawaii.edu/mko/coordinates.html observatory = "gemini-north" name = "Gemini North Observatory" longitude = 155:28.142805 latitude = 19:49.42809 altitude = 4213.4 timezone = 10 # Gemini-South # The coordinates are from GPS measurements and the elevation # is from the Gemini Web pages http://www.gemini.edu/public #observatory = "gemini-south" # name = "Gemini South Observatory" # longitude = 70:43.4 # latitude = -30:13.7 # altitude = 2737. # timezone = 4 # Corrected coords from Bryan Miller, 5/18/2006 observatory = "gemini-south" name = "Gemini South Observatory" longitude = 70:44.2016 latitude = -30:14.445 altitude = 2722. timezone = 4 # ESO observatory = "lasilla" name = "European Southern Observatory: La Silla" longitude = 70:43.8 latitude = -29:15.4 altitude = 2347 timezone = 4 observatory = "paranal" name = "European Southern Observatory: Paranal" longitude = 70:24.2 latitude = -24:37.5 altitude = 2635 timezone = 4 # The following additional entries were suppied by Peter Weilbacher # weilbach@uni-sw.gwdg.de on 28 Jan 2002 13:12:59 -0700. observatory = "esontt" name = "European Southern Observatory, NTT, La Silla" longitude = 70:43:54.272 latitude = -29:15:18.440 altitude = 2375 timezone = 4 observatory = "eso36m" name = "European Southern Observatory, 3.6m Telescope, La Silla" longitude = 70:43:46.606 latitude = -29:15:25.814 altitude = 2400 timezone = 4 observatory = "esovlt" name = "European Southern Observatory, VLT, Paranal" longitude = 70.4022 latitude = -24.6253 altitude = 2648 timezone = 4 # Submited by Giovanni Catanzaro, 7/17/03. observatory = "sln" name = "SLN - Catania Astrophysical Observatory" longitude = 345:01:36 latitude = 37:41.5 altitude = 1725. timezone = -1 # Submited by Ahmet Devlen, 4/21/04 observatory = "euo" name = "Ege University Observatory" longitude = -27:16.5 latitude = 38:23.9 altitude = 795. timezone = 2 # Submitted by Zeki Aslan 8/15/05 who said the "tno" entry was wrong. #observatory = "tno" # name = "Turkiye National Observatory" # longitude = -30:21:11 # latitude = 36:49:28 # altitude = 2555. # timezone = 2 # observatory = "tug" name = "TUBITAK National Observatory, Turkey" longitude = -30:20:00 latitude = 36:49:30 altitude = 2547. timezone = -2 # Submited by Ricky Patterson for Vatican Obs. Research Group, 6/15/04 observatory = "mgo" name = "Mount Graham Observatory" longitude = 109:53:30 latitude = 32:42:06 altitude = 3181 timezone = 7 # Submited by Jeewan C. Bandey 7/28/05 # Changed to W longitude MJF 4/1/06) # (E) longitude = 79.45639 observatory = "aries" name = "Aryabhatta Research Institute of Observational Sciences" longitude = 280.54361 latitude = 29.36 altitude = 1950. timezone = -5.5 # Submitted by Eduardo Fernndez Lajs 10/28/05 observatory = "oalp" name = 'Observatorio Astronmico de La Plata' longitude = 57:55:56.2782 latitude = -34:54:24.3040 altitude = 20. timezone = 3. # Submitted by Leslie F. Brown 7/29/06 observatory = "olin" name = Connecticut College - Olin Observatory" longitude = 72:06:19 latitude = 41:22:44 altitude = 85 timezone = 5 # Submitted by Pat van Heerden 11/20/06 observatory = "boyden" name = Boyden Observatory longitude = 332:35:40.0 latitude = -29:02:20 altitude = 1387 timezone = -2 # Submitted by Mike Yang 8/19/09 observatory = "lulin" name = "Lulin Observatory" longitude = 240:52.4 latitude = 23:28.1 altitude = 2862. timezone = -8 # Submitted by Mairan Teodoro 1/27/10 observatory = "soar" name = "Southern Astrophysical Research Telescope" longitude = 70:44:01.4 latitude = -30:14:16.8 altitude = 2738 timezone = 4 # Submitted from iraf.net 4/12/10 observatory = "baker" name = "Baker Observatory" longitude = 93:02:30.29 latitude = 37:23:55.05 altitude = 418.2 timezone = 6 # Added MJF 6/1/2010 observatory = "het" name = "McDonald Observatory - Hobby-Eberly Telescope" longitude = 104.014722222 latitude = 30.68144444 altitude = 2026 timezone = 6 # Submitted by Robert D. Collier 9/1/10 observatory = "jcdo" name = "Jack C. Davis Observatory, Western Nevada College" longitude = 119:47:26.4 latitude = 39:11:08.6 altitude = 1534 timezone = 8 # Submitted by mas_nomi1711@yahoo.com 3/16/12 observatory = "lno" name = "Langkawi National Observatory" longitude = 260:13:08.0 latitude = 06:18:25.0 altitude = 111 timezone = -8 sptable-1.0.pre20180612/lib/onedstds/000077500000000000000000000000001331023215600170025ustar00rootroot00000000000000sptable-1.0.pre20180612/lib/onedstds/README000066400000000000000000000326131331023215600176670ustar00rootroot00000000000000The onedstds$ directory contains standard calibration data for extinction and sensitivity calibration as used in the ONEDSPEC, TWODSPEC, and the various IMRED packages. EXTINCTION TABLES (eg extinction = onedstds$kpnoextinct.dat) ctioextinct.dat - CTIO extinction table for ONEDSPEC (in Angstroms) The CTIO extinction curve distributed with IRAF comes from the work of Stone & Baldwin (1983 MN 204, 347) and Baldwin & Stone (1984 MN 206, 241). The first of these papers lists the points from 3200-8370A while the second extended the flux calibration from 6056 to 10870A but the derived extinction curve was not given in the paper. The IRAF table follows SB83 out to 6436, the redder points presumably come from BS84 with averages used in the overlap region. More recent CTIO extinction curves are shown as Figures in Hamuy et al (92, PASP 104, 533 ; 94 PASP 106, 566). Steve Heathcote, Mon, 19 Jul 1999 kpnoextinct.dat - KPNO extinction table for ONEDSPEC (in Angstroms) MISCELLANEOUS ctio - Directory containing CTIO decker comb positions and neutral density filter curves (used with NDPREP). FLUX STANDARD DIRECTORIES (eg caldir = onedstds$iidscal/) blackbody - Directory for using blackbody flux distributions in various magnitude bands. bstdscal - Directory of the brighter KPNO IRS standards (i.e. those with HR numbers) at 29 bandpasses, data from various sources transformed to the Hayes and Latham system, unpublished. ctiocal - Directory containing fluxes for the southern tertiary standards as published by Baldwin & Stone, 1984, MNRAS, 206, 241 and Stone and Baldwin, 1983, MNRAS, 204, 347. ctionewcal - Directory containing fluxes at 50A steps in the blue range 3300-7550A for the tertiary standards of Baldwin and Stone derived from the revised calibration of Hamuy et al., 1992, PASP, 104, 533. This directory also contains the fluxes of the tertiaries in the red (6050-10000A) at 50A steps as will be published in PASP (Hamuy et al 1994). The combined fluxes are obtained by gray shifting the blue fluxes to match the red fluxes in the overlap region of 6500A-7500A and averaging the red and blue fluxes in the overlap. The separate red and blue fluxes may be selected by following the star name with "red" or "blue"; i.e. CD 32 blue. iidscal - Directory of the KPNO IIDS standards at 29 bandpasses, data from various sources transformed to the Hayes and Latham system, unpublished. irscal - Directory of the KPNO IRS standards at 78 bandpasses, data from various sources transformed to the Hayes and Latham system, unpublished (note that in this directory the brighter standards have no values - the `bstdscal' directory must be used for these standards at this time). oke1990 - Directory of spectrophotometric standards observed for use with the HST, Table VII, Oke 1990, AJ, 99. 1621 (no correction was applied). An arbitrary 1A bandpass is specified for these smoothed and interpolated flux "points". Users may copy and modify these files for other bandpasses. redcal - Directory of standard stars with flux data beyond 8370A. These stars are from the IRS or the IIDS directory but have data extending as far out into the red as the literature permits. Data from various sources. spechayescal - The KPNO spectrophotometric standards at the Hayes flux points, Table IV, Spectrophotometric Standards, Massey et al., 1988, ApJ 328, p. 315. spec16cal - Directory containing fluxes at 16A steps in the blue range 3300-7550A for the secondary standards, published in Hamuy et al., 1992, PASP, 104, 533. This directory also contains the fluxes of the secondaries in the red (6020-10300A) at 16A steps as will be published in PASP (Hamuy et al 1994). The combined fluxes are obtained by gray shifting the blue fluxes to match the red fluxes in the overlap region of 6500A-7500A and averaging the blue and red fluxes in the overlap. The separate red and blue fluxes may be selected by following the star name with "red" or "blue"; i.e. HR 1544 blue. spec50cal - The KPNO spectrophotometric standards at 50 A intervals. The data are from (1) Table V, Spectrophotometric Standards, Massey et al., 1988, ApJ 328, p. 315 and (2) Table 3, The Kitt Peak Spectrophotometric Standards: Extension to 1 micron, Massey and Gronwall, 1990, ApJ 358, p. 344. STANDARD STAR MENUS -------------------------------------------------------------------------------- Blackbody calibrations in onedstds$blackbody/ U B V R I J H K L Lprime M Magnitude conversions are available between V, J, H, K, L, Lprime, and M but for U, B, R, and I the star magnitudes must be in the same bandpass. -------------------------------------------------------------------------------- Standard stars in onedstds$bstdscal/ hr718 hr3454 hr3982 hr4468 hr4534 hr5191 hr5511 hr7001 hr7596 hr7950 hr8634 hr9087 hd15318 hd74280 hd100889 hd188350 hd198001 hd214923 hd224926 -------------------------------------------------------------------------------- Standard stars in onedstds$ctiocal/ bd25 eg139 feige56 l2415 l93080 bd73632 eg149 feige98 l2511 l97030 bd8 eg158 g16350 l3218 lds235 cd32 eg248 g2631 l3864 lds749 eg11 eg274 g9937 l4364 ltt4099 eg21 f15 h600 l4816 ltt8702 eg26 f25 hz2 l6248 ross627 eg31 f56 hz4 l7379 w1346 eg54 f98 hz15 l7987 w485a eg63 f110 kopf27 l8702 wolf1346 eg76 feige110 l377 l9239 wolf485a eg79 feige15 l1020 l9491 eg99 feige25 l1788 l74546 -------------------------------------------------------------------------------- Standard stars in onedstds$ctionewcal/: Combined red and blue 3300A-10000A: cd32 f56 l2415 l4364 l7987 eg21 h600 l3218 l4816 l9239 eg274 l1020 l377 l6248 l9491 f110 l1788 l3864 l7379 l745 Blue 3300A-7550A: cd32blue f56blue l2415blue l4364blue l7987blue eg21blue h600blue l3218blue l4816blue l9239blue eg274blue l1020blue l377blue l6248blue l9491blue f110blue l1788blue l3864blue l7379blue Red 6050A-10000A: cd32red f56red l2415red l4364red l7987red eg21red h600red l3218red l4816red l9239red eg274red l1020red l377red l6248red l9491red f110red l1788red l3864red l7379red l745red -------------------------------------------------------------------------------- Standard stars in onedstds$iidscal/ 40erib eg50 eg149 g16350 hz4 lds235b amcvn eg54 eg158 g191b2b hz7 lds749b bd253941 eg63 eg162 g2610 hz14 lft1655 bd284211 eg67 eg182 g2631 hz15 lp414101 bd332642 eg71 eg184 g4718 hz29 ltt13002 bd404032 eg76 eg193 g88 hz43 ltt16294 bd73632 eg77 eg247 g9937 hz44 ltt4099 bd7781 eg79 eg248 gd128 kopff27 ltt8702 bd82015 eg91 feige15 gd140 l13633 ross627 eg11 eg98 feige24 gd190 l140349 ross640 eg20 eg99 feige25 gh7112 l14094 sa29130 eg26 eg102 feige34 grw705824 l151234b sao131065 eg28 eg119 feige56 grw708247 l74546a ton573 eg29 eg129 feige92 grw738031 l8702 wolf1346 eg31 eg139 feige98 he3 l93080 wolf485a eg33 eg144 feige110 hiltner102 l97030 eg39 eg145 g12627 hiltner600 lb1240 eg42 eg148 g14563 hz2 lb227 -------------------------------------------------------------------------------- Standard stars in onedstds$irscal/ bd082015 eg50 feige34 hd117880 hd60778 hr7001 bd174708 eg71 feige56 hd161817 hd74721 hz44 bd253941 eg139 feige92 hd17520 hd84937 kopff27 bd262606 eg158 feige98 hd192281 hd86986 wolf1346 bd284211 eg247 feige110 hd19445 he3 bd332642 feige15 g191b2b hd217086 hiltner102 bd404032 feige25 hd109995 hd2857 hiltner600 -------------------------------------------------------------------------------- Standard stars in onedstds$oke1990/ bd284211 feige110 feige67 g191b2b g249 gd248 ltt9491 eg71 bd75325 feige34 g13831 g19374 gd108 hz21 eg158 eg247 -------------------------------------------------------------------------------- Standard stars in onedstds$redcal/ 40erib eg63 eg139 eg248 gd140 hz44 ltt16294 amcvn eg67 eg144 feige24 gd190 l13633 ltt4099 bd7781 eg76 eg145 g12627 grw705824 l14094 ltt8702 bd73632 eg79 eg148 g14563 grw708247 l151234b ross627 bd174708 eg91 eg149 g16350 grw738031 l74546a ross640 bd262606 eg98 eg162 g191b2b hd19445 l93080 sa29130 eg20 eg99 eg182 g2610 hd84937 l97030 sao131065 eg33 eg102 eg184 g2631 he3 lds235b wolf1346 eg50 eg119 eg193 g4718 hz29 lds749b wolf485a eg54 eg129 eg247 g9937 hz43 lft1655 -------------------------------------------------------------------------------- Standard stars in onedstds$spec16cal/: Combined red and blue 3300A-10300A: hd15318 hd74280 hd114330 hd188350 hd214923 hd30739 hd100889 hd129956 hd198001 hd224926 hr1544 hr4468 hr5501 hr7596 hr8634 hr3454 hr4963 hr718 hr7950 hr9087 Blue 3300A-7550A: hd15318blue hd74280blue hd114330blue hd188350blue hd214923blue hd30739blue hd100889blue hd129956blue hd198001blue hd224926blue hr1544blue hr4468blue hr5501blue hr7596blue hr8634blue hr3454blue hr4963blue hr718blue hr7950blue hr9087blue Red 6020A-10300A: hd15318red hd74280red hd114330red hd188350red hd214923red hd30739red hd100889red hd129956red hd198001red hd224926red hr1544red hr4468red hr5501red hr7596red hr8634red hr3454red hr4963red hr718red hr7950red hr9087red -------------------------------------------------------------------------------- Standard stars in onedstds$spec50cal/ (3200A - 8100 A) bd284211 eg247 feige34 hd192281 pg0205134 pg0934554 wolf1346 cygob2no9 eg42 feige66 hd217086 pg0216032 pg0939262 eg139 eg71 feige67 hilt600 pg0310149 pg1121145 eg158 eg81 g191b2b hz14 pg0823546 pg1545035 eg20 feige110 gd140 hz44 pg0846249 pg1708602 Standard stars in onedstds$spec50cal/ (3200A - 10200A) bd284211 eg247 feige34 g191b2b hz44 eg139 eg71 feige66 gd140 pg0823546 eg158 feige110 feige67 hilt600 wolf1346 -------------------------------------------------------------------------------- Standard stars in onedstds$spechayescal/ bd284211 eg139 feige67 hd217086 pg0216032 pg0939262 cygob2no9 eg158 feige110 hiltner600 pg0310149 pg1121145 eg42 eg247 g191b2b hz14 pg0823546 pg1545035 eg71 feige34 gd140 hz44 pg0846249 pg1708602 eg81 feige66 hd192281 pg0205134 pg0934554 wolf1346 sptable-1.0.pre20180612/lib/onedstds/blackbody/000077500000000000000000000000001331023215600207345ustar00rootroot00000000000000sptable-1.0.pre20180612/lib/onedstds/blackbody/b.dat000066400000000000000000000053321331023215600216520ustar00rootroot00000000000000# type blackbody # units microns # band B # weff 0.44 0.3 -0.1752 0.005 0.305 -0.1752 0.005 0.31 -0.1752 0.005 0.315 -0.1752 0.005 0.32 -0.1752 0.005 0.325 -0.1752 0.005 0.33 -0.1752 0.005 0.335 -0.1752 0.005 0.34 -0.1752 0.005 0.345 -0.1752 0.005 0.35 -0.1752 0.005 0.355 -0.1752 0.005 0.36 -0.1752 0.005 0.365 -0.1752 0.005 0.37 -0.1752 0.005 0.375 -0.1752 0.005 0.38 -0.1752 0.005 0.385 -0.1752 0.005 0.39 -0.1752 0.005 0.395 -0.1752 0.005 0.4 -0.1752 0.005 0.405 -0.1752 0.005 0.41 -0.1752 0.005 0.415 -0.1752 0.005 0.42 -0.1752 0.005 0.425 -0.1752 0.005 0.43 -0.1752 0.005 0.435 -0.1752 0.005 0.44 -0.1752 0.005 0.445 -0.1752 0.005 0.45 -0.1752 0.005 0.455 -0.1752 0.005 0.46 -0.1752 0.005 0.465 -0.1752 0.005 0.47 -0.1752 0.005 0.475 -0.1752 0.005 0.48 -0.1752 0.005 0.485 -0.1752 0.005 0.49 -0.1752 0.005 0.495 -0.1752 0.005 0.5 -0.1752 0.005 0.505 -0.1752 0.005 0.51 -0.1752 0.005 0.515 -0.1752 0.005 0.52 -0.1752 0.005 0.525 -0.1752 0.005 0.53 -0.1752 0.005 0.535 -0.1752 0.005 0.54 -0.1752 0.005 0.545 -0.1752 0.005 0.55 -0.1752 0.005 0.555 -0.1752 0.005 0.56 -0.1752 0.005 0.565 -0.1752 0.005 0.57 -0.1752 0.005 0.575 -0.1752 0.005 0.58 -0.1752 0.005 0.585 -0.1752 0.005 0.59 -0.1752 0.005 0.595 -0.1752 0.005 0.6 -0.1752 0.005 0.605 -0.1752 0.005 0.61 -0.1752 0.005 0.615 -0.1752 0.005 0.62 -0.1752 0.005 0.625 -0.1752 0.005 0.63 -0.1752 0.005 0.635 -0.1752 0.005 0.64 -0.1752 0.005 0.645 -0.1752 0.005 0.65 -0.1752 0.005 0.655 -0.1752 0.005 0.66 -0.1752 0.005 0.665 -0.1752 0.005 0.67 -0.1752 0.005 0.675 -0.1752 0.005 0.68 -0.1752 0.005 0.685 -0.1752 0.005 0.69 -0.1752 0.005 0.695 -0.1752 0.005 0.7 -0.1752 0.005 0.705 -0.1752 0.005 0.71 -0.1752 0.005 0.715 -0.1752 0.005 0.72 -0.1752 0.005 0.725 -0.1752 0.005 0.73 -0.1752 0.005 0.735 -0.1752 0.005 0.74 -0.1752 0.005 0.745 -0.1752 0.005 0.75 -0.1752 0.005 0.755 -0.1752 0.005 0.76 -0.1752 0.005 0.765 -0.1752 0.005 0.77 -0.1752 0.005 0.775 -0.1752 0.005 0.78 -0.1752 0.005 0.785 -0.1752 0.005 0.79 -0.1752 0.005 0.795 -0.1752 0.005 0.8 -0.1752 0.005 0.805 -0.1752 0.005 0.81 -0.1752 0.005 0.815 -0.1752 0.005 0.82 -0.1752 0.005 0.825 -0.1752 0.005 0.83 -0.1752 0.005 0.835 -0.1752 0.005 0.84 -0.1752 0.005 0.845 -0.1752 0.005 0.85 -0.1752 0.005 0.855 -0.1752 0.005 0.86 -0.1752 0.005 0.865 -0.1752 0.005 0.87 -0.1752 0.005 0.875 -0.1752 0.005 0.88 -0.1752 0.005 0.885 -0.1752 0.005 0.89 -0.1752 0.005 0.895 -0.1752 0.005 0.9 -0.1752 0.005 0.905 -0.1752 0.005 0.91 -0.1752 0.005 0.915 -0.1752 0.005 0.92 -0.1752 0.005 0.925 -0.1752 0.005 0.93 -0.1752 0.005 0.935 -0.1752 0.005 0.94 -0.1752 0.005 0.945 -0.1752 0.005 0.95 -0.1752 0.005 0.955 -0.1752 0.005 0.96 -0.1752 0.005 0.965 -0.1752 0.005 0.97 -0.1752 0.005 0.975 -0.1752 0.005 0.98 -0.1752 0.005 0.985 -0.1752 0.005 0.99 -0.1752 0.005 0.995 -0.1752 0.005 sptable-1.0.pre20180612/lib/onedstds/blackbody/h.dat000066400000000000000000000035761331023215600216700ustar00rootroot00000000000000# type blackbody # units microns # band H # weff 1.654 1.4 1.3476 0.005 1.405 1.3476 0.005 1.41 1.3476 0.005 1.415 1.3476 0.005 1.42 1.3476 0.005 1.425 1.3476 0.005 1.43 1.3476 0.005 1.435 1.3476 0.005 1.44 1.3476 0.005 1.445 1.3476 0.005 1.45 1.3476 0.005 1.455 1.3476 0.005 1.46 1.3476 0.005 1.465 1.3476 0.005 1.47 1.3476 0.005 1.475 1.3476 0.005 1.48 1.3476 0.005 1.485 1.3476 0.005 1.49 1.3476 0.005 1.495 1.3476 0.005 1.5 1.3476 0.005 1.505 1.3476 0.005 1.51 1.3476 0.005 1.515 1.3476 0.005 1.52 1.3476 0.005 1.525 1.3476 0.005 1.53 1.3476 0.005 1.535 1.3476 0.005 1.54 1.3476 0.005 1.545 1.3476 0.005 1.55 1.3476 0.005 1.555 1.3476 0.005 1.56 1.3476 0.005 1.565 1.3476 0.005 1.57 1.3476 0.005 1.575 1.3476 0.005 1.58 1.3476 0.005 1.585 1.3476 0.005 1.59 1.3476 0.005 1.595 1.3476 0.005 1.6 1.3476 0.005 1.605 1.3476 0.005 1.61 1.3476 0.005 1.615 1.3476 0.005 1.62 1.3476 0.005 1.625 1.3476 0.005 1.63 1.3476 0.005 1.635 1.3476 0.005 1.64 1.3476 0.005 1.645 1.3476 0.005 1.65 1.3476 0.005 1.655 1.3476 0.005 1.66 1.3476 0.005 1.665 1.3476 0.005 1.67 1.3476 0.005 1.675 1.3476 0.005 1.68 1.3476 0.005 1.685 1.3476 0.005 1.69 1.3476 0.005 1.695 1.3476 0.005 1.7 1.3476 0.005 1.705 1.3476 0.005 1.71 1.3476 0.005 1.715 1.3476 0.005 1.72 1.3476 0.005 1.725 1.3476 0.005 1.73 1.3476 0.005 1.735 1.3476 0.005 1.74 1.3476 0.005 1.745 1.3476 0.005 1.75 1.3476 0.005 1.755 1.3476 0.005 1.76 1.3476 0.005 1.765 1.3476 0.005 1.77 1.3476 0.005 1.775 1.3476 0.005 1.78 1.3476 0.005 1.785 1.3476 0.005 1.79 1.3476 0.005 1.795 1.3476 0.005 1.8 1.3476 0.005 1.805 1.3476 0.005 1.81 1.3476 0.005 1.815 1.3476 0.005 1.82 1.3476 0.005 1.825 1.3476 0.005 1.83 1.3476 0.005 1.835 1.3476 0.005 1.84 1.3476 0.005 1.845 1.3476 0.005 1.85 1.3476 0.005 1.855 1.3476 0.005 1.86 1.3476 0.005 1.865 1.3476 0.005 1.87 1.3476 0.005 1.875 1.3476 0.005 1.88 1.3476 0.005 1.885 1.3476 0.005 1.89 1.3476 0.005 1.895 1.3476 0.005 1.9 1.3476 0.005 sptable-1.0.pre20180612/lib/onedstds/blackbody/i.dat000066400000000000000000000051351331023215600216620ustar00rootroot00000000000000# type blackbody # units microns # band I # weff 0.9 0.4 0.5209 0.005 0.405 0.5209 0.005 0.41 0.5209 0.005 0.415 0.5209 0.005 0.42 0.5209 0.005 0.425 0.5209 0.005 0.43 0.5209 0.005 0.435 0.5209 0.005 0.44 0.5209 0.005 0.445 0.5209 0.005 0.45 0.5209 0.005 0.455 0.5209 0.005 0.46 0.5209 0.005 0.465 0.5209 0.005 0.47 0.5209 0.005 0.475 0.5209 0.005 0.48 0.5209 0.005 0.485 0.5209 0.005 0.49 0.5209 0.005 0.495 0.5209 0.005 0.5 0.5209 0.005 0.505 0.5209 0.005 0.51 0.5209 0.005 0.515 0.5209 0.005 0.52 0.5209 0.005 0.525 0.5209 0.005 0.53 0.5209 0.005 0.535 0.5209 0.005 0.54 0.5209 0.005 0.545 0.5209 0.005 0.55 0.5209 0.005 0.555 0.5209 0.005 0.56 0.5209 0.005 0.565 0.5209 0.005 0.57 0.5209 0.005 0.575 0.5209 0.005 0.58 0.5209 0.005 0.585 0.5209 0.005 0.59 0.5209 0.005 0.595 0.5209 0.005 0.6 0.5209 0.005 0.605 0.5209 0.005 0.61 0.5209 0.005 0.615 0.5209 0.005 0.62 0.5209 0.005 0.625 0.5209 0.005 0.63 0.5209 0.005 0.635 0.5209 0.005 0.64 0.5209 0.005 0.645 0.5209 0.005 0.65 0.5209 0.005 0.655 0.5209 0.005 0.66 0.5209 0.005 0.665 0.5209 0.005 0.67 0.5209 0.005 0.675 0.5209 0.005 0.68 0.5209 0.005 0.685 0.5209 0.005 0.69 0.5209 0.005 0.695 0.5209 0.005 0.7 0.5209 0.005 0.705 0.5209 0.005 0.71 0.5209 0.005 0.715 0.5209 0.005 0.72 0.5209 0.005 0.725 0.5209 0.005 0.73 0.5209 0.005 0.735 0.5209 0.005 0.74 0.5209 0.005 0.745 0.5209 0.005 0.75 0.5209 0.005 0.755 0.5209 0.005 0.76 0.5209 0.005 0.765 0.5209 0.005 0.77 0.5209 0.005 0.775 0.5209 0.005 0.78 0.5209 0.005 0.785 0.5209 0.005 0.79 0.5209 0.005 0.795 0.5209 0.005 0.8 0.5209 0.005 0.805 0.5209 0.005 0.81 0.5209 0.005 0.815 0.5209 0.005 0.82 0.5209 0.005 0.825 0.5209 0.005 0.83 0.5209 0.005 0.835 0.5209 0.005 0.84 0.5209 0.005 0.845 0.5209 0.005 0.85 0.5209 0.005 0.855 0.5209 0.005 0.86 0.5209 0.005 0.865 0.5209 0.005 0.87 0.5209 0.005 0.875 0.5209 0.005 0.88 0.5209 0.005 0.885 0.5209 0.005 0.89 0.5209 0.005 0.895 0.5209 0.005 0.9 0.5209 0.005 0.905 0.5209 0.005 0.91 0.5209 0.005 0.915 0.5209 0.005 0.92 0.5209 0.005 0.925 0.5209 0.005 0.93 0.5209 0.005 0.935 0.5209 0.005 0.94 0.5209 0.005 0.945 0.5209 0.005 0.95 0.5209 0.005 0.955 0.5209 0.005 0.96 0.5209 0.005 0.965 0.5209 0.005 0.97 0.5209 0.005 0.975 0.5209 0.005 0.98 0.5209 0.005 0.985 0.5209 0.005 0.99 0.5209 0.005 0.995 0.5209 0.005 1. 0.5209 0.005 1.005 0.5209 0.005 1.01 0.5209 0.005 1.015 0.5209 0.005 1.02 0.5209 0.005 1.025 0.5209 0.005 1.03 0.5209 0.005 1.035 0.5209 0.005 1.04 0.5209 0.005 1.045 0.5209 0.005 1.05 0.5209 0.005 1.055 0.5209 0.005 1.06 0.5209 0.005 1.065 0.5209 0.005 1.07 0.5209 0.005 1.075 0.5209 0.005 1.08 0.5209 0.005 1.085 0.5209 0.005 1.09 0.5209 0.005 1.095 0.5209 0.005 1.1 0.5209 0.005 sptable-1.0.pre20180612/lib/onedstds/blackbody/j.dat000066400000000000000000000035751331023215600216710ustar00rootroot00000000000000# type blackbody # units microns # band J # weff 1.215 1. 0.8696 0.005 1.005 0.8696 0.005 1.01 0.8696 0.005 1.015 0.8696 0.005 1.02 0.8696 0.005 1.025 0.8696 0.005 1.03 0.8696 0.005 1.035 0.8696 0.005 1.04 0.8696 0.005 1.045 0.8696 0.005 1.05 0.8696 0.005 1.055 0.8696 0.005 1.06 0.8696 0.005 1.065 0.8696 0.005 1.07 0.8696 0.005 1.075 0.8696 0.005 1.08 0.8696 0.005 1.085 0.8696 0.005 1.09 0.8696 0.005 1.095 0.8696 0.005 1.1 0.8696 0.005 1.105 0.8696 0.005 1.11 0.8696 0.005 1.115 0.8696 0.005 1.12 0.8696 0.005 1.125 0.8696 0.005 1.13 0.8696 0.005 1.135 0.8696 0.005 1.14 0.8696 0.005 1.145 0.8696 0.005 1.15 0.8696 0.005 1.155 0.8696 0.005 1.16 0.8696 0.005 1.165 0.8696 0.005 1.17 0.8696 0.005 1.175 0.8696 0.005 1.18 0.8696 0.005 1.185 0.8696 0.005 1.19 0.8696 0.005 1.195 0.8696 0.005 1.2 0.8696 0.005 1.205 0.8696 0.005 1.21 0.8696 0.005 1.215 0.8696 0.005 1.22 0.8696 0.005 1.225 0.8696 0.005 1.23 0.8696 0.005 1.235 0.8696 0.005 1.24 0.8696 0.005 1.245 0.8696 0.005 1.25 0.8696 0.005 1.255 0.8696 0.005 1.26 0.8696 0.005 1.265 0.8696 0.005 1.27 0.8696 0.005 1.275 0.8696 0.005 1.28 0.8696 0.005 1.285 0.8696 0.005 1.29 0.8696 0.005 1.295 0.8696 0.005 1.3 0.8696 0.005 1.305 0.8696 0.005 1.31 0.8696 0.005 1.315 0.8696 0.005 1.32 0.8696 0.005 1.325 0.8696 0.005 1.33 0.8696 0.005 1.335 0.8696 0.005 1.34 0.8696 0.005 1.345 0.8696 0.005 1.35 0.8696 0.005 1.355 0.8696 0.005 1.36 0.8696 0.005 1.365 0.8696 0.005 1.37 0.8696 0.005 1.375 0.8696 0.005 1.38 0.8696 0.005 1.385 0.8696 0.005 1.39 0.8696 0.005 1.395 0.8696 0.005 1.4 0.8696 0.005 1.405 0.8696 0.005 1.41 0.8696 0.005 1.415 0.8696 0.005 1.42 0.8696 0.005 1.425 0.8696 0.005 1.43 0.8696 0.005 1.435 0.8696 0.005 1.44 0.8696 0.005 1.445 0.8696 0.005 1.45 0.8696 0.005 1.455 0.8696 0.005 1.46 0.8696 0.005 1.465 0.8696 0.005 1.47 0.8696 0.005 1.475 0.8696 0.005 1.48 0.8696 0.005 1.485 0.8696 0.005 1.49 0.8696 0.005 1.495 0.8696 0.005 1.5 0.8696 0.005 sptable-1.0.pre20180612/lib/onedstds/blackbody/k.dat000066400000000000000000000043561331023215600216700ustar00rootroot00000000000000# type blackbody # units microns # band K # weff 2.179 1.9 1.8583 0.005 1.905 1.8583 0.005 1.91 1.8583 0.005 1.915 1.8583 0.005 1.92 1.8583 0.005 1.925 1.8583 0.005 1.93 1.8583 0.005 1.935 1.8583 0.005 1.94 1.8583 0.005 1.945 1.8583 0.005 1.95 1.8583 0.005 1.955 1.8583 0.005 1.96 1.8583 0.005 1.965 1.8583 0.005 1.97 1.8583 0.005 1.975 1.8583 0.005 1.98 1.8583 0.005 1.985 1.8583 0.005 1.99 1.8583 0.005 1.995 1.8583 0.005 2. 1.8583 0.005 2.005 1.8583 0.005 2.01 1.8583 0.005 2.015 1.8583 0.005 2.02 1.8583 0.005 2.025 1.8583 0.005 2.03 1.8583 0.005 2.035 1.8583 0.005 2.04 1.8583 0.005 2.045 1.8583 0.005 2.05 1.8583 0.005 2.055 1.8583 0.005 2.06 1.8583 0.005 2.065 1.8583 0.005 2.07 1.8583 0.005 2.075 1.8583 0.005 2.08 1.8583 0.005 2.085 1.8583 0.005 2.09 1.8583 0.005 2.095 1.8583 0.005 2.1 1.8583 0.005 2.105 1.8583 0.005 2.11 1.8583 0.005 2.115 1.8583 0.005 2.12 1.8583 0.005 2.125 1.8583 0.005 2.13 1.8583 0.005 2.135 1.8583 0.005 2.14 1.8583 0.005 2.145 1.8583 0.005 2.15 1.8583 0.005 2.155 1.8583 0.005 2.16 1.8583 0.005 2.165 1.8583 0.005 2.17 1.8583 0.005 2.175 1.8583 0.005 2.18 1.8583 0.005 2.185 1.8583 0.005 2.19 1.8583 0.005 2.195 1.8583 0.005 2.2 1.8583 0.005 2.205 1.8583 0.005 2.21 1.8583 0.005 2.215 1.8583 0.005 2.22 1.8583 0.005 2.225 1.8583 0.005 2.23 1.8583 0.005 2.235 1.8583 0.005 2.24 1.8583 0.005 2.245 1.8583 0.005 2.25 1.8583 0.005 2.255 1.8583 0.005 2.26 1.8583 0.005 2.265 1.8583 0.005 2.27 1.8583 0.005 2.275 1.8583 0.005 2.28 1.8583 0.005 2.285 1.8583 0.005 2.29 1.8583 0.005 2.295 1.8583 0.005 2.3 1.8583 0.005 2.305 1.8583 0.005 2.31 1.8583 0.005 2.315 1.8583 0.005 2.32 1.8583 0.005 2.325 1.8583 0.005 2.33 1.8583 0.005 2.335 1.8583 0.005 2.34 1.8583 0.005 2.345 1.8583 0.005 2.35 1.8583 0.005 2.355 1.8583 0.005 2.36 1.8583 0.005 2.365 1.8583 0.005 2.37 1.8583 0.005 2.375 1.8583 0.005 2.38 1.8583 0.005 2.385 1.8583 0.005 2.39 1.8583 0.005 2.395 1.8583 0.005 2.4 1.8583 0.005 2.405 1.8583 0.005 2.41 1.8583 0.005 2.415 1.8583 0.005 2.42 1.8583 0.005 2.425 1.8583 0.005 2.43 1.8583 0.005 2.435 1.8583 0.005 2.44 1.8583 0.005 2.445 1.8583 0.005 2.45 1.8583 0.005 2.455 1.8583 0.005 2.46 1.8583 0.005 2.465 1.8583 0.005 2.47 1.8583 0.005 2.475 1.8583 0.005 2.48 1.8583 0.005 2.485 1.8583 0.005 2.49 1.8583 0.005 2.495 1.8583 0.005 2.5 1.8583 0.005 sptable-1.0.pre20180612/lib/onedstds/blackbody/l.dat000066400000000000000000000121651331023215600216660ustar00rootroot00000000000000# type blackbody # units microns # band L # weff 3.547 2.9 2.7955 0.005 2.905 2.7955 0.005 2.91 2.7955 0.005 2.915 2.7955 0.005 2.92 2.7955 0.005 2.925 2.7955 0.005 2.93 2.7955 0.005 2.935 2.7955 0.005 2.94 2.7955 0.005 2.945 2.7955 0.005 2.95 2.7955 0.005 2.955 2.7955 0.005 2.96 2.7955 0.005 2.965 2.7955 0.005 2.97 2.7955 0.005 2.975 2.7955 0.005 2.98 2.7955 0.005 2.985 2.7955 0.005 2.99 2.7955 0.005 2.995 2.7955 0.005 3. 2.7955 0.005 3.005 2.7955 0.005 3.01 2.7955 0.005 3.015 2.7955 0.005 3.02 2.7955 0.005 3.025 2.7955 0.005 3.03 2.7955 0.005 3.035 2.7955 0.005 3.04 2.7955 0.005 3.045 2.7955 0.005 3.05 2.7955 0.005 3.055 2.7955 0.005 3.06 2.7955 0.005 3.065 2.7955 0.005 3.07 2.7955 0.005 3.075 2.7955 0.005 3.08 2.7955 0.005 3.085 2.7955 0.005 3.09 2.7955 0.005 3.095 2.7955 0.005 3.1 2.7955 0.005 3.105 2.7955 0.005 3.11 2.7955 0.005 3.115 2.7955 0.005 3.12 2.7955 0.005 3.125 2.7955 0.005 3.13 2.7955 0.005 3.135 2.7955 0.005 3.14 2.7955 0.005 3.145 2.7955 0.005 3.15 2.7955 0.005 3.155 2.7955 0.005 3.16 2.7955 0.005 3.165 2.7955 0.005 3.17 2.7955 0.005 3.175 2.7955 0.005 3.18 2.7955 0.005 3.185 2.7955 0.005 3.19 2.7955 0.005 3.195 2.7955 0.005 3.2 2.7955 0.005 3.205 2.7955 0.005 3.21 2.7955 0.005 3.215 2.7955 0.005 3.22 2.7955 0.005 3.225 2.7955 0.005 3.23 2.7955 0.005 3.235 2.7955 0.005 3.24 2.7955 0.005 3.245 2.7955 0.005 3.25 2.7955 0.005 3.255 2.7955 0.005 3.26 2.7955 0.005 3.265 2.7955 0.005 3.27 2.7955 0.005 3.275 2.7955 0.005 3.28 2.7955 0.005 3.285 2.7955 0.005 3.29 2.7955 0.005 3.295 2.7955 0.005 3.3 2.7955 0.005 3.305 2.7955 0.005 3.31 2.7955 0.005 3.315 2.7955 0.005 3.32 2.7955 0.005 3.325 2.7955 0.005 3.33 2.7955 0.005 3.335 2.7955 0.005 3.34 2.7955 0.005 3.345 2.7955 0.005 3.35 2.7955 0.005 3.355 2.7955 0.005 3.36 2.7955 0.005 3.365 2.7955 0.005 3.37 2.7955 0.005 3.375 2.7955 0.005 3.38 2.7955 0.005 3.385 2.7955 0.005 3.39 2.7955 0.005 3.395 2.7955 0.005 3.4 2.7955 0.005 3.405 2.7955 0.005 3.41 2.7955 0.005 3.415 2.7955 0.005 3.42 2.7955 0.005 3.425 2.7955 0.005 3.43 2.7955 0.005 3.435 2.7955 0.005 3.44 2.7955 0.005 3.445 2.7955 0.005 3.45 2.7955 0.005 3.455 2.7955 0.005 3.46 2.7955 0.005 3.465 2.7955 0.005 3.47 2.7955 0.005 3.475 2.7955 0.005 3.48 2.7955 0.005 3.485 2.7955 0.005 3.49 2.7955 0.005 3.495 2.7955 0.005 3.5 2.7955 0.005 3.505 2.7955 0.005 3.51 2.7955 0.005 3.515 2.7955 0.005 3.52 2.7955 0.005 3.525 2.7955 0.005 3.53 2.7955 0.005 3.535 2.7955 0.005 3.54 2.7955 0.005 3.545 2.7955 0.005 3.55 2.7955 0.005 3.555 2.7955 0.005 3.56 2.7955 0.005 3.565 2.7955 0.005 3.57 2.7955 0.005 3.575 2.7955 0.005 3.58 2.7955 0.005 3.585 2.7955 0.005 3.59 2.7955 0.005 3.595 2.7955 0.005 3.6 2.7955 0.005 3.605 2.7955 0.005 3.61 2.7955 0.005 3.615 2.7955 0.005 3.62 2.7955 0.005 3.625 2.7955 0.005 3.63 2.7955 0.005 3.635 2.7955 0.005 3.64 2.7955 0.005 3.645 2.7955 0.005 3.65 2.7955 0.005 3.655 2.7955 0.005 3.66 2.7955 0.005 3.665 2.7955 0.005 3.67 2.7955 0.005 3.675 2.7955 0.005 3.68 2.7955 0.005 3.685 2.7955 0.005 3.69 2.7955 0.005 3.695 2.7955 0.005 3.7 2.7955 0.005 3.705 2.7955 0.005 3.71 2.7955 0.005 3.715 2.7955 0.005 3.72 2.7955 0.005 3.725 2.7955 0.005 3.73 2.7955 0.005 3.735 2.7955 0.005 3.74 2.7955 0.005 3.745 2.7955 0.005 3.75 2.7955 0.005 3.755 2.7955 0.005 3.76 2.7955 0.005 3.765 2.7955 0.005 3.77 2.7955 0.005 3.775 2.7955 0.005 3.78 2.7955 0.005 3.785 2.7955 0.005 3.79 2.7955 0.005 3.795 2.7955 0.005 3.8 2.7955 0.005 3.805 2.7955 0.005 3.81 2.7955 0.005 3.815 2.7955 0.005 3.82 2.7955 0.005 3.825 2.7955 0.005 3.83 2.7955 0.005 3.835 2.7955 0.005 3.84 2.7955 0.005 3.845 2.7955 0.005 3.85 2.7955 0.005 3.855 2.7955 0.005 3.86 2.7955 0.005 3.865 2.7955 0.005 3.87 2.7955 0.005 3.875 2.7955 0.005 3.88 2.7955 0.005 3.885 2.7955 0.005 3.89 2.7955 0.005 3.895 2.7955 0.005 3.9 2.7955 0.005 3.905 2.7955 0.005 3.91 2.7955 0.005 3.915 2.7955 0.005 3.92 2.7955 0.005 3.925 2.7955 0.005 3.93 2.7955 0.005 3.935 2.7955 0.005 3.94 2.7955 0.005 3.945 2.7955 0.005 3.95 2.7955 0.005 3.955 2.7955 0.005 3.96 2.7955 0.005 3.965 2.7955 0.005 3.97 2.7955 0.005 3.975 2.7955 0.005 3.98 2.7955 0.005 3.985 2.7955 0.005 3.99 2.7955 0.005 3.995 2.7955 0.005 4. 2.7955 0.005 4.005 2.7955 0.005 4.01 2.7955 0.005 4.015 2.7955 0.005 4.02 2.7955 0.005 4.025 2.7955 0.005 4.03 2.7955 0.005 4.035 2.7955 0.005 4.04 2.7955 0.005 4.045 2.7955 0.005 4.05 2.7955 0.005 4.055 2.7955 0.005 4.06 2.7955 0.005 4.065 2.7955 0.005 4.07 2.7955 0.005 4.075 2.7955 0.005 4.08 2.7955 0.005 4.085 2.7955 0.005 4.09 2.7955 0.005 4.095 2.7955 0.005 4.1 2.7955 0.005 4.105 2.7955 0.005 4.11 2.7955 0.005 4.115 2.7955 0.005 4.12 2.7955 0.005 4.125 2.7955 0.005 4.13 2.7955 0.005 4.135 2.7955 0.005 4.14 2.7955 0.005 4.145 2.7955 0.005 4.15 2.7955 0.005 4.155 2.7955 0.005 4.16 2.7955 0.005 4.165 2.7955 0.005 4.17 2.7955 0.005 4.175 2.7955 0.005 4.18 2.7955 0.005 4.185 2.7955 0.005 4.19 2.7955 0.005 4.195 2.7955 0.005 4.2 2.7955 0.005 4.205 2.7955 0.005 4.21 2.7955 0.005 4.215 2.7955 0.005 4.22 2.7955 0.005 4.225 2.7955 0.005 4.23 2.7955 0.005 4.235 2.7955 0.005 4.24 2.7955 0.005 4.245 2.7955 0.005 4.25 2.7955 0.005 4.255 2.7955 0.005 4.26 2.7955 0.005 4.265 2.7955 0.005 4.27 2.7955 0.005 4.275 2.7955 0.005 4.28 2.7955 0.005 4.285 2.7955 0.005 4.29 2.7955 0.005 4.295 2.7955 0.005 4.3 2.7955 0.005 sptable-1.0.pre20180612/lib/onedstds/blackbody/lprime.dat000066400000000000000000000121721331023215600227210ustar00rootroot00000000000000# type blackbody # units microns # band Lprime # weff 3.761 2.9 2.9131 0.005 2.905 2.9131 0.005 2.91 2.9131 0.005 2.915 2.9131 0.005 2.92 2.9131 0.005 2.925 2.9131 0.005 2.93 2.9131 0.005 2.935 2.9131 0.005 2.94 2.9131 0.005 2.945 2.9131 0.005 2.95 2.9131 0.005 2.955 2.9131 0.005 2.96 2.9131 0.005 2.965 2.9131 0.005 2.97 2.9131 0.005 2.975 2.9131 0.005 2.98 2.9131 0.005 2.985 2.9131 0.005 2.99 2.9131 0.005 2.995 2.9131 0.005 3. 2.9131 0.005 3.005 2.9131 0.005 3.01 2.9131 0.005 3.015 2.9131 0.005 3.02 2.9131 0.005 3.025 2.9131 0.005 3.03 2.9131 0.005 3.035 2.9131 0.005 3.04 2.9131 0.005 3.045 2.9131 0.005 3.05 2.9131 0.005 3.055 2.9131 0.005 3.06 2.9131 0.005 3.065 2.9131 0.005 3.07 2.9131 0.005 3.075 2.9131 0.005 3.08 2.9131 0.005 3.085 2.9131 0.005 3.09 2.9131 0.005 3.095 2.9131 0.005 3.1 2.9131 0.005 3.105 2.9131 0.005 3.11 2.9131 0.005 3.115 2.9131 0.005 3.12 2.9131 0.005 3.125 2.9131 0.005 3.13 2.9131 0.005 3.135 2.9131 0.005 3.14 2.9131 0.005 3.145 2.9131 0.005 3.15 2.9131 0.005 3.155 2.9131 0.005 3.16 2.9131 0.005 3.165 2.9131 0.005 3.17 2.9131 0.005 3.175 2.9131 0.005 3.18 2.9131 0.005 3.185 2.9131 0.005 3.19 2.9131 0.005 3.195 2.9131 0.005 3.2 2.9131 0.005 3.205 2.9131 0.005 3.21 2.9131 0.005 3.215 2.9131 0.005 3.22 2.9131 0.005 3.225 2.9131 0.005 3.23 2.9131 0.005 3.235 2.9131 0.005 3.24 2.9131 0.005 3.245 2.9131 0.005 3.25 2.9131 0.005 3.255 2.9131 0.005 3.26 2.9131 0.005 3.265 2.9131 0.005 3.27 2.9131 0.005 3.275 2.9131 0.005 3.28 2.9131 0.005 3.285 2.9131 0.005 3.29 2.9131 0.005 3.295 2.9131 0.005 3.3 2.9131 0.005 3.305 2.9131 0.005 3.31 2.9131 0.005 3.315 2.9131 0.005 3.32 2.9131 0.005 3.325 2.9131 0.005 3.33 2.9131 0.005 3.335 2.9131 0.005 3.34 2.9131 0.005 3.345 2.9131 0.005 3.35 2.9131 0.005 3.355 2.9131 0.005 3.36 2.9131 0.005 3.365 2.9131 0.005 3.37 2.9131 0.005 3.375 2.9131 0.005 3.38 2.9131 0.005 3.385 2.9131 0.005 3.39 2.9131 0.005 3.395 2.9131 0.005 3.4 2.9131 0.005 3.405 2.9131 0.005 3.41 2.9131 0.005 3.415 2.9131 0.005 3.42 2.9131 0.005 3.425 2.9131 0.005 3.43 2.9131 0.005 3.435 2.9131 0.005 3.44 2.9131 0.005 3.445 2.9131 0.005 3.45 2.9131 0.005 3.455 2.9131 0.005 3.46 2.9131 0.005 3.465 2.9131 0.005 3.47 2.9131 0.005 3.475 2.9131 0.005 3.48 2.9131 0.005 3.485 2.9131 0.005 3.49 2.9131 0.005 3.495 2.9131 0.005 3.5 2.9131 0.005 3.505 2.9131 0.005 3.51 2.9131 0.005 3.515 2.9131 0.005 3.52 2.9131 0.005 3.525 2.9131 0.005 3.53 2.9131 0.005 3.535 2.9131 0.005 3.54 2.9131 0.005 3.545 2.9131 0.005 3.55 2.9131 0.005 3.555 2.9131 0.005 3.56 2.9131 0.005 3.565 2.9131 0.005 3.57 2.9131 0.005 3.575 2.9131 0.005 3.58 2.9131 0.005 3.585 2.9131 0.005 3.59 2.9131 0.005 3.595 2.9131 0.005 3.6 2.9131 0.005 3.605 2.9131 0.005 3.61 2.9131 0.005 3.615 2.9131 0.005 3.62 2.9131 0.005 3.625 2.9131 0.005 3.63 2.9131 0.005 3.635 2.9131 0.005 3.64 2.9131 0.005 3.645 2.9131 0.005 3.65 2.9131 0.005 3.655 2.9131 0.005 3.66 2.9131 0.005 3.665 2.9131 0.005 3.67 2.9131 0.005 3.675 2.9131 0.005 3.68 2.9131 0.005 3.685 2.9131 0.005 3.69 2.9131 0.005 3.695 2.9131 0.005 3.7 2.9131 0.005 3.705 2.9131 0.005 3.71 2.9131 0.005 3.715 2.9131 0.005 3.72 2.9131 0.005 3.725 2.9131 0.005 3.73 2.9131 0.005 3.735 2.9131 0.005 3.74 2.9131 0.005 3.745 2.9131 0.005 3.75 2.9131 0.005 3.755 2.9131 0.005 3.76 2.9131 0.005 3.765 2.9131 0.005 3.77 2.9131 0.005 3.775 2.9131 0.005 3.78 2.9131 0.005 3.785 2.9131 0.005 3.79 2.9131 0.005 3.795 2.9131 0.005 3.8 2.9131 0.005 3.805 2.9131 0.005 3.81 2.9131 0.005 3.815 2.9131 0.005 3.82 2.9131 0.005 3.825 2.9131 0.005 3.83 2.9131 0.005 3.835 2.9131 0.005 3.84 2.9131 0.005 3.845 2.9131 0.005 3.85 2.9131 0.005 3.855 2.9131 0.005 3.86 2.9131 0.005 3.865 2.9131 0.005 3.87 2.9131 0.005 3.875 2.9131 0.005 3.88 2.9131 0.005 3.885 2.9131 0.005 3.89 2.9131 0.005 3.895 2.9131 0.005 3.9 2.9131 0.005 3.905 2.9131 0.005 3.91 2.9131 0.005 3.915 2.9131 0.005 3.92 2.9131 0.005 3.925 2.9131 0.005 3.93 2.9131 0.005 3.935 2.9131 0.005 3.94 2.9131 0.005 3.945 2.9131 0.005 3.95 2.9131 0.005 3.955 2.9131 0.005 3.96 2.9131 0.005 3.965 2.9131 0.005 3.97 2.9131 0.005 3.975 2.9131 0.005 3.98 2.9131 0.005 3.985 2.9131 0.005 3.99 2.9131 0.005 3.995 2.9131 0.005 4. 2.9131 0.005 4.005 2.9131 0.005 4.01 2.9131 0.005 4.015 2.9131 0.005 4.02 2.9131 0.005 4.025 2.9131 0.005 4.03 2.9131 0.005 4.035 2.9131 0.005 4.04 2.9131 0.005 4.045 2.9131 0.005 4.05 2.9131 0.005 4.055 2.9131 0.005 4.06 2.9131 0.005 4.065 2.9131 0.005 4.07 2.9131 0.005 4.075 2.9131 0.005 4.08 2.9131 0.005 4.085 2.9131 0.005 4.09 2.9131 0.005 4.095 2.9131 0.005 4.1 2.9131 0.005 4.105 2.9131 0.005 4.11 2.9131 0.005 4.115 2.9131 0.005 4.12 2.9131 0.005 4.125 2.9131 0.005 4.13 2.9131 0.005 4.135 2.9131 0.005 4.14 2.9131 0.005 4.145 2.9131 0.005 4.15 2.9131 0.005 4.155 2.9131 0.005 4.16 2.9131 0.005 4.165 2.9131 0.005 4.17 2.9131 0.005 4.175 2.9131 0.005 4.18 2.9131 0.005 4.185 2.9131 0.005 4.19 2.9131 0.005 4.195 2.9131 0.005 4.2 2.9131 0.005 4.205 2.9131 0.005 4.21 2.9131 0.005 4.215 2.9131 0.005 4.22 2.9131 0.005 4.225 2.9131 0.005 4.23 2.9131 0.005 4.235 2.9131 0.005 4.24 2.9131 0.005 4.245 2.9131 0.005 4.25 2.9131 0.005 4.255 2.9131 0.005 4.26 2.9131 0.005 4.265 2.9131 0.005 4.27 2.9131 0.005 4.275 2.9131 0.005 4.28 2.9131 0.005 4.285 2.9131 0.005 4.29 2.9131 0.005 4.295 2.9131 0.005 4.3 2.9131 0.005 sptable-1.0.pre20180612/lib/onedstds/blackbody/m.dat000066400000000000000000000072621331023215600216710ustar00rootroot00000000000000# type blackbody # units microns # band M # weff 4.769 4.4 3.3892 0.005 4.405 3.3892 0.005 4.41 3.3892 0.005 4.415 3.3892 0.005 4.42 3.3892 0.005 4.425 3.3892 0.005 4.43 3.3892 0.005 4.435 3.3892 0.005 4.44 3.3892 0.005 4.445 3.3892 0.005 4.45 3.3892 0.005 4.455 3.3892 0.005 4.46 3.3892 0.005 4.465 3.3892 0.005 4.47 3.3892 0.005 4.475 3.3892 0.005 4.48 3.3892 0.005 4.485 3.3892 0.005 4.49 3.3892 0.005 4.495 3.3892 0.005 4.5 3.3892 0.005 4.505 3.3892 0.005 4.51 3.3892 0.005 4.515 3.3892 0.005 4.52 3.3892 0.005 4.525 3.3892 0.005 4.53 3.3892 0.005 4.535 3.3892 0.005 4.54 3.3892 0.005 4.545 3.3892 0.005 4.55 3.3892 0.005 4.555 3.3892 0.005 4.56 3.3892 0.005 4.565 3.3892 0.005 4.57 3.3892 0.005 4.575 3.3892 0.005 4.58 3.3892 0.005 4.585 3.3892 0.005 4.59 3.3892 0.005 4.595 3.3892 0.005 4.6 3.3892 0.005 4.605 3.3892 0.005 4.61 3.3892 0.005 4.615 3.3892 0.005 4.62 3.3892 0.005 4.625 3.3892 0.005 4.63 3.3892 0.005 4.635 3.3892 0.005 4.64 3.3892 0.005 4.645 3.3892 0.005 4.65 3.3892 0.005 4.655 3.3892 0.005 4.66 3.3892 0.005 4.665 3.3892 0.005 4.67 3.3892 0.005 4.675 3.3892 0.005 4.68 3.3892 0.005 4.685 3.3892 0.005 4.69 3.3892 0.005 4.695 3.3892 0.005 4.7 3.3892 0.005 4.705 3.3892 0.005 4.71 3.3892 0.005 4.715 3.3892 0.005 4.72 3.3892 0.005 4.725 3.3892 0.005 4.73 3.3892 0.005 4.735 3.3892 0.005 4.74 3.3892 0.005 4.745 3.3892 0.005 4.75 3.3892 0.005 4.755 3.3892 0.005 4.76 3.3892 0.005 4.765 3.3892 0.005 4.77 3.3892 0.005 4.775 3.3892 0.005 4.78 3.3892 0.005 4.785 3.3892 0.005 4.79 3.3892 0.005 4.795 3.3892 0.005 4.8 3.3892 0.005 4.805 3.3892 0.005 4.81 3.3892 0.005 4.815 3.3892 0.005 4.82 3.3892 0.005 4.825 3.3892 0.005 4.83 3.3892 0.005 4.835 3.3892 0.005 4.84 3.3892 0.005 4.845 3.3892 0.005 4.85 3.3892 0.005 4.855 3.3892 0.005 4.86 3.3892 0.005 4.865 3.3892 0.005 4.87 3.3892 0.005 4.875 3.3892 0.005 4.88 3.3892 0.005 4.885 3.3892 0.005 4.89 3.3892 0.005 4.895 3.3892 0.005 4.9 3.3892 0.005 4.905 3.3892 0.005 4.91 3.3892 0.005 4.915 3.3892 0.005 4.92 3.3892 0.005 4.925 3.3892 0.005 4.93 3.3892 0.005 4.935 3.3892 0.005 4.94 3.3892 0.005 4.945 3.3892 0.005 4.95 3.3892 0.005 4.955 3.3892 0.005 4.96 3.3892 0.005 4.965 3.3892 0.005 4.97 3.3892 0.005 4.975 3.3892 0.005 4.98 3.3892 0.005 4.985 3.3892 0.005 4.99 3.3892 0.005 4.995 3.3892 0.005 5. 3.3892 0.005 5.005 3.3892 0.005 5.01 3.3892 0.005 5.015 3.3892 0.005 5.02 3.3892 0.005 5.025 3.3892 0.005 5.03 3.3892 0.005 5.035 3.3892 0.005 5.04 3.3892 0.005 5.045 3.3892 0.005 5.05 3.3892 0.005 5.055 3.3892 0.005 5.06 3.3892 0.005 5.065 3.3892 0.005 5.07 3.3892 0.005 5.075 3.3892 0.005 5.08 3.3892 0.005 5.085 3.3892 0.005 5.09 3.3892 0.005 5.095 3.3892 0.005 5.1 3.3892 0.005 5.105 3.3892 0.005 5.11 3.3892 0.005 5.115 3.3892 0.005 5.12 3.3892 0.005 5.125 3.3892 0.005 5.13 3.3892 0.005 5.135 3.3892 0.005 5.14 3.3892 0.005 5.145 3.3892 0.005 5.15 3.3892 0.005 5.155 3.3892 0.005 5.16 3.3892 0.005 5.165 3.3892 0.005 5.17 3.3892 0.005 5.175 3.3892 0.005 5.18 3.3892 0.005 5.185 3.3892 0.005 5.19 3.3892 0.005 5.195 3.3892 0.005 5.2 3.3892 0.005 5.205 3.3892 0.005 5.21 3.3892 0.005 5.215 3.3892 0.005 5.22 3.3892 0.005 5.225 3.3892 0.005 5.23 3.3892 0.005 5.235 3.3892 0.005 5.24 3.3892 0.005 5.245 3.3892 0.005 5.25 3.3892 0.005 5.255 3.3892 0.005 5.26 3.3892 0.005 5.265 3.3892 0.005 5.27 3.3892 0.005 5.275 3.3892 0.005 5.28 3.3892 0.005 5.285 3.3892 0.005 5.29 3.3892 0.005 5.295 3.3892 0.005 5.3 3.3892 0.005 5.305 3.3892 0.005 5.31 3.3892 0.005 5.315 3.3892 0.005 5.32 3.3892 0.005 5.325 3.3892 0.005 5.33 3.3892 0.005 5.335 3.3892 0.005 5.34 3.3892 0.005 5.345 3.3892 0.005 5.35 3.3892 0.005 5.355 3.3892 0.005 5.36 3.3892 0.005 5.365 3.3892 0.005 5.37 3.3892 0.005 5.375 3.3892 0.005 5.38 3.3892 0.005 5.385 3.3892 0.005 5.39 3.3892 0.005 5.395 3.3892 0.005 5.4 3.3892 0.005 sptable-1.0.pre20180612/lib/onedstds/blackbody/mkbbcal.cl000066400000000000000000000011321331023215600226440ustar00rootroot00000000000000procedure mkbbcal (band, w1, w2, dw, weff, mab) string band {prompt="Bandpass"} real w1 {prompt="Starting wavelength (um)"} real w2 {prompt="Ending wavelength (um)"} real dw {prompt="Wavelength step (um)"} real weff {prompt="Effective wavelength (um)"} real mab {prompt="M_AB of Vega at eff. wavelength"} begin string b real x1, x2, dx, x, m b = band x1 = w1 x2 = w2 dx = dw x = weff m = mab printf ("# type blackbody\n") printf ("# units microns\n") printf ("# band %s\n", b) printf ("# weff %g\n\n", x) for (x=x1; x<=x2; x=x+dx) printf ("%.5g\t%.6g\t%g\n", x, m, dx) end sptable-1.0.pre20180612/lib/onedstds/blackbody/mkbbdat.cl000066400000000000000000000011261331023215600226600ustar00rootroot00000000000000del [ubvrijhklm].dat,lprime.dat mkbbcal U 0.3 1.0 0.005 0.365 0.7056 > u.dat mkbbcal B 0.3 1.0 0.005 0.440 -0.1752 > b.dat mkbbcal V 0.3 1.0 0.005 0.550 -0.0597 > v.dat mkbbcal R 0.4 1.1 0.005 0.700 0.2666 > r.dat mkbbcal I 0.4 1.1 0.005 0.900 0.5209 > i.dat mkbbcal J 1.0 1.5 0.005 1.215 0.8696 > j.dat mkbbcal H 1.4 1.9 0.005 1.654 1.3476 > h.dat mkbbcal K 1.9 2.5 0.005 2.179 1.8583 > k.dat mkbbcal L 2.9 4.3 0.005 3.547 2.7955 > l.dat mkbbcal Lprime 2.9 4.3 0.005 3.761 2.9131 > lprime.dat mkbbcal M 4.4 5.4 0.005 4.769 3.3892 > m.dat sptable-1.0.pre20180612/lib/onedstds/blackbody/params.dat000066400000000000000000000211021331023215600227050ustar00rootroot00000000000000# The default for the spectral type given Teff should be last. # Type Teff V J H K L Lprime M O9I 32500 0.00 0.64 0.69 0.82 0.85 INDEF INDEF B0I 26000 0.00 0.55 0.59 0.69 0.76 INDEF INDEF B1I 20700 0.00 0.46 0.49 0.55 0.62 INDEF INDEF B2I 17800 0.00 0.36 0.40 0.40 0.47 INDEF INDEF B3I 15600 0.00 0.28 0.31 0.28 0.33 INDEF INDEF B4I 13900 0.00 0.20 0.21 0.20 0.21 INDEF INDEF B5I 13400 0.00 0.14 0.13 0.13 0.11 INDEF INDEF B6I 12700 0.00 0.09 0.05 0.07 0.04 INDEF INDEF B7I 12000 0.00 0.03 -0.03 -0.01 -0.05 INDEF INDEF B8I 11200 0.00 -0.02 -0.09 -0.07 -0.12 INDEF INDEF B9I 10500 0.00 -0.07 -0.15 -0.13 -0.19 INDEF INDEF A0I 9730 0.00 -0.12 -0.21 -0.19 -0.26 INDEF INDEF A1I 9230 0.00 -0.16 -0.27 -0.26 -0.33 INDEF INDEF A2I 9080 0.00 -0.21 -0.33 -0.32 -0.40 INDEF INDEF A3I 8800 0.00 -0.27 -0.39 -0.39 -0.46 INDEF INDEF A4I 8620 0.00 -0.30 -0.43 -0.44 -0.51 INDEF INDEF A5I 8510 0.00 -0.33 -0.46 -0.48 -0.55 INDEF INDEF A6I 8350 0.00 -0.34 -0.47 -0.49 -0.56 INDEF INDEF A7I 8210 0.00 -0.35 -0.49 -0.51 -0.57 INDEF INDEF A8I 8050 0.00 -0.36 -0.50 -0.53 -0.59 INDEF INDEF A9I 7855 0.00 -0.38 -0.52 -0.56 -0.62 INDEF INDEF F0I 7700 0.00 -0.45 -0.60 -0.64 -0.70 INDEF INDEF F1I 7445 0.00 -0.44 -0.59 -0.64 -0.70 INDEF INDEF F2I 7170 0.00 -0.52 -0.70 -0.75 -0.81 INDEF INDEF F3I 7025 0.00 -0.55 -0.74 -0.79 -0.86 INDEF INDEF F4I 6825 0.00 -0.63 -0.84 -0.89 -0.96 INDEF INDEF F5I 6640 0.00 -0.65 -0.87 -0.93 -1.00 INDEF INDEF F6I 6435 0.00 -0.79 -1.05 -1.11 -1.18 INDEF INDEF F7I 6235 0.00 -0.87 -1.15 -1.22 -1.29 INDEF INDEF F8I 6100 0.00 -0.86 -1.14 -1.21 -1.28 INDEF INDEF F9I 5815 0.00 -0.99 -1.31 -1.38 -1.46 INDEF INDEF G0I 5510 0.00 -1.03 -1.36 -1.44 -1.52 INDEF INDEF G1I 5365 0.00 -1.05 -1.39 -1.47 -1.55 INDEF INDEF G2I 5155 0.00 -1.06 -1.41 -1.49 -1.57 INDEF INDEF G3I 4980 0.00 -1.20 -1.58 -1.67 -1.75 INDEF INDEF G4I 4820 0.00 -1.08 -1.44 -1.54 -1.61 INDEF INDEF G5I 4710 0.00 -1.11 -1.48 -1.58 -1.66 INDEF INDEF G6I 4635 0.00 -1.16 -1.54 -1.65 -1.72 INDEF INDEF G7I 4585 0.00 -1.24 -1.64 -1.75 -1.83 INDEF INDEF G8I 4590 0.00 -1.45 -1.88 -1.99 -2.08 INDEF INDEF G9I 4505 0.00 -1.48 -1.93 -2.05 -2.14 INDEF INDEF K0I 4420 0.00 -1.57 -2.03 -2.15 -2.25 INDEF INDEF K1I 4330 0.00 -1.66 -2.15 -2.28 -2.39 INDEF INDEF K2I 4260 0.00 -1.78 -2.30 -2.43 -2.55 INDEF INDEF K3I 4130 0.00 -2.18 -2.77 -2.90 -3.05 INDEF INDEF K4I 3990 0.00 -2.28 -2.89 -3.03 -3.19 INDEF INDEF K5I 3850 0.00 -2.69 -3.36 -3.50 -3.68 INDEF INDEF K6I 3765 0.00 -2.54 -3.21 -3.36 -3.54 INDEF INDEF K7I 3695 0.00 -2.67 -3.36 -3.53 -3.72 INDEF INDEF M0I 3650 0.00 -2.89 -3.62 -3.80 -4.00 INDEF INDEF M1I 3550 0.00 -2.97 -3.70 -3.90 -4.12 INDEF INDEF M2I 3450 0.00 -3.15 -3.88 -4.10 -4.34 INDEF INDEF M3I 3200 0.00 -3.62 -4.36 -4.60 -4.86 INDEF INDEF M4I 2980 0.00 -4.16 -4.94 -5.20 -5.48 INDEF INDEF G0III 5910 0.00 -1.31 -1.68 -1.75 -1.79 -1.80 -1.75 G1III 5600 0.00 -1.35 -1.73 -1.80 -1.85 -1.86 -1.79 G2III 5405 0.00 -1.41 -1.81 -1.88 -1.93 -1.94 -1.87 G3III 5280 0.00 -1.46 -1.90 -1.97 -2.02 -2.03 -1.96 G4III 5190 0.00 -1.50 -1.97 -2.05 -2.10 -2.11 -2.04 G5III 5115 0.00 -1.53 -2.02 -2.11 -2.16 -2.17 -2.10 G6III 5050 0.00 -1.56 -2.06 -2.15 -2.21 -2.22 -2.13 G7III 5000 0.00 -1.57 -2.07 -2.17 -2.22 -2.23 -2.15 G8III 4960 0.00 -1.57 -2.07 -2.16 -2.22 -2.23 -2.14 G9III 4900 0.00 -1.60 -2.11 -2.20 -2.27 -2.28 -2.17 K0III 4810 0.00 -1.67 -2.21 -2.31 -2.38 -2.39 -2.28 K1III 4620 0.00 -1.82 -2.40 -2.50 -2.58 -2.59 -2.46 K2III 4500 0.00 -1.95 -2.58 -2.70 -2.79 -2.80 -2.65 K3III 4320 0.00 -2.18 -2.86 -3.00 -3.10 -3.12 -2.94 K4III 4080 0.00 -2.38 -3.11 -3.26 -3.37 -3.40 -3.19 K5III 3980 0.00 -2.64 -3.43 -3.60 -3.72 -3.76 -3.52 K6III 3910 0.00 -2.70 -3.50 -3.68 -3.80 -3.84 -3.60 K7III 3855 0.00 -2.81 -3.62 -3.81 -3.93 -3.98 -3.72 M0III 3820 0.00 -2.83 -3.66 -3.85 -3.97 -4.02 -3.76 M1III 3780 0.00 -2.99 -3.84 -4.05 -4.18 -4.22 -3.95 M2III 3710 0.00 -3.21 -4.08 -4.30 -4.45 -4.49 -4.18 M3III 3630 0.00 -3.50 -4.40 -4.64 -4.81 -4.84 -4.51 M4III 3560 0.00 -3.92 -4.85 -5.10 -5.28 -5.31 -4.96 M5III 3420 0.00 -4.72 -5.67 -5.96 -6.16 -6.18 -5.81 M6III 3250 0.00 -5.58 -6.54 -6.84 INDEF INDEF INDEF O9V 35900 0.00 0.69 0.83 0.87 0.93 INDEF INDEF B0V 31500 0.00 0.67 0.79 0.83 0.89 INDEF INDEF B1V 25600 0.00 0.61 0.71 0.74 0.79 INDEF INDEF B2V 22300 0.00 0.54 0.63 0.66 0.71 INDEF INDEF B3V 19000 0.00 0.46 0.54 0.56 0.61 INDEF INDEF B4V 17200 0.00 0.40 0.47 0.49 0.54 INDEF INDEF B5V 15400 0.00 0.35 0.41 0.42 0.46 INDEF INDEF B6V 14100 0.00 0.30 0.35 0.36 0.40 INDEF INDEF B7V 13000 0.00 0.25 0.28 0.29 0.33 INDEF INDEF B8V 11800 0.00 0.21 0.24 0.24 0.28 INDEF INDEF B9V 10700 0.00 0.12 0.13 0.13 0.16 INDEF INDEF A0V 9480 0.00 0.00 0.00 0.00 0.00 0.00 0.00 A1V 9005 0.00 -0.04 -0.05 -0.06 -0.05 -0.06 -0.06 A2V 8810 0.00 -0.11 -0.13 -0.14 -0.15 -0.15 -0.15 A3V 8545 0.00 -0.19 -0.23 -0.24 -0.26 -0.25 -0.26 A4V 8430 0.00 -0.25 -0.30 -0.32 -0.34 -0.33 -0.34 A5V 8160 0.00 -0.30 -0.36 -0.38 -0.40 -0.40 -0.41 A6V 8075 0.00 -0.35 -0.43 -0.45 -0.48 -0.47 -0.48 A7V 7930 0.00 -0.38 -0.47 -0.50 -0.53 -0.53 -0.53 A8V 7575 0.00 -0.43 -0.53 -0.56 -0.59 -0.59 -0.59 A9V 7310 0.00 -0.47 -0.59 -0.62 -0.64 -0.65 -0.65 F0V 7020 0.00 -0.54 -0.67 -0.70 -0.73 -0.73 -0.73 F1V 6870 0.00 -0.56 -0.71 -0.74 -0.77 -0.77 -0.77 F2V 6750 0.00 -0.61 -0.78 -0.82 -0.85 -0.85 -0.85 F3V 6650 0.00 -0.69 -0.88 -0.92 -0.96 -0.95 -0.95 F4V 6605 0.00 -0.77 -0.99 -1.03 -1.06 -1.06 -1.05 F5V 6530 0.00 -0.83 -1.06 -1.10 -1.14 -1.14 -1.12 F6V 6405 0.00 -0.92 -1.18 -1.22 -1.26 -1.26 -1.24 F7V 6240 0.00 -0.98 -1.27 -1.32 -1.36 -1.36 -1.34 F8V 6090 0.00 -1.00 -1.30 -1.34 -1.39 -1.39 -1.36 F9V 5990 0.00 -1.02 -1.33 -1.38 -1.43 -1.43 -1.39 G0V 5930 0.00 -1.05 -1.36 -1.41 -1.46 -1.46 -1.42 G1V 5880 0.00 -1.06 -1.38 -1.43 -1.48 -1.48 -1.45 G2V 5830 0.00 -1.09 -1.41 -1.46 -1.51 -1.51 -1.47 G3V 5780 0.00 -1.12 -1.44 -1.50 -1.55 -1.55 -1.51 G4V 5730 0.00 -1.14 -1.47 -1.53 -1.58 -1.58 -1.54 G5V 5680 0.00 -1.18 -1.52 -1.58 -1.63 -1.63 -1.59 G6V 5620 0.00 -1.21 -1.58 -1.64 -1.69 -1.69 -1.64 G7V 5545 0.00 -1.25 -1.62 -1.69 -1.74 -1.74 -1.69 G8V 5455 0.00 -1.29 -1.69 -1.76 -1.81 -1.81 -1.75 G9V 5350 0.00 -1.34 -1.77 -1.84 -1.90 -1.90 -1.84 K0V 5240 0.00 -1.43 -1.88 -1.96 -2.02 -2.02 -1.95 K1V 5135 0.00 -1.52 -2.00 -2.08 -2.15 -2.15 -2.07 K2V 5010 0.00 -1.63 -2.13 -2.22 -2.29 -2.29 -2.20 K3V 4805 0.00 -1.78 -2.32 -2.42 -2.50 -2.51 -2.39 K4V 4560 0.00 -1.94 -2.52 -2.63 -2.72 -2.73 -2.59 K5V 4340 0.00 -2.13 -2.74 -2.85 -2.95 -2.96 INDEF K6V 4155 0.00 -2.27 -2.91 -3.04 -3.15 -3.16 INDEF K7V 4040 0.00 -2.35 -3.01 -3.16 -3.27 -3.29 INDEF M0V 3800 0.00 -2.81 -3.48 -3.65 -3.79 -3.82 INDEF M1V 3680 0.00 -3.03 -3.69 -3.87 -4.02 -4.08 INDEF M2V 3530 0.00 -3.25 -3.91 -4.11 -4.27 -4.34 INDEF M3V 3380 0.00 -3.78 -4.42 -4.65 -4.85 -4.97 INDEF M4V 3180 0.00 -4.39 -5.01 -5.28 -5.51 -5.65 INDEF M5V 3030 0.00 -5.22 -5.84 -6.17 -6.46 -6.59 INDEF M6V 2850 0.00 -6.33 -6.99 -7.37 -7.73 -7.85 INDEF sptable-1.0.pre20180612/lib/onedstds/blackbody/r.dat000066400000000000000000000051351331023215600216730ustar00rootroot00000000000000# type blackbody # units microns # band R # weff 0.7 0.4 0.2666 0.005 0.405 0.2666 0.005 0.41 0.2666 0.005 0.415 0.2666 0.005 0.42 0.2666 0.005 0.425 0.2666 0.005 0.43 0.2666 0.005 0.435 0.2666 0.005 0.44 0.2666 0.005 0.445 0.2666 0.005 0.45 0.2666 0.005 0.455 0.2666 0.005 0.46 0.2666 0.005 0.465 0.2666 0.005 0.47 0.2666 0.005 0.475 0.2666 0.005 0.48 0.2666 0.005 0.485 0.2666 0.005 0.49 0.2666 0.005 0.495 0.2666 0.005 0.5 0.2666 0.005 0.505 0.2666 0.005 0.51 0.2666 0.005 0.515 0.2666 0.005 0.52 0.2666 0.005 0.525 0.2666 0.005 0.53 0.2666 0.005 0.535 0.2666 0.005 0.54 0.2666 0.005 0.545 0.2666 0.005 0.55 0.2666 0.005 0.555 0.2666 0.005 0.56 0.2666 0.005 0.565 0.2666 0.005 0.57 0.2666 0.005 0.575 0.2666 0.005 0.58 0.2666 0.005 0.585 0.2666 0.005 0.59 0.2666 0.005 0.595 0.2666 0.005 0.6 0.2666 0.005 0.605 0.2666 0.005 0.61 0.2666 0.005 0.615 0.2666 0.005 0.62 0.2666 0.005 0.625 0.2666 0.005 0.63 0.2666 0.005 0.635 0.2666 0.005 0.64 0.2666 0.005 0.645 0.2666 0.005 0.65 0.2666 0.005 0.655 0.2666 0.005 0.66 0.2666 0.005 0.665 0.2666 0.005 0.67 0.2666 0.005 0.675 0.2666 0.005 0.68 0.2666 0.005 0.685 0.2666 0.005 0.69 0.2666 0.005 0.695 0.2666 0.005 0.7 0.2666 0.005 0.705 0.2666 0.005 0.71 0.2666 0.005 0.715 0.2666 0.005 0.72 0.2666 0.005 0.725 0.2666 0.005 0.73 0.2666 0.005 0.735 0.2666 0.005 0.74 0.2666 0.005 0.745 0.2666 0.005 0.75 0.2666 0.005 0.755 0.2666 0.005 0.76 0.2666 0.005 0.765 0.2666 0.005 0.77 0.2666 0.005 0.775 0.2666 0.005 0.78 0.2666 0.005 0.785 0.2666 0.005 0.79 0.2666 0.005 0.795 0.2666 0.005 0.8 0.2666 0.005 0.805 0.2666 0.005 0.81 0.2666 0.005 0.815 0.2666 0.005 0.82 0.2666 0.005 0.825 0.2666 0.005 0.83 0.2666 0.005 0.835 0.2666 0.005 0.84 0.2666 0.005 0.845 0.2666 0.005 0.85 0.2666 0.005 0.855 0.2666 0.005 0.86 0.2666 0.005 0.865 0.2666 0.005 0.87 0.2666 0.005 0.875 0.2666 0.005 0.88 0.2666 0.005 0.885 0.2666 0.005 0.89 0.2666 0.005 0.895 0.2666 0.005 0.9 0.2666 0.005 0.905 0.2666 0.005 0.91 0.2666 0.005 0.915 0.2666 0.005 0.92 0.2666 0.005 0.925 0.2666 0.005 0.93 0.2666 0.005 0.935 0.2666 0.005 0.94 0.2666 0.005 0.945 0.2666 0.005 0.95 0.2666 0.005 0.955 0.2666 0.005 0.96 0.2666 0.005 0.965 0.2666 0.005 0.97 0.2666 0.005 0.975 0.2666 0.005 0.98 0.2666 0.005 0.985 0.2666 0.005 0.99 0.2666 0.005 0.995 0.2666 0.005 1. 0.2666 0.005 1.005 0.2666 0.005 1.01 0.2666 0.005 1.015 0.2666 0.005 1.02 0.2666 0.005 1.025 0.2666 0.005 1.03 0.2666 0.005 1.035 0.2666 0.005 1.04 0.2666 0.005 1.045 0.2666 0.005 1.05 0.2666 0.005 1.055 0.2666 0.005 1.06 0.2666 0.005 1.065 0.2666 0.005 1.07 0.2666 0.005 1.075 0.2666 0.005 1.08 0.2666 0.005 1.085 0.2666 0.005 1.09 0.2666 0.005 1.095 0.2666 0.005 1.1 0.2666 0.005 sptable-1.0.pre20180612/lib/onedstds/blackbody/standards.men000066400000000000000000000003401331023215600234150ustar00rootroot00000000000000Blackbody calibrations: U B V R I J H K L Lprime M Magnitude conversions are available between V, J, H, K, L, Lprime, and M but for U, B, R, and I the star magnitudes must be in the same bandpass. sptable-1.0.pre20180612/lib/onedstds/blackbody/u.dat000066400000000000000000000051171331023215600216760ustar00rootroot00000000000000# type blackbody # units microns # band U # weff 0.365 0.3 0.7056 0.005 0.305 0.7056 0.005 0.31 0.7056 0.005 0.315 0.7056 0.005 0.32 0.7056 0.005 0.325 0.7056 0.005 0.33 0.7056 0.005 0.335 0.7056 0.005 0.34 0.7056 0.005 0.345 0.7056 0.005 0.35 0.7056 0.005 0.355 0.7056 0.005 0.36 0.7056 0.005 0.365 0.7056 0.005 0.37 0.7056 0.005 0.375 0.7056 0.005 0.38 0.7056 0.005 0.385 0.7056 0.005 0.39 0.7056 0.005 0.395 0.7056 0.005 0.4 0.7056 0.005 0.405 0.7056 0.005 0.41 0.7056 0.005 0.415 0.7056 0.005 0.42 0.7056 0.005 0.425 0.7056 0.005 0.43 0.7056 0.005 0.435 0.7056 0.005 0.44 0.7056 0.005 0.445 0.7056 0.005 0.45 0.7056 0.005 0.455 0.7056 0.005 0.46 0.7056 0.005 0.465 0.7056 0.005 0.47 0.7056 0.005 0.475 0.7056 0.005 0.48 0.7056 0.005 0.485 0.7056 0.005 0.49 0.7056 0.005 0.495 0.7056 0.005 0.5 0.7056 0.005 0.505 0.7056 0.005 0.51 0.7056 0.005 0.515 0.7056 0.005 0.52 0.7056 0.005 0.525 0.7056 0.005 0.53 0.7056 0.005 0.535 0.7056 0.005 0.54 0.7056 0.005 0.545 0.7056 0.005 0.55 0.7056 0.005 0.555 0.7056 0.005 0.56 0.7056 0.005 0.565 0.7056 0.005 0.57 0.7056 0.005 0.575 0.7056 0.005 0.58 0.7056 0.005 0.585 0.7056 0.005 0.59 0.7056 0.005 0.595 0.7056 0.005 0.6 0.7056 0.005 0.605 0.7056 0.005 0.61 0.7056 0.005 0.615 0.7056 0.005 0.62 0.7056 0.005 0.625 0.7056 0.005 0.63 0.7056 0.005 0.635 0.7056 0.005 0.64 0.7056 0.005 0.645 0.7056 0.005 0.65 0.7056 0.005 0.655 0.7056 0.005 0.66 0.7056 0.005 0.665 0.7056 0.005 0.67 0.7056 0.005 0.675 0.7056 0.005 0.68 0.7056 0.005 0.685 0.7056 0.005 0.69 0.7056 0.005 0.695 0.7056 0.005 0.7 0.7056 0.005 0.705 0.7056 0.005 0.71 0.7056 0.005 0.715 0.7056 0.005 0.72 0.7056 0.005 0.725 0.7056 0.005 0.73 0.7056 0.005 0.735 0.7056 0.005 0.74 0.7056 0.005 0.745 0.7056 0.005 0.75 0.7056 0.005 0.755 0.7056 0.005 0.76 0.7056 0.005 0.765 0.7056 0.005 0.77 0.7056 0.005 0.775 0.7056 0.005 0.78 0.7056 0.005 0.785 0.7056 0.005 0.79 0.7056 0.005 0.795 0.7056 0.005 0.8 0.7056 0.005 0.805 0.7056 0.005 0.81 0.7056 0.005 0.815 0.7056 0.005 0.82 0.7056 0.005 0.825 0.7056 0.005 0.83 0.7056 0.005 0.835 0.7056 0.005 0.84 0.7056 0.005 0.845 0.7056 0.005 0.85 0.7056 0.005 0.855 0.7056 0.005 0.86 0.7056 0.005 0.865 0.7056 0.005 0.87 0.7056 0.005 0.875 0.7056 0.005 0.88 0.7056 0.005 0.885 0.7056 0.005 0.89 0.7056 0.005 0.895 0.7056 0.005 0.9 0.7056 0.005 0.905 0.7056 0.005 0.91 0.7056 0.005 0.915 0.7056 0.005 0.92 0.7056 0.005 0.925 0.7056 0.005 0.93 0.7056 0.005 0.935 0.7056 0.005 0.94 0.7056 0.005 0.945 0.7056 0.005 0.95 0.7056 0.005 0.955 0.7056 0.005 0.96 0.7056 0.005 0.965 0.7056 0.005 0.97 0.7056 0.005 0.975 0.7056 0.005 0.98 0.7056 0.005 0.985 0.7056 0.005 0.99 0.7056 0.005 0.995 0.7056 0.005 sptable-1.0.pre20180612/lib/onedstds/blackbody/v.dat000066400000000000000000000053321331023215600216760ustar00rootroot00000000000000# type blackbody # units microns # band V # weff 0.55 0.3 -0.0597 0.005 0.305 -0.0597 0.005 0.31 -0.0597 0.005 0.315 -0.0597 0.005 0.32 -0.0597 0.005 0.325 -0.0597 0.005 0.33 -0.0597 0.005 0.335 -0.0597 0.005 0.34 -0.0597 0.005 0.345 -0.0597 0.005 0.35 -0.0597 0.005 0.355 -0.0597 0.005 0.36 -0.0597 0.005 0.365 -0.0597 0.005 0.37 -0.0597 0.005 0.375 -0.0597 0.005 0.38 -0.0597 0.005 0.385 -0.0597 0.005 0.39 -0.0597 0.005 0.395 -0.0597 0.005 0.4 -0.0597 0.005 0.405 -0.0597 0.005 0.41 -0.0597 0.005 0.415 -0.0597 0.005 0.42 -0.0597 0.005 0.425 -0.0597 0.005 0.43 -0.0597 0.005 0.435 -0.0597 0.005 0.44 -0.0597 0.005 0.445 -0.0597 0.005 0.45 -0.0597 0.005 0.455 -0.0597 0.005 0.46 -0.0597 0.005 0.465 -0.0597 0.005 0.47 -0.0597 0.005 0.475 -0.0597 0.005 0.48 -0.0597 0.005 0.485 -0.0597 0.005 0.49 -0.0597 0.005 0.495 -0.0597 0.005 0.5 -0.0597 0.005 0.505 -0.0597 0.005 0.51 -0.0597 0.005 0.515 -0.0597 0.005 0.52 -0.0597 0.005 0.525 -0.0597 0.005 0.53 -0.0597 0.005 0.535 -0.0597 0.005 0.54 -0.0597 0.005 0.545 -0.0597 0.005 0.55 -0.0597 0.005 0.555 -0.0597 0.005 0.56 -0.0597 0.005 0.565 -0.0597 0.005 0.57 -0.0597 0.005 0.575 -0.0597 0.005 0.58 -0.0597 0.005 0.585 -0.0597 0.005 0.59 -0.0597 0.005 0.595 -0.0597 0.005 0.6 -0.0597 0.005 0.605 -0.0597 0.005 0.61 -0.0597 0.005 0.615 -0.0597 0.005 0.62 -0.0597 0.005 0.625 -0.0597 0.005 0.63 -0.0597 0.005 0.635 -0.0597 0.005 0.64 -0.0597 0.005 0.645 -0.0597 0.005 0.65 -0.0597 0.005 0.655 -0.0597 0.005 0.66 -0.0597 0.005 0.665 -0.0597 0.005 0.67 -0.0597 0.005 0.675 -0.0597 0.005 0.68 -0.0597 0.005 0.685 -0.0597 0.005 0.69 -0.0597 0.005 0.695 -0.0597 0.005 0.7 -0.0597 0.005 0.705 -0.0597 0.005 0.71 -0.0597 0.005 0.715 -0.0597 0.005 0.72 -0.0597 0.005 0.725 -0.0597 0.005 0.73 -0.0597 0.005 0.735 -0.0597 0.005 0.74 -0.0597 0.005 0.745 -0.0597 0.005 0.75 -0.0597 0.005 0.755 -0.0597 0.005 0.76 -0.0597 0.005 0.765 -0.0597 0.005 0.77 -0.0597 0.005 0.775 -0.0597 0.005 0.78 -0.0597 0.005 0.785 -0.0597 0.005 0.79 -0.0597 0.005 0.795 -0.0597 0.005 0.8 -0.0597 0.005 0.805 -0.0597 0.005 0.81 -0.0597 0.005 0.815 -0.0597 0.005 0.82 -0.0597 0.005 0.825 -0.0597 0.005 0.83 -0.0597 0.005 0.835 -0.0597 0.005 0.84 -0.0597 0.005 0.845 -0.0597 0.005 0.85 -0.0597 0.005 0.855 -0.0597 0.005 0.86 -0.0597 0.005 0.865 -0.0597 0.005 0.87 -0.0597 0.005 0.875 -0.0597 0.005 0.88 -0.0597 0.005 0.885 -0.0597 0.005 0.89 -0.0597 0.005 0.895 -0.0597 0.005 0.9 -0.0597 0.005 0.905 -0.0597 0.005 0.91 -0.0597 0.005 0.915 -0.0597 0.005 0.92 -0.0597 0.005 0.925 -0.0597 0.005 0.93 -0.0597 0.005 0.935 -0.0597 0.005 0.94 -0.0597 0.005 0.945 -0.0597 0.005 0.95 -0.0597 0.005 0.955 -0.0597 0.005 0.96 -0.0597 0.005 0.965 -0.0597 0.005 0.97 -0.0597 0.005 0.975 -0.0597 0.005 0.98 -0.0597 0.005 0.985 -0.0597 0.005 0.99 -0.0597 0.005 0.995 -0.0597 0.005 sptable-1.0.pre20180612/lib/onedstds/bstdscal/000077500000000000000000000000001331023215600206015ustar00rootroot00000000000000sptable-1.0.pre20180612/lib/onedstds/bstdscal/hr3454.dat000066400000000000000000000007241331023215600222270ustar00rootroot00000000000000# HR3454 3200. 4.074 49. 3250. 4.089 49. 3300. 4.104 49. 3350. 4.117 49. 3400. 4.131 49. 3450. 4.152 49. 3500. 4.163 49. 3571. 4.19 49. 3636. 4.196 49. 3704. 4.21 49. 3862. 3.846 49. 4036. 3.849 49. 4167. 3.883 49. 4255. 3.907 49. 4464. 3.979 49. 4566. 4.006 49. 4785. 4.076 49. 5000. 4.164 49. 5263. 4.232 49. 5556. 4.313 98. 5840. 4.39 98. 6056. 4.458 98. 6436. 4.537 98. 6790. 4.611 98. 7100. 4.7 98. 7550. 4.812 98. 7780. 4.862 98. 8090. 4.916 98. 8370. 4.969 98. sptable-1.0.pre20180612/lib/onedstds/bstdscal/hr3982.dat000066400000000000000000000007241331023215600222350ustar00rootroot00000000000000# HR3982 3200. 1.856 49. 3250. 1.856 49. 3300. 1.856 49. 3350. 1.856 49. 3400. 1.855 49. 3450. 1.859 49. 3500. 1.854 49. 3571. 1.855 49. 3636. 1.847 49. 3704. 1.796 49. 3862. 1.07 49. 4036. 0.981 49. 4167. 1.017 49. 4255. 1.041 49. 4464. 1.079 49. 4566. 1.12 49. 4785. 1.177 49. 5000. 1.242 49. 5263. 1.312 49. 5556. 1.374 98. 5840. 1.439 98. 6056. 1.492 98. 6436. 1.56 98. 6790. 1.62 98. 7100. 1.679 98. 7550. 1.78 98. 7780. 1.816 98. 8090. 1.861 98. 8370. 1.902 98. sptable-1.0.pre20180612/lib/onedstds/bstdscal/hr4468.dat000066400000000000000000000007301331023215600222320ustar00rootroot00000000000000# HR4468 3200. 5.548 49. 3250. 5.542 49. 3300. 5.534 49. 3350. 5.53 49. 3400. 5.523 49. 3450. 5.517 49. 3500. 5.511 49. 3571. 5.503 49. 3636. 5.453 49. 3704. 5.403 49. 3862. 5.401 49. 4036. 4.366 49. 4167. 4.387 49. 4255. 4.413 49. 4464. 4.447 49. 4566. 4.487 49. 4785. 4.533 49. 5000. 4.594 49. 5263. 4.659 49. 5556. 4.721 98. 5840. 4.785 98. 6056. 4.833 98. 6436. 4.904 98. 6790. 4.954 98. 7100. 5.015 98. 7550. 5.106 98. 7780. 5.143 98. 8090. 5.181 98. 8370. 5.225 98. sptable-1.0.pre20180612/lib/onedstds/bstdscal/hr4534.dat000066400000000000000000000007301331023215600222240ustar00rootroot00000000000000# HR4534 3200. 3.467 49. 3250. 3.451 49. 3300. 3.424 49. 3350. 3.419 49. 3400. 3.419 49. 3450. 3.39 49. 3500. 3.363 49. 3571. 3.351 49. 3636. 3.294 49. 3704. 3.249 49. 3862. 2.181 49. 4036. 1.971 49. 4167. 1.978 49. 4255. 1.978 49. 4464. 1.974 49. 4566. 2.008 49. 4785. 2.038 49. 5000. 2.077 49. 5263. 2.123 49. 5556. 2.145 98. 5840. 2.179 98. 6056. 2.213 98. 6436. 2.262 98. 6790. 2.295 98. 7100. 2.335 98. 7550. 2.077 98. 7780. 2.773 98. 8090. 2.467 98. 8370. 2.493 98. sptable-1.0.pre20180612/lib/onedstds/bstdscal/hr5191.dat000066400000000000000000000007241331023215600222270ustar00rootroot00000000000000# HR5191 3200. 1.755 49. 3250. 1.767 49. 3300. 1.782 49. 3350. 1.799 49. 3400. 1.815 49. 3450. 1.83 49. 3500. 1.837 49. 3571. 1.852 49. 3636. 1.859 49. 3704. 1.885 49. 3862. 1.39 49. 4036. 1.423 49. 4167. 1.444 49. 4255. 1.464 49. 4464. 1.521 49. 4566. 1.57 49. 4785. 1.64 49. 5000. 1.715 49. 5263. 1.79 49. 5556. 1.874 98. 5840. 1.956 98. 6056. 2.009 98. 6436. 2.089 98. 6790. 2.168 98. 7100. 2.239 98. 7550. 2.353 98. 7780. 2.398 98. 8090. 2.452 98. 8370. 2.499 98. sptable-1.0.pre20180612/lib/onedstds/bstdscal/hr5511.dat000066400000000000000000000007261331023215600222250ustar00rootroot00000000000000# HR5511 3200. 4.912 49. 3250. 4.894 49. 3300. 4.877 49. 3350. 4.86 49. 3400. 4.843 49. 3450. 4.827 49. 3500. 4.808 49. 3571. 4.802 49. 3636. 4.767 49. 3704. 4.738 49. 3862. 3.586 49. 4036. 3.468 49. 4167. 3.477 49. 4255. 3.501 49. 4464. 3.514 49. 4566. 3.561 49. 4785. 3.609 49. 5000. 3.659 49. 5263. 3.706 49. 5556. 3.754 98. 5840. 3.813 98. 6056. 3.851 98. 6436. 3.905 98. 6790. 3.96 98. 7100. 4.003 98. 7550. 4.097 98. 7780. 4.136 98. 8090. 4.17 98. 8370. 4.208 98. sptable-1.0.pre20180612/lib/onedstds/bstdscal/hr7001.dat000066400000000000000000000007371331023215600222230ustar00rootroot00000000000000# HR7001 3200. 1.191 49. 3250. 1.186 49. 3300. 1.181 49. 3350. 1.179 49. 3400. 1.173 49. 3450. 1.161 49. 3500. 1.161 49. 3571. 1.161 49. 3636. 1.057 49. 3704. 1. 49. 3862. -0.132 49. 4036. -0.255 49. 4167. -0.234 49. 4255. -0.219 49. 4464. -0.194 49. 4566. -0.155 49. 4785. -0.109 49. 5000. -0.059 49. 5263. -0.006 49. 5556. 0.044 98. 5840. 0.106 98. 6056. 0.155 98. 6436. 0.211 98. 6790. 0.261 98. 7100. 0.316 98. 7550. 0.405 98. 7780. 0.442 98. 8090. 0.473 98. 8370. 0.507 98. sptable-1.0.pre20180612/lib/onedstds/bstdscal/hr718.dat000066400000000000000000000007231331023215600221460ustar00rootroot00000000000000# HR718 3200. 5.231 49. 3250. 5.218 49. 3300. 5.207 49. 3350. 5.197 49. 3400. 5.181 49. 3450. 5.176 49. 3500. 5.16 49. 3571. 5.149 49. 3636. 5.123 49. 3704. 5.08 49. 3862. 4.091 49. 4036. 3.94 49. 4167. 3.981 49. 4255. 4.004 49. 4464. 4.047 49. 4566. 4.07 49. 4785. 4.116 49. 5000. 4.178 49. 5263. 4.235 49. 5556. 4.293 98. 5840. 4.345 98. 6056. 4.398 98. 6436. 4.467 98. 6790. 4.529 98. 7100. 4.591 98. 7550. 4.68 98. 7780. 4.728 98. 8090. 4.767 98. 8370. 4.815 98. sptable-1.0.pre20180612/lib/onedstds/bstdscal/hr7596.dat000066400000000000000000000007261331023215600222440ustar00rootroot00000000000000# HR7596 3200. 6.946 49. 3250. 6.924 49. 3300. 6.898 49. 3350. 6.885 49. 3400. 6.867 49. 3450. 6.841 49. 3500. 6.817 49. 3571. 6.789 49. 3636. 6.76 49. 3704. 6.719 49. 3862. 5.551 49. 4036. 5.417 49. 4167. 5.416 49. 4255. 5.435 49. 4464. 5.442 49. 4566. 5.465 49. 4785. 5.477 49. 5000. 5.509 49. 5263. 5.521 49. 5556. 5.535 98. 5840. 5.561 98. 6056. 5.599 98. 6436. 5.629 98. 6790. 5.647 98. 7100. 5.69 98. 7550. 5.745 98. 7780. 5.781 98. 8090. 5.799 98. 8370. 5.82 98. sptable-1.0.pre20180612/lib/onedstds/bstdscal/hr7950.dat000066400000000000000000000007261331023215600222360ustar00rootroot00000000000000# HR7950 3200. 5.08 49. 3250. 5.062 49. 3300. 5.038 49. 3350. 5.025 49. 3400. 5.007 49. 3450. 4.995 49. 3500. 4.971 49. 3571. 4.949 49. 3636. 4.917 49. 3704. 4.871 49. 3862. 3.709 49. 4036. 3.513 49. 4167. 3.526 49. 4255. 3.55 49. 4464. 3.569 49. 4566. 3.615 49. 4785. 3.635 49. 5000. 3.691 49. 5263. 3.745 49. 5556. 3.789 98. 5840. 3.835 98. 6056. 3.877 98. 6436. 3.937 98. 6790. 3.977 98. 7100. 4.033 98. 7550. 4.136 98. 7780. 4.17 98. 8090. 4.202 98. 8370. 4.237 98. sptable-1.0.pre20180612/lib/onedstds/bstdscal/hr8634.dat000066400000000000000000000007241331023215600222340ustar00rootroot00000000000000# HR8634 3200. 4.173 49. 3250. 4.173 49. 3300. 4.17 49. 3350. 4.173 49. 3400. 4.173 49. 3450. 4.175 49. 3500. 4.162 49. 3571. 4.156 49. 3636. 4.152 49. 3704. 4.093 49. 3862. 3.255 49. 4036. 3.106 49. 4167. 3.143 49. 4255. 3.176 49. 4464. 3.208 49. 4566. 3.25 49. 4785. 3.298 49. 5000. 3.368 49. 5263. 3.314 49. 5556. 3.479 98. 5840. 3.541 98. 6056. 3.611 98. 6436. 3.67 98. 6790. 3.73 98. 7100. 3.796 98. 7550. 3.896 98. 7780. 3.94 98. 8090. 3.977 98. 8370. 4.024 98. sptable-1.0.pre20180612/lib/onedstds/bstdscal/hr9087.dat000066400000000000000000000007261331023215600222410ustar00rootroot00000000000000# HR9087 3200. 5.341 49. 3250. 5.341 49. 3300. 5.341 49. 3350. 5.341 49. 3400. 5.341 49. 3450. 5.342 49. 3500. 5.345 49. 3571. 5.35 49. 3636. 5.356 49. 3704. 5.34 49. 3862. 4.776 49. 4036. 4.704 49. 4167. 4.747 49. 4255. 4.765 49. 4464. 4.814 49. 4566. 4.854 49. 4785. 4.917 49. 5000. 4.987 49. 5263. 5.045 49. 5556. 5.111 98. 5840. 5.188 98. 6056. 5.241 98. 6436. 5.313 98. 6790. 5.38 98. 7100. 5.443 98. 7550. 5.547 98. 7780. 5.596 98. 8090. 5.644 98. 8370. 5.695 98. sptable-1.0.pre20180612/lib/onedstds/bstdscal/names.men000066400000000000000000000002611331023215600224040ustar00rootroot00000000000000# Table of alternate names mapped to the names in this directory hd74280 hr3454 hd100889 hr4468 hd15318 hr718 hd188350 hr7596 hd198001 hr7950 hd214923 hr8634 hd224926 hr9087 sptable-1.0.pre20180612/lib/onedstds/bstdscal/standards.men000066400000000000000000000004111331023215600232610ustar00rootroot00000000000000Standard stars in onedstds$bstdscal/ hr718 hr3454 hr3982 hr4468 hr4534 hr5191 hr5511 hr7001 hr7596 hr7950 hr8634 hr9087 hd15318 hd74280 hd100889 hd188350 hd198001 hd214923 hd224926 sptable-1.0.pre20180612/lib/onedstds/ctio/000077500000000000000000000000001331023215600177405ustar00rootroot00000000000000sptable-1.0.pre20180612/lib/onedstds/ctio/multi1m.dat000066400000000000000000000003701331023215600220220ustar00rootroot00000000000000-279.35 -256.07 -232.79 -209.51 -186.23 -162.95 -139.67 -116.40 -93.12 -69.84 -46.56 -23.28 0.00 23.28 46.56 69.84 93.12 116.40 139.67 162.95 186.23 209.51 232.79 256.07 279.35 302.63 325.91 349.19 372.47 395.74 419.02 sptable-1.0.pre20180612/lib/onedstds/ctio/multi4m.dat000066400000000000000000000012501331023215600220230ustar00rootroot00000000000000-196.80 -190.24 -183.68 -177.12 -170.56 -164.00 -157.44 -150.88 -144.32 -137.76 -131.20 -124.64 -118.08 -111.52 -104.96 -98.40 -91.84 -85.28 -78.72 -72.16 -65.60 -59.04 -52.48 -45.92 -39.36 -32.80 -26.24 -19.68 -13.12 -6.56 0.00 6.56 13.12 19.68 26.24 32.80 39.36 45.92 52.48 59.04 65.60 72.16 78.72 85.28 91.84 98.40 104.96 111.52 118.08 124.64 131.20 137.76 144.32 150.88 157.44 164.00 170.56 177.12 183.68 190.24 196.80 203.36 209.92 216.48 223.04 229.60 236.16 242.72 249.28 255.84 262.40 268.96 275.52 282.08 288.64 295.20 301.76 308.32 314.88 321.44 328.00 334.56 341.12 347.68 354.24 sptable-1.0.pre20180612/lib/onedstds/ctio/multi4mech.dat000066400000000000000000000002501331023215600225020ustar00rootroot00000000000000-131.20 -118.08 -104.96 -91.84 -78.72 -65.60 -52.48 -39.36 -26.24 -13.12 0.00 13.12 26.24 39.36 52.48 65.60 78.72 91.84 104.96 118.08 131.20 sptable-1.0.pre20180612/lib/onedstds/ctio/nd1m.100mag.dat000066400000000000000000000346451331023215600222710ustar00rootroot00000000000000# 1.00 mag ND filter 1.0M 3250 0.2383179 3255 0.2408589 3260 0.2437871 3265 0.2471293 3270 0.2509012 3275 0.2551022 3280 0.2597155 3285 0.2647043 3290 0.2700186 3295 0.2755998 3300 0.281387 3305 0.2873223 3310 0.293355 3315 0.2994418 3320 0.3055451 3325 0.3116321 3330 0.317674 3335 0.3236457 3340 0.3295259 3345 0.3352975 3350 0.3409486 3355 0.3464701 3360 0.3518565 3365 0.3571048 3370 0.3622148 3375 0.3671874 3380 0.3720273 3385 0.3767393 3390 0.38133 3395 0.3858056 3400 0.3901684 3405 0.3944191 3410 0.3985543 3415 0.4025684 3420 0.4064552 3425 0.4102089 3430 0.4138263 3435 0.4173059 3440 0.4206483 3445 0.4238551 3450 0.4269298 3455 0.4298758 3460 0.4326971 3465 0.4353983 3470 0.4379849 3475 0.4404632 3480 0.4428394 3485 0.4451186 3490 0.4473041 3495 0.4493966 3500 0.451395 3505 0.4532957 3510 0.4550981 3515 0.456802 3520 0.4584127 3525 0.4599377 3530 0.4613877 3535 0.4627745 3540 0.4641097 3545 0.4654023 3550 0.4666586 3555 0.4678819 3560 0.4690708 3565 0.4702201 3570 0.4713226 3575 0.4723696 3580 0.4733512 3585 0.4742596 3590 0.4750897 3595 0.475839 3600 0.47651 3605 0.4771085 3610 0.4776437 3615 0.4781251 3620 0.4785634 3625 0.4789675 3630 0.4793436 3635 0.4796961 3640 0.4800271 3645 0.4803372 3650 0.4806246 3655 0.4808865 3660 0.4811193 3665 0.4813178 3670 0.481477 3675 0.4815923 3680 0.4816591 3685 0.481674 3690 0.4816344 3695 0.4815383 3700 0.4813833 3705 0.4811669 3710 0.4808882 3715 0.4805463 3720 0.4801424 3725 0.4796808 3730 0.4791696 3735 0.4786201 3740 0.4780468 3745 0.4774644 3750 0.4768871 3755 0.4763261 3760 0.4757905 3765 0.4752848 3770 0.474811 3775 0.4743713 3780 0.4739681 3785 0.4736058 3790 0.4732914 3795 0.4730342 3800 0.4728433 3805 0.472727 3810 0.472689 3815 0.4727304 3820 0.4728461 3825 0.4730265 3830 0.4732602 3835 0.4735346 3840 0.4738386 3845 0.4741637 3850 0.4745048 3855 0.4748595 3860 0.4752262 3865 0.4756041 3870 0.4759896 3875 0.4763796 3880 0.476768 3885 0.4771495 3890 0.4775183 3895 0.4778703 3900 0.4782024 3905 0.478515 3910 0.4788092 3915 0.4790871 3920 0.4793527 3925 0.4796082 3930 0.4798559 3935 0.4800958 3940 0.4803242 3945 0.480536 3950 0.4807218 3955 0.4808732 3960 0.480981 3965 0.4810381 3970 0.4810411 3975 0.4809923 3980 0.4808971 3985 0.4807661 3990 0.4806117 3995 0.4804475 4000 0.4802856 4005 0.4801351 4010 0.4800012 4015 0.4798866 4020 0.4797893 4025 0.4797042 4030 0.4796243 4035 0.4795404 4040 0.4794441 4045 0.4793259 4050 0.4791795 4055 0.4790023 4060 0.4787942 4065 0.4785622 4070 0.4783153 4075 0.4780664 4080 0.4778276 4085 0.4776094 4090 0.4774184 4095 0.4772561 4100 0.4771185 4105 0.4769987 4110 0.4768858 4115 0.4767694 4120 0.4766394 4125 0.4764891 4130 0.4763141 4135 0.4761156 4140 0.4758988 4145 0.4756716 4150 0.4754449 4155 0.4752284 4160 0.4750292 4165 0.4748492 4170 0.4746842 4175 0.4745244 4180 0.4743567 4185 0.4741695 4190 0.4739527 4195 0.4737057 4200 0.4734332 4205 0.4731474 4210 0.4728657 4215 0.4726048 4220 0.4723796 4225 0.4721984 4230 0.4720637 4235 0.4719689 4240 0.4719036 4245 0.4718518 4250 0.4717975 4255 0.4717249 4260 0.471621 4265 0.4714785 4270 0.4712943 4275 0.4710711 4280 0.4708169 4285 0.4705434 4290 0.4702617 4295 0.4699838 4300 0.4697178 4305 0.4694673 4310 0.4692337 4315 0.4690143 4320 0.4688041 4325 0.4685986 4330 0.4683926 4335 0.4681859 4340 0.4679783 4345 0.4677746 4350 0.467581 4355 0.4674048 4360 0.4672506 4365 0.4671211 4370 0.4670138 4375 0.4669219 4380 0.4668376 4385 0.4667526 4390 0.4666616 4395 0.466562 4400 0.4664565 4405 0.4663494 4410 0.4662448 4415 0.4661459 4420 0.4660529 4425 0.4659639 4430 0.4658737 4435 0.4657765 4440 0.4656667 4445 0.4655395 4450 0.4653931 4455 0.4652271 4460 0.4650458 4465 0.4648563 4470 0.4646671 4475 0.4644887 4480 0.4643296 4485 0.4641939 4490 0.4640822 4495 0.463989 4500 0.4639038 4505 0.4638152 4510 0.4637125 4515 0.4635886 4520 0.463442 4525 0.4632754 4530 0.4630975 4535 0.462918 4540 0.462747 4545 0.4625925 4550 0.4624604 4555 0.4623512 4560 0.4622637 4565 0.4621938 4570 0.4621362 4575 0.4620854 4580 0.4620364 4585 0.4619842 4590 0.4619249 4595 0.4618555 4600 0.4617743 4605 0.4616813 4610 0.4615788 4615 0.4614704 4620 0.4613606 4625 0.4612537 4630 0.4611513 4635 0.4610525 4640 0.4609535 4645 0.4608486 4650 0.4607331 4655 0.4606032 4660 0.460458 4665 0.4603004 4670 0.4601358 4675 0.4599698 4680 0.4598075 4685 0.4596531 4690 0.4595068 4695 0.4593676 4700 0.459233 4705 0.4591001 4710 0.458965 4715 0.4588265 4720 0.4586835 4725 0.4585375 4730 0.4583887 4735 0.4582393 4740 0.458091 4745 0.4579442 4750 0.4577995 4755 0.4576554 4760 0.4575109 4765 0.4573623 4770 0.4572078 4775 0.4570447 4780 0.456872 4785 0.4566903 4790 0.4564996 4795 0.4563022 4800 0.4560998 4805 0.4558947 4810 0.4556897 4815 0.4554876 4820 0.4552906 4825 0.4551007 4830 0.4549202 4835 0.4547469 4840 0.4545801 4845 0.4544162 4850 0.4542508 4855 0.4540799 4860 0.4539013 4865 0.4537146 4870 0.4535218 4875 0.4533268 4880 0.4531344 4885 0.4529498 4890 0.452776 4895 0.452615 4900 0.4524642 4905 0.4523214 4910 0.4521815 4915 0.45204 4920 0.4518926 4925 0.4517383 4930 0.4515776 4935 0.4514137 4940 0.4512509 4945 0.4510933 4950 0.450944 4955 0.4508035 4960 0.45067 4965 0.4505395 4970 0.4504076 4975 0.4502697 4980 0.4501225 4985 0.4499657 4990 0.4498002 4995 0.4496308 5000 0.4494616 5005 0.4492971 5010 0.4491414 5015 0.4489961 5020 0.4488621 5025 0.4487382 5030 0.4486233 5035 0.4485166 5040 0.448417 5045 0.4483242 5050 0.448238 5055 0.4481567 5060 0.448079 5065 0.4480007 5070 0.4479188 5075 0.4478289 5080 0.4477289 5085 0.4476177 5090 0.4474953 5095 0.4473638 5100 0.4472254 5105 0.447084 5110 0.4469414 5115 0.4468011 5120 0.446664 5125 0.4465316 5130 0.4464047 5135 0.4462839 5140 0.4461692 5145 0.4460621 5150 0.4459609 5155 0.4458649 5160 0.4457721 5165 0.4456805 5170 0.4455874 5175 0.4454929 5180 0.4453965 5185 0.4453002 5190 0.4452066 5195 0.445118 5200 0.4450357 5205 0.4449611 5210 0.4448924 5215 0.444828 5220 0.4447649 5225 0.4446999 5230 0.4446303 5235 0.4445546 5240 0.4444723 5245 0.4443825 5250 0.4442861 5255 0.4441832 5260 0.444074 5265 0.4439588 5270 0.4438361 5275 0.4437064 5280 0.4435685 5285 0.4434225 5290 0.4432693 5295 0.4431098 5300 0.4429465 5305 0.4427813 5310 0.4426176 5315 0.4424585 5320 0.4423079 5325 0.4421691 5330 0.4420457 5335 0.4419391 5340 0.4418498 5345 0.4417767 5350 0.4417139 5355 0.441657 5360 0.4415982 5365 0.4415306 5370 0.4414494 5375 0.4413518 5380 0.441238 5385 0.4411105 5390 0.4409724 5395 0.4408271 5400 0.4406775 5405 0.4405267 5410 0.4403768 5415 0.4402301 5420 0.4400896 5425 0.4399581 5430 0.4398372 5435 0.4397275 5440 0.4396271 5445 0.4395324 5450 0.4394396 5455 0.4393454 5460 0.4392466 5465 0.4391426 5470 0.4390337 5475 0.4389217 5480 0.4388083 5485 0.4386943 5490 0.4385812 5495 0.4384698 5500 0.4383612 5505 0.4382553 5510 0.438153 5515 0.4380551 5520 0.4379616 5525 0.4378721 5530 0.4377866 5535 0.4377044 5540 0.4376269 5545 0.4375553 5550 0.4374906 5555 0.437434 5560 0.4373834 5565 0.4373349 5570 0.4372824 5575 0.4372169 5580 0.4371322 5585 0.4370232 5590 0.4368888 5595 0.4367316 5600 0.4365574 5605 0.4363747 5610 0.4361918 5615 0.436017 5620 0.4358548 5625 0.4357091 5630 0.4355797 5635 0.4354649 5640 0.4353611 5645 0.4352646 5650 0.4351705 5655 0.4350755 5660 0.4349775 5665 0.4348761 5670 0.4347711 5675 0.4346645 5680 0.4345577 5685 0.4344511 5690 0.434345 5695 0.4342372 5700 0.4341269 5705 0.4340122 5710 0.4338918 5715 0.4337662 5720 0.4336365 5725 0.4335049 5730 0.4333728 5735 0.4332433 5740 0.4331186 5745 0.433001 5750 0.4328915 5755 0.4327923 5760 0.4327027 5765 0.432622 5770 0.432547 5775 0.4324726 5780 0.4323924 5785 0.4323016 5790 0.4321938 5795 0.4320676 5800 0.4319245 5805 0.4317675 5810 0.4316034 5815 0.4314377 5820 0.4312764 5825 0.4311221 5830 0.430975 5835 0.4308338 5840 0.4306961 5845 0.4305602 5850 0.4304247 5855 0.4302897 5860 0.4301558 5865 0.4300233 5870 0.4298929 5875 0.4297623 5880 0.4296308 5885 0.4294975 5890 0.4293622 5895 0.429227 5900 0.4290945 5905 0.4289679 5910 0.4288509 5915 0.4287443 5920 0.4286473 5925 0.4285583 5930 0.4284732 5935 0.4283892 5940 0.4283027 5945 0.4282098 5950 0.4281089 5955 0.4279977 5960 0.4278765 5965 0.427746 5970 0.4276094 5975 0.4274712 5980 0.4273367 5985 0.4272095 5990 0.4270924 5995 0.4269846 6000 0.4268838 6005 0.4267852 6010 0.4266844 6015 0.4265768 6020 0.4264595 6025 0.4263326 6030 0.4261967 6035 0.4260542 6040 0.4259074 6045 0.425759 6050 0.425611 6055 0.4254648 6060 0.4253214 6065 0.4251811 6070 0.4250442 6075 0.4249115 6080 0.4247818 6085 0.4246545 6090 0.4245297 6095 0.4244066 6100 0.4242853 6105 0.4241671 6110 0.4240518 6115 0.4239397 6120 0.4238298 6125 0.4237191 6130 0.4236046 6135 0.4234825 6140 0.4233513 6145 0.423211 6150 0.4230637 6155 0.4229128 6160 0.4227629 6165 0.422619 6170 0.4224851 6175 0.4223638 6180 0.4222567 6185 0.4221617 6190 0.4220763 6195 0.421996 6200 0.4219153 6205 0.4218276 6210 0.4217295 6215 0.4216183 6220 0.4214946 6225 0.4213616 6230 0.4212237 6235 0.4210862 6240 0.4209538 6245 0.4208298 6250 0.4207159 6255 0.4206128 6260 0.420518 6265 0.4204302 6270 0.4203454 6275 0.4202611 6280 0.4201727 6285 0.4200771 6290 0.4199729 6295 0.4198578 6300 0.4197318 6305 0.4195972 6310 0.4194576 6315 0.4193173 6320 0.4191811 6325 0.4190525 6330 0.4189331 6335 0.4188221 6340 0.4187173 6345 0.4186152 6350 0.4185118 6355 0.4184048 6360 0.4182922 6365 0.4181735 6370 0.4180495 6375 0.4179206 6380 0.4177878 6385 0.4176525 6390 0.4175158 6395 0.4173782 6400 0.4172403 6405 0.4171022 6410 0.4169645 6415 0.4168269 6420 0.4166903 6425 0.4165563 6430 0.4164275 6435 0.4163051 6440 0.4161908 6445 0.416084 6450 0.4159833 6455 0.4158844 6460 0.4157845 6465 0.4156811 6470 0.4155721 6475 0.4154583 6480 0.4153404 6485 0.4152204 6490 0.4151003 6495 0.4149815 6500 0.4148654 6505 0.4147537 6510 0.4146472 6515 0.4145467 6520 0.4144527 6525 0.4143642 6530 0.4142792 6535 0.4141953 6540 0.4141087 6545 0.4140165 6550 0.4139166 6555 0.4138092 6560 0.4136958 6565 0.4135793 6570 0.413464 6575 0.4133524 6580 0.4132466 6585 0.4131475 6590 0.4130531 6595 0.4129614 6600 0.4128686 6605 0.4127705 6610 0.4126641 6615 0.4125476 6620 0.4124204 6625 0.4122841 6630 0.4121407 6635 0.4119936 6640 0.4118449 6645 0.4116974 6650 0.4115522 6655 0.4114099 6660 0.4112712 6665 0.4111371 6670 0.4110086 6675 0.4108868 6680 0.4107722 6685 0.4106651 6690 0.4105631 6695 0.4104636 6700 0.4103641 6705 0.4102615 6710 0.410156 6715 0.4100477 6720 0.4099385 6725 0.4098305 6730 0.4097247 6735 0.4096213 6740 0.4095192 6745 0.4094163 6750 0.4093109 6755 0.4092014 6760 0.4090872 6765 0.4089688 6770 0.4088457 6775 0.4087189 6780 0.4085895 6785 0.4084587 6790 0.4083288 6795 0.4082014 6800 0.4080786 6805 0.4079611 6810 0.4078485 6815 0.407739 6820 0.4076294 6825 0.4075153 6830 0.4073941 6835 0.4072631 6840 0.4071219 6845 0.406972 6850 0.4068158 6855 0.4066584 6860 0.4065047 6865 0.4063604 6870 0.40623 6875 0.406116 6880 0.406019 6885 0.405937 6890 0.4058656 6895 0.4058006 6900 0.4057364 6905 0.4056701 6910 0.405598 6915 0.4055189 6920 0.4054312 6925 0.4053333 6930 0.4052244 6935 0.4051037 6940 0.4049719 6945 0.4048309 6950 0.404685 6955 0.4045385 6960 0.4043983 6965 0.4042666 6970 0.4041462 6975 0.4040362 6980 0.4039328 6985 0.4038316 6990 0.4037271 6995 0.4036165 7000 0.4034978 7005 0.4033719 7010 0.4032412 7015 0.4031076 7020 0.4029731 7025 0.4028381 7030 0.4027023 7035 0.4025644 7040 0.4024243 7045 0.4022826 7050 0.4021407 7055 0.4020022 7060 0.40187 7065 0.4017461 7070 0.4016314 7075 0.4015251 7080 0.4014232 7085 0.4013211 7090 0.4012151 7095 0.4011011 7100 0.4009782 7105 0.4008479 7110 0.4007121 7115 0.4005751 7120 0.4004398 7125 0.4003086 7130 0.4001822 7135 0.4000591 7140 0.399939 7145 0.3998202 7150 0.3997028 7155 0.3995875 7160 0.3994749 7165 0.3993664 7170 0.3992626 7175 0.3991639 7180 0.3990701 7185 0.3989797 7190 0.3988912 7195 0.3988042 7200 0.3987159 7205 0.3986242 7210 0.3985263 7215 0.3984199 7220 0.3983031 7225 0.3981763 7230 0.3980409 7235 0.3979007 7240 0.3977608 7245 0.3976273 7250 0.3975039 7255 0.3973942 7260 0.3972981 7265 0.3972135 7270 0.3971371 7275 0.3970631 7280 0.3969876 7285 0.3969057 7290 0.3968144 7295 0.3967123 7300 0.3965992 7305 0.3964756 7310 0.3963432 7315 0.3962049 7320 0.3960627 7325 0.3959194 7330 0.3957781 7335 0.3956409 7340 0.3955093 7345 0.3953848 7350 0.3952684 7355 0.3951598 7360 0.3950594 7365 0.3949673 7370 0.3948842 7375 0.3948089 7380 0.3947403 7385 0.3946758 7390 0.3946117 7395 0.3945439 7400 0.3944682 7405 0.3943807 7410 0.3942777 7415 0.3941576 7420 0.3940197 7425 0.3938644 7430 0.3936937 7435 0.3935111 7440 0.393322 7445 0.3931329 7450 0.3929493 7455 0.3927767 7460 0.3926198 7465 0.3924808 7470 0.3923588 7475 0.3922527 7480 0.3921596 7485 0.3920743 7490 0.3919948 7495 0.3919168 7500 0.391839 7505 0.3917598 7510 0.3916789 7515 0.3915964 7520 0.3915118 7525 0.3914265 7530 0.3913403 7535 0.3912536 7540 0.3911667 7545 0.3910788 7550 0.3909887 7555 0.3908943 7560 0.3907948 7565 0.3906881 7570 0.3905734 7575 0.3904502 7580 0.390319 7585 0.3901805 7590 0.3900355 7595 0.3898849 7600 0.3897297 7605 0.3895713 7610 0.3894106 7615 0.3892488 7620 0.3890876 7625 0.3889285 7630 0.3887734 7635 0.3886246 7640 0.3884838 7645 0.3883527 7650 0.3882327 7655 0.3881227 7660 0.3880216 7665 0.3879262 7670 0.3878334 7675 0.38774 7680 0.3876445 7685 0.3875458 7690 0.3874459 7695 0.3873477 7700 0.3872532 7705 0.3871645 7710 0.3870821 7715 0.3870041 7720 0.3869278 7725 0.3868502 7730 0.3867683 7735 0.3866802 7740 0.3865857 7745 0.3864861 7750 0.3863843 7755 0.3862832 7760 0.3861852 7765 0.3860916 7770 0.3860021 7775 0.3859147 7780 0.3858259 7785 0.3857329 7790 0.3856322 7795 0.3855229 7800 0.385405 7805 0.3852807 7810 0.3851534 7815 0.3850253 7820 0.3849005 7825 0.3847806 7830 0.3846689 7835 0.3845655 7840 0.3844723 7845 0.3843892 7850 0.3843168 7855 0.3842549 7860 0.3842037 7865 0.3841625 7870 0.3841307 7875 0.3841074 sptable-1.0.pre20180612/lib/onedstds/ctio/nd1m.125mag.dat000066400000000000000000000346311331023215600222730ustar00rootroot00000000000000# 1.25 mag ND filter 1.0M 3250 0.08709133 3255 0.08880705 3260 0.09073389 3265 0.0928852 3270 0.09527242 3275 0.09790474 3280 0.1007896 3285 0.1039321 3290 0.1073335 3295 0.1109899 3300 0.1148881 3305 0.1190054 3310 0.1233077 3315 0.1277562 3320 0.1323099 3325 0.1369336 3330 0.1416014 3335 0.1462997 3340 0.1510248 3345 0.1557793 3350 0.1605694 3355 0.1653988 3360 0.1702678 3365 0.1751714 3370 0.180098 3375 0.1850318 3380 0.1899509 3385 0.1948325 3390 0.1996518 3395 0.2043858 3400 0.2090171 3405 0.2135331 3410 0.2179282 3415 0.2222031 3420 0.2263596 3425 0.2304029 3430 0.2343361 3435 0.2381606 3440 0.2418778 3445 0.2454885 3450 0.2489943 3455 0.2523996 3460 0.2557086 3465 0.2589273 3470 0.2620595 3475 0.2651068 3480 0.2680693 3485 0.2709468 3490 0.2737363 3495 0.2764372 3500 0.2790493 3505 0.2815727 3510 0.284007 3515 0.2863524 3520 0.2886087 3525 0.2907743 3530 0.2928497 3535 0.2948355 3540 0.2967347 3545 0.2985518 3550 0.3002937 3555 0.3019673 3560 0.3035798 3565 0.305137 3570 0.3066423 3575 0.3080973 3580 0.3094996 3585 0.3108471 3590 0.3121343 3595 0.313356 3600 0.314507 3605 0.3155834 3610 0.3165839 3615 0.3175083 3620 0.3183608 3625 0.319147 3630 0.3198748 3635 0.3205527 3640 0.321188 3645 0.3217849 3650 0.3223444 3655 0.3228632 3660 0.3233347 3665 0.3237507 3670 0.3241031 3675 0.3243847 3680 0.3245913 3685 0.3247211 3690 0.3247748 3695 0.3247548 3700 0.3246643 3705 0.3245065 3710 0.3242837 3715 0.3239978 3720 0.3236509 3725 0.3232453 3730 0.3227849 3735 0.3222754 3740 0.3217252 3745 0.3211429 3750 0.3205412 3755 0.3199325 3760 0.3193316 3765 0.3187541 3770 0.318216 3775 0.3177324 3780 0.3173186 3785 0.3169864 3790 0.3167464 3795 0.3166058 3800 0.316568 3805 0.3166343 3810 0.3168017 3815 0.3170642 3820 0.3174139 3825 0.3178401 3830 0.3183306 3835 0.3188739 3840 0.3194585 3845 0.3200759 3850 0.3207181 3855 0.3213782 3860 0.3220521 3865 0.3227344 3870 0.3234215 3875 0.3241083 3880 0.3247898 3885 0.3254618 3890 0.3261174 3895 0.3267512 3900 0.3273565 3905 0.3279268 3910 0.3284562 3915 0.3289403 3920 0.3293776 3925 0.3297673 3930 0.3301138 3935 0.3304212 3940 0.3306959 3945 0.3309436 3950 0.3311687 3955 0.3313732 3960 0.3315574 3965 0.3317179 3970 0.3318503 3975 0.3319497 3980 0.3320121 3985 0.3320363 3990 0.3320245 3995 0.3319812 4000 0.3319161 4005 0.3318396 4010 0.3317632 4015 0.331697 4020 0.3316489 4025 0.331622 4030 0.3316151 4035 0.3316227 4040 0.3316349 4045 0.3316405 4050 0.3316274 4055 0.3315869 4060 0.3315123 4065 0.3314026 4070 0.3312594 4075 0.3310881 4080 0.3308946 4085 0.330685 4090 0.3304665 4095 0.3302442 4100 0.3300233 4105 0.3298074 4110 0.3295985 4115 0.3293961 4120 0.3291975 4125 0.3289982 4130 0.328793 4135 0.3285774 4140 0.3283497 4145 0.3281119 4150 0.3278696 4155 0.327631 4160 0.3274052 4165 0.3272009 4170 0.3270259 4175 0.3268839 4180 0.3267758 4185 0.326699 4190 0.3266476 4195 0.3266119 4200 0.3265804 4205 0.3265413 4210 0.3264841 4215 0.3264017 4220 0.3262911 4225 0.3261547 4230 0.3259966 4235 0.3258255 4240 0.3256486 4245 0.3254741 4250 0.3253089 4255 0.3251591 4260 0.3250288 4265 0.3249207 4270 0.3248347 4275 0.3247697 4280 0.3247204 4285 0.324681 4290 0.3246445 4295 0.324604 4300 0.3245547 4305 0.3244923 4310 0.3244154 4315 0.3243224 4320 0.324214 4325 0.3240905 4330 0.3239524 4335 0.3238008 4340 0.3236375 4345 0.3234653 4350 0.3232895 4355 0.3231163 4360 0.3229536 4365 0.3228084 4370 0.3226867 4375 0.3225898 4380 0.3225166 4385 0.3224607 4390 0.322415 4395 0.322371 4400 0.322322 4405 0.3222632 4410 0.3221944 4415 0.3221163 4420 0.322032 4425 0.3219445 4430 0.3218554 4435 0.3217662 4440 0.3216778 4445 0.3215908 4450 0.3215065 4455 0.3214259 4460 0.3213524 4465 0.3212886 4470 0.3212376 4475 0.3212012 4480 0.3211822 4485 0.3211817 4490 0.3211987 4495 0.3212321 4500 0.3212782 4505 0.3213325 4510 0.3213892 4515 0.321442 4520 0.3214857 4525 0.3215177 4530 0.3215364 4535 0.3215443 4540 0.3215448 4545 0.3215419 4550 0.3215394 4555 0.3215383 4560 0.321539 4565 0.3215397 4570 0.321538 4575 0.3215306 4580 0.321515 4585 0.3214898 4590 0.3214539 4595 0.321407 4600 0.3213499 4605 0.3212844 4610 0.3212125 4615 0.3211377 4620 0.3210616 4625 0.3209868 4630 0.320914 4635 0.3208439 4640 0.320776 4645 0.320711 4650 0.3206478 4655 0.3205881 4660 0.320531 4665 0.3204785 4670 0.320429 4675 0.3203825 4680 0.3203373 4685 0.320292 4690 0.3202449 4695 0.3201959 4700 0.3201447 4705 0.3200914 4710 0.3200372 4715 0.3199835 4720 0.3199303 4725 0.3198787 4730 0.3198283 4735 0.3197783 4740 0.3197275 4745 0.3196745 4750 0.3196176 4755 0.3195558 4760 0.3194888 4765 0.3194168 4770 0.3193412 4775 0.3192638 4780 0.3191876 4785 0.3191146 4790 0.3190461 4795 0.3189834 4800 0.3189258 4805 0.3188732 4810 0.3188251 4815 0.3187811 4820 0.3187412 4825 0.3187061 4830 0.3186756 4835 0.3186491 4840 0.3186249 4845 0.3186005 4850 0.3185724 4855 0.3185382 4860 0.3184951 4865 0.318441 4870 0.318376 4875 0.3183005 4880 0.3182162 4885 0.3181265 4890 0.3180344 4895 0.3179441 4900 0.3178603 4905 0.3177861 4910 0.3177224 4915 0.31767 4920 0.317625 4925 0.317584 4930 0.3175415 4935 0.3174939 4940 0.3174364 4945 0.3173691 4950 0.3172925 4955 0.3172081 4960 0.3171205 4965 0.3170333 4970 0.3169503 4975 0.3168732 4980 0.3168037 4985 0.316741 4990 0.3166846 4995 0.3166333 5000 0.3165877 5005 0.3165475 5010 0.3165132 5015 0.3164842 5020 0.3164593 5025 0.3164366 5030 0.3164131 5035 0.3163852 5040 0.3163517 5045 0.3163131 5050 0.3162711 5055 0.3162285 5060 0.3161899 5065 0.3161572 5070 0.3161322 5075 0.3161138 5080 0.3160985 5085 0.3160832 5090 0.3160623 5095 0.3160334 5100 0.3159941 5105 0.3159448 5110 0.3158872 5115 0.3158235 5120 0.3157564 5125 0.3156866 5130 0.3156149 5135 0.3155402 5140 0.3154624 5145 0.3153811 5150 0.3152962 5155 0.3152083 5160 0.3151181 5165 0.3150269 5170 0.3149346 5175 0.3148425 5180 0.3147537 5185 0.3146691 5190 0.314593 5195 0.3145278 5200 0.3144757 5205 0.3144378 5210 0.3144131 5215 0.3143992 5220 0.3143928 5225 0.3143896 5230 0.3143866 5235 0.3143798 5240 0.314368 5245 0.3143499 5250 0.3143262 5255 0.3142967 5260 0.3142612 5265 0.3142195 5270 0.3141713 5275 0.3141164 5280 0.3140553 5285 0.3139888 5290 0.3139198 5295 0.3138511 5300 0.3137857 5305 0.313727 5310 0.3136759 5315 0.313633 5320 0.3135954 5325 0.3135607 5330 0.313524 5335 0.3134828 5340 0.3134346 5345 0.3133795 5350 0.3133188 5355 0.3132554 5360 0.3131913 5365 0.3131294 5370 0.3130704 5375 0.3130146 5380 0.3129615 5385 0.3129102 5390 0.3128605 5395 0.3128115 5400 0.3127643 5405 0.3127194 5410 0.3126771 5415 0.3126382 5420 0.312602 5425 0.3125679 5430 0.312535 5435 0.3125021 5440 0.3124689 5445 0.3124354 5450 0.312403 5455 0.3123726 5460 0.3123473 5465 0.3123278 5470 0.312315 5475 0.3123077 5480 0.3123044 5485 0.3123023 5490 0.3122976 5495 0.3122876 5500 0.3122707 5505 0.3122472 5510 0.3122175 5515 0.3121834 5520 0.312147 5525 0.3121096 5530 0.3120717 5535 0.3120346 5540 0.3119977 5545 0.3119613 5550 0.3119252 5555 0.3118896 5560 0.3118542 5565 0.311819 5570 0.3117837 5575 0.3117474 5580 0.3117101 5585 0.31167 5590 0.311628 5595 0.3115829 5600 0.3115352 5605 0.311485 5610 0.3114327 5615 0.3113782 5620 0.311321 5625 0.3112612 5630 0.3111985 5635 0.311134 5640 0.3110689 5645 0.3110037 5650 0.3109403 5655 0.3108798 5660 0.3108224 5665 0.310769 5670 0.3107178 5675 0.3106684 5680 0.310618 5685 0.3105654 5690 0.3105081 5695 0.3104453 5700 0.3103764 5705 0.3103025 5710 0.3102246 5715 0.3101449 5720 0.3100652 5725 0.3099867 5730 0.3099115 5735 0.3098391 5740 0.3097698 5745 0.3097025 5750 0.3096369 5755 0.3095716 5760 0.3095064 5765 0.3094407 5770 0.3093755 5775 0.3093112 5780 0.3092484 5785 0.309188 5790 0.3091306 5795 0.3090762 5800 0.3090256 5805 0.3089777 5810 0.3089337 5815 0.3088925 5820 0.3088552 5825 0.3088209 5830 0.3087902 5835 0.3087626 5840 0.3087374 5845 0.3087125 5850 0.3086862 5855 0.3086559 5860 0.3086169 5865 0.3085659 5870 0.3085009 5875 0.3084203 5880 0.3083256 5885 0.3082199 5890 0.3081088 5895 0.3079984 5900 0.3078942 5905 0.3078003 5910 0.3077184 5915 0.3076481 5920 0.307586 5925 0.3075289 5930 0.3074721 5935 0.3074125 5940 0.30735 5945 0.3072845 5950 0.3072202 5955 0.3071607 5960 0.3071108 5965 0.3070725 5970 0.307047 5975 0.3070318 5980 0.307023 5985 0.3070146 5990 0.3070001 5995 0.3069744 6000 0.3069342 6005 0.3068792 6010 0.3068122 6015 0.3067393 6020 0.3066675 6025 0.306604 6030 0.3065548 6035 0.3065223 6040 0.3065053 6045 0.3064994 6050 0.3064975 6055 0.3064924 6060 0.3064781 6065 0.3064499 6070 0.3064067 6075 0.3063487 6080 0.3062779 6085 0.3061977 6090 0.3061108 6095 0.3060207 6100 0.3059307 6105 0.3058438 6110 0.3057618 6115 0.3056869 6120 0.3056199 6125 0.3055605 6130 0.3055084 6135 0.3054622 6140 0.3054197 6145 0.3053794 6150 0.3053383 6155 0.3052939 6160 0.3052441 6165 0.3051865 6170 0.3051204 6175 0.3050455 6180 0.3049627 6185 0.3048746 6190 0.3047852 6195 0.3046976 6200 0.3046153 6205 0.3045407 6210 0.3044742 6215 0.304416 6220 0.3043646 6225 0.3043188 6230 0.3042766 6235 0.3042364 6240 0.3041963 6245 0.304155 6250 0.3041109 6255 0.3040636 6260 0.3040132 6265 0.3039598 6270 0.3039051 6275 0.3038506 6280 0.3037983 6285 0.3037494 6290 0.3037046 6295 0.3036637 6300 0.3036253 6305 0.3035869 6310 0.3035466 6315 0.3035012 6320 0.3034492 6325 0.3033891 6330 0.3033214 6335 0.3032478 6340 0.3031721 6345 0.3030981 6350 0.3030304 6355 0.3029723 6360 0.3029267 6365 0.3028932 6370 0.3028707 6375 0.3028547 6380 0.3028406 6385 0.3028226 6390 0.3027962 6395 0.3027585 6400 0.3027071 6405 0.3026431 6410 0.3025672 6415 0.3024826 6420 0.3023927 6425 0.3023007 6430 0.3022098 6435 0.3021233 6440 0.3020443 6445 0.3019752 6450 0.3019186 6455 0.3018756 6460 0.3018452 6465 0.3018245 6470 0.301809 6475 0.301793 6480 0.3017714 6485 0.3017401 6490 0.3016979 6495 0.3016457 6500 0.3015873 6505 0.3015271 6510 0.301469 6515 0.3014163 6520 0.3013703 6525 0.30133 6530 0.3012929 6535 0.3012567 6540 0.3012192 6545 0.3011788 6550 0.3011363 6555 0.301094 6560 0.3010548 6565 0.3010211 6570 0.3009954 6575 0.3009772 6580 0.3009643 6585 0.3009531 6590 0.3009383 6595 0.3009161 6600 0.3008828 6605 0.3008371 6610 0.3007794 6615 0.3007116 6620 0.3006382 6625 0.3005623 6630 0.3004888 6635 0.300421 6640 0.3003615 6645 0.3003118 6650 0.3002712 6655 0.30024 6660 0.3002154 6665 0.3001963 6670 0.3001804 6675 0.3001683 6680 0.3001582 6685 0.3001516 6690 0.3001475 6695 0.3001459 6700 0.3001449 6705 0.3001423 6710 0.3001346 6715 0.3001201 6720 0.3000963 6725 0.300063 6730 0.3000214 6735 0.2999735 6740 0.299922 6745 0.2998704 6750 0.2998214 6755 0.2997763 6760 0.2997371 6765 0.2997021 6770 0.2996703 6775 0.2996397 6780 0.2996082 6785 0.2995748 6790 0.2995382 6795 0.2994992 6800 0.2994582 6805 0.2994168 6810 0.2993762 6815 0.2993367 6820 0.2992978 6825 0.2992587 6830 0.2992176 6835 0.2991724 6840 0.2991225 6845 0.2990663 6850 0.2990042 6855 0.2989368 6860 0.2988649 6865 0.29879 6870 0.2987148 6875 0.2986412 6880 0.2985725 6885 0.2985121 6890 0.2984624 6895 0.2984244 6900 0.2983986 6905 0.2983835 6910 0.2983768 6915 0.2983744 6920 0.298373 6925 0.2983693 6930 0.2983598 6935 0.2983421 6940 0.2983142 6945 0.2982757 6950 0.2982264 6955 0.2981683 6960 0.2981042 6965 0.2980371 6970 0.2979695 6975 0.2979043 6980 0.2978425 6985 0.2977841 6990 0.2977286 6995 0.297675 7000 0.2976221 7005 0.2975694 7010 0.2975164 7015 0.2974641 7020 0.2974122 7025 0.2973625 7030 0.2973151 7035 0.2972708 7040 0.2972283 7045 0.2971873 7050 0.2971467 7055 0.2971064 7060 0.2970659 7065 0.2970259 7070 0.2969873 7075 0.2969505 7080 0.2969159 7085 0.2968835 7090 0.2968528 7095 0.2968229 7100 0.2967917 7105 0.2967596 7110 0.2967241 7115 0.2966842 7120 0.2966387 7125 0.2965865 7130 0.2965271 7135 0.296462 7140 0.2963929 7145 0.2963238 7150 0.2962584 7155 0.2961999 7160 0.29615 7165 0.2961094 7170 0.2960761 7175 0.2960486 7180 0.2960235 7185 0.2959985 7190 0.2959719 7195 0.2959426 7200 0.2959089 7205 0.2958701 7210 0.2958248 7215 0.2957718 7220 0.2957106 7225 0.2956415 7230 0.2955655 7235 0.2954856 7240 0.2954036 7245 0.2953232 7250 0.2952457 7255 0.2951725 7260 0.2951044 7265 0.295042 7270 0.2949861 7275 0.2949374 7280 0.2948967 7285 0.2948648 7290 0.2948413 7295 0.294824 7300 0.2948093 7305 0.2947924 7310 0.2947676 7315 0.2947318 7320 0.2946812 7325 0.2946152 7330 0.2945365 7335 0.2944476 7340 0.2943532 7345 0.2942572 7350 0.2941628 7355 0.294072 7360 0.2939854 7365 0.2939021 7370 0.2938223 7375 0.2937446 7380 0.2936689 7385 0.2935949 7390 0.293523 7395 0.2934541 7400 0.2933893 7405 0.2933298 7410 0.2932755 7415 0.2932267 7420 0.2931811 7425 0.293137 7430 0.2930918 7435 0.2930441 7440 0.2929921 7445 0.2929356 7450 0.2928756 7455 0.2928136 7460 0.2927512 7465 0.2926905 7470 0.2926331 7475 0.2925802 7480 0.2925322 7485 0.2924887 7490 0.2924488 7495 0.292412 7500 0.2923762 7505 0.2923394 7510 0.2923007 7515 0.2922579 7520 0.2922102 7525 0.2921576 7530 0.2921013 7535 0.2920432 7540 0.2919869 7545 0.2919353 7550 0.2918915 7555 0.2918562 7560 0.291828 7565 0.2918038 7570 0.2917791 7575 0.2917491 7580 0.2917098 7585 0.29166 7590 0.2915999 7595 0.291532 7600 0.2914592 7605 0.2913847 7610 0.2913104 7615 0.291238 7620 0.2911679 7625 0.2910995 7630 0.2910336 7635 0.2909701 7640 0.2909093 7645 0.2908522 7650 0.2907993 7655 0.2907506 7660 0.2907069 7665 0.2906669 7670 0.2906308 7675 0.2905974 7680 0.2905672 7685 0.2905381 7690 0.2905096 7695 0.2904785 7700 0.2904428 7705 0.2903992 7710 0.290345 7715 0.2902786 7720 0.2902004 7725 0.2901115 7730 0.2900162 7735 0.2899184 7740 0.2898227 7745 0.2897333 7750 0.2896522 7755 0.289581 7760 0.2895187 7765 0.2894636 7770 0.2894141 7775 0.289367 7780 0.2893209 7785 0.2892741 7790 0.2892269 7795 0.289179 7800 0.2891314 7805 0.2890854 7810 0.2890417 7815 0.2890006 7820 0.2889617 7825 0.2889245 7830 0.2888887 7835 0.2888534 7840 0.2888194 7845 0.288787 7850 0.2887574 7855 0.2887312 7860 0.2887093 7865 0.2886916 7870 0.2886784 7875 0.2886692 sptable-1.0.pre20180612/lib/onedstds/ctio/nd1m.250mag.dat000066400000000000000000000361201331023215600222650ustar00rootroot00000000000000# 2.5 mag ND filter 1.0M 3250 0.0590096 3255 0.05957838 3260 0.06021743 3265 0.06093263 3270 0.06172876 3275 0.06260914 3280 0.06357491 3285 0.06462479 3290 0.06575459 3295 0.06695747 3300 0.06822395 3305 0.06954288 3310 0.07090199 3315 0.07228875 3320 0.07369113 3325 0.07509785 3330 0.07649964 3335 0.07788789 3340 0.07925547 3345 0.08059675 3350 0.0819071 3355 0.08318287 3360 0.08442122 3365 0.08562087 3370 0.08678151 3375 0.08790296 3380 0.0889864 3385 0.09003389 3390 0.09104753 3395 0.09202952 3400 0.09298229 3405 0.09390819 3410 0.09480923 3415 0.09568644 3420 0.09654135 3425 0.09737402 3430 0.09818411 3435 0.09897119 3440 0.09973389 3445 0.1004717 3450 0.1011834 3455 0.1018685 3460 0.1025262 3465 0.1031569 3470 0.1037621 3475 0.1043419 3480 0.1048978 3485 0.1054306 3490 0.105941 3495 0.1064296 3500 0.1068952 3505 0.1073382 3510 0.1077579 3515 0.1081535 3520 0.1085249 3525 0.1088725 3530 0.1091977 3535 0.109502 3540 0.109787 3545 0.1100551 3550 0.1103081 3555 0.1105477 3560 0.1107754 3565 0.1109918 3570 0.1111983 3575 0.1113946 3580 0.1115809 3585 0.111757 3590 0.1119234 3595 0.1120791 3600 0.1122234 3605 0.1123557 3610 0.1124749 3615 0.1125804 3620 0.1126714 3625 0.1127473 3630 0.1128083 3635 0.1128548 3640 0.1128876 3645 0.1129075 3650 0.1129157 3655 0.1129139 3660 0.112902 3665 0.1128815 3670 0.1128528 3675 0.1128159 3680 0.1127709 3685 0.1127176 3690 0.1126559 3695 0.112585 3700 0.1125044 3705 0.1124133 3710 0.112311 3715 0.1121973 3720 0.1120716 3725 0.111934 3730 0.1117845 3735 0.1116244 3740 0.1114548 3745 0.1112783 3750 0.1110975 3755 0.110915 3760 0.1107348 3765 0.1105598 3770 0.110393 3775 0.1102369 3780 0.1100941 3785 0.1099656 3790 0.1098522 3795 0.1097547 3800 0.1096728 3805 0.1096063 3810 0.109554 3815 0.1095159 3820 0.1094903 3825 0.109476 3830 0.109472 3835 0.1094763 3840 0.1094877 3845 0.1095042 3850 0.1095248 3855 0.1095476 3860 0.1095719 3865 0.1095968 3870 0.1096215 3875 0.1096461 3880 0.1096699 3885 0.1096925 3890 0.1097142 3895 0.109734 3900 0.1097516 3905 0.1097671 3910 0.1097791 3915 0.1097878 3920 0.1097925 3925 0.1097928 3930 0.1097887 3935 0.10978 3940 0.1097668 3945 0.1097492 3950 0.1097273 3955 0.1097016 3960 0.1096715 3965 0.109637 3970 0.1095983 3975 0.1095543 3980 0.1095045 3985 0.1094484 3990 0.1093853 3995 0.1093145 4000 0.1092363 4005 0.1091513 4010 0.10906 4015 0.1089635 4020 0.1088643 4025 0.1087637 4030 0.108664 4035 0.1085669 4040 0.1084737 4045 0.1083859 4050 0.1083027 4055 0.1082241 4060 0.1081494 4065 0.1080772 4070 0.1080065 4075 0.1079361 4080 0.1078653 4085 0.1077934 4090 0.1077197 4095 0.1076446 4100 0.1075675 4105 0.1074888 4110 0.1074078 4115 0.1073247 4120 0.1072392 4125 0.1071507 4130 0.1070583 4135 0.1069624 4140 0.1068622 4145 0.1067581 4150 0.1066493 4155 0.1065369 4160 0.106421 4165 0.1063027 4170 0.1061826 4175 0.1060617 4180 0.1059409 4185 0.105821 4190 0.1057021 4195 0.1055842 4200 0.1054677 4205 0.105352 4210 0.1052365 4215 0.1051217 4220 0.1050073 4225 0.1048928 4230 0.1047788 4235 0.1046653 4240 0.1045527 4245 0.1044415 4250 0.1043317 4255 0.1042239 4260 0.1041187 4265 0.1040163 4270 0.1039172 4275 0.1038218 4280 0.1037307 4285 0.103644 4290 0.1035617 4295 0.103484 4300 0.1034095 4305 0.1033387 4310 0.1032696 4315 0.1032014 4320 0.1031336 4325 0.1030647 4330 0.102994 4335 0.102921 4340 0.1028455 4345 0.1027672 4350 0.102686 4355 0.1026022 4360 0.1025158 4365 0.1024269 4370 0.1023365 4375 0.1022443 4380 0.1021511 4385 0.1020571 4390 0.1019627 4395 0.101868 4400 0.1017736 4405 0.1016791 4410 0.1015849 4415 0.101491 4420 0.1013978 4425 0.1013052 4430 0.1012147 4435 0.1011269 4440 0.1010421 4445 0.1009613 4450 0.1008854 4455 0.1008147 4460 0.1007493 4465 0.1006889 4470 0.100633 4475 0.1005804 4480 0.1005304 4485 0.1004817 4490 0.1004328 4495 0.1003829 4500 0.1003306 4505 0.1002751 4510 0.100216 4515 0.1001529 4520 0.1000852 4525 0.1000137 4530 0.09993774 4535 0.09985811 4540 0.0997749 4545 0.0996887 4550 0.0995999 4555 0.09950919 4560 0.09941667 4565 0.09932398 4570 0.09923112 4575 0.09913898 4580 0.0990485 4585 0.09895987 4590 0.0988742 4595 0.09879208 4600 0.0987134 4605 0.09863926 4610 0.09856982 4615 0.0985049 4620 0.09844429 4625 0.09838789 4630 0.09833449 4635 0.09828335 4640 0.09823298 4645 0.09818221 4650 0.09813029 4655 0.09807634 4660 0.09801937 4665 0.09795958 4670 0.09789681 4675 0.09783179 4680 0.09776538 4685 0.09769774 4690 0.0976299 4695 0.09756201 4700 0.09749448 4705 0.09742773 4710 0.09736091 4715 0.09729468 4720 0.09722822 4725 0.09716124 4730 0.09709406 4735 0.09702659 4740 0.0969587 4745 0.09689075 4750 0.09682262 4755 0.0967549 4760 0.09668713 4765 0.09661955 4770 0.09655184 4775 0.09648412 4780 0.09641629 4785 0.09634769 4790 0.09627879 4795 0.0962094 4800 0.09613962 4805 0.09606957 4810 0.09599961 4815 0.09592992 4820 0.09586077 4825 0.09579241 4830 0.09572471 4835 0.09565759 4840 0.09559148 4845 0.09552622 4850 0.09546179 4855 0.09539819 4860 0.09533579 4865 0.09527444 4870 0.09521431 4875 0.09515517 4880 0.09509718 4885 0.09503984 4890 0.09498275 4895 0.09492505 4900 0.09486669 4905 0.09480686 4910 0.09474492 4915 0.09468096 4920 0.09461451 4925 0.09454525 4930 0.09447396 4935 0.09440004 4940 0.09432429 4945 0.09424674 4950 0.09416765 4955 0.09408808 4960 0.09400798 4965 0.0939275 4970 0.09384739 4975 0.09376799 4980 0.09368999 4985 0.09361345 4990 0.09353895 4995 0.093467 5000 0.09339756 5005 0.0933314 5010 0.09326863 5015 0.09320933 5020 0.0931536 5025 0.0931012 5030 0.09305221 5035 0.09300649 5040 0.09296333 5045 0.09292245 5050 0.0928834 5055 0.09284573 5060 0.0928086 5065 0.09277195 5070 0.09273475 5075 0.09269702 5080 0.09265781 5085 0.09261692 5090 0.09257407 5095 0.09252883 5100 0.09248167 5105 0.09243298 5110 0.09238297 5115 0.09233225 5120 0.09228146 5125 0.09223104 5130 0.09218168 5135 0.0921334 5140 0.09208631 5145 0.09204073 5150 0.09199619 5155 0.09195268 5160 0.09190977 5165 0.09186792 5170 0.0918265 5175 0.09178556 5180 0.09174502 5185 0.09170485 5190 0.09166539 5195 0.09162605 5200 0.09158659 5205 0.09154695 5210 0.09150678 5215 0.09146493 5220 0.09142244 5225 0.09137779 5230 0.09133149 5235 0.09128349 5240 0.09123433 5245 0.09118409 5250 0.09113348 5255 0.09108233 5260 0.09103174 5265 0.09098191 5270 0.09093249 5275 0.09088409 5280 0.09083652 5285 0.09078938 5290 0.09074295 5295 0.09069687 5300 0.0906508 5305 0.09060514 5310 0.09055943 5315 0.09051365 5320 0.09046775 5325 0.0904218 5330 0.09037554 5335 0.09032905 5340 0.09028232 5345 0.09023552 5350 0.09018911 5355 0.09014261 5360 0.09009666 5365 0.09005153 5370 0.09000749 5375 0.08996433 5380 0.08992226 5385 0.08988131 5390 0.08984136 5395 0.08980244 5400 0.08976387 5405 0.08972568 5410 0.08968752 5415 0.08964908 5420 0.08961017 5425 0.08957034 5430 0.08952927 5435 0.08948762 5440 0.08944464 5445 0.08940083 5450 0.08935642 5455 0.08931191 5460 0.08926755 5465 0.08922386 5470 0.08918113 5475 0.08913987 5480 0.08910012 5485 0.08906174 5490 0.08902478 5495 0.08898897 5500 0.08895344 5505 0.08891785 5510 0.08888149 5515 0.08884389 5520 0.08880442 5525 0.08876324 5530 0.08872015 5535 0.08867538 5540 0.08862948 5545 0.08858294 5550 0.08853639 5555 0.08849013 5560 0.08844519 5565 0.08840108 5570 0.08835834 5575 0.08831661 5580 0.0882758 5585 0.08823508 5590 0.0881942 5595 0.08815271 5600 0.08811003 5605 0.08806639 5610 0.0880217 5615 0.08797639 5620 0.08793074 5625 0.08788561 5630 0.08784145 5635 0.08779889 5640 0.08775794 5645 0.08771914 5650 0.08768224 5655 0.08764678 5660 0.08761257 5665 0.08757865 5670 0.08754492 5675 0.08751016 5680 0.08747458 5685 0.08743733 5690 0.0873986 5695 0.08735824 5700 0.08731616 5705 0.08727282 5710 0.08722853 5715 0.08718336 5720 0.0871383 5725 0.08709323 5730 0.0870487 5735 0.08700509 5740 0.08696288 5745 0.08692186 5750 0.08688236 5755 0.0868442 5760 0.08680743 5765 0.08677173 5770 0.08673656 5775 0.08670169 5780 0.08666706 5785 0.08663219 5790 0.08659696 5795 0.08656162 5800 0.08652586 5805 0.08649009 5810 0.08645475 5815 0.08641975 5820 0.08638525 5825 0.08635175 5830 0.08631926 5835 0.0862878 5840 0.08625728 5845 0.08622754 5850 0.08619832 5855 0.08616948 5860 0.08614117 5865 0.08611238 5870 0.08608335 5875 0.08605343 5880 0.08602279 5885 0.08599138 5890 0.08595926 5895 0.08592647 5900 0.08589249 5905 0.0858578 5910 0.08582192 5915 0.08578443 5920 0.0857454 5925 0.08570378 5930 0.08565962 5935 0.08561265 5940 0.08556271 5945 0.08551014 5950 0.08545578 5955 0.08540016 5960 0.0853442 5965 0.08528942 5970 0.08523624 5975 0.08518624 5980 0.08513951 5985 0.08509659 5990 0.08505768 5995 0.08502227 6000 0.08499027 6005 0.08496035 6010 0.08493209 6015 0.0849049 6020 0.0848776 6025 0.08484965 6030 0.08482045 6035 0.08478981 6040 0.08475775 6045 0.08472419 6050 0.0846898 6055 0.08465475 6060 0.08461988 6065 0.08458585 6070 0.08455342 6075 0.08452296 6080 0.08449501 6085 0.08446909 6090 0.08444577 6095 0.08442426 6100 0.08440428 6105 0.08438492 6110 0.08436567 6115 0.08434576 6120 0.08432496 6125 0.08430243 6130 0.08427828 6135 0.08425195 6140 0.08422321 6145 0.08419263 6150 0.08415937 6155 0.0841241 6160 0.08408624 6165 0.08404624 6170 0.08400417 6175 0.08396011 6180 0.08391428 6185 0.08386766 6190 0.08382064 6195 0.08377379 6200 0.08372802 6205 0.08368372 6210 0.08364165 6215 0.08360194 6220 0.08356464 6225 0.08352972 6230 0.08349675 6235 0.0834657 6240 0.08343589 6245 0.08340776 6250 0.08338069 6255 0.08335532 6260 0.08333153 6265 0.08330965 6270 0.08329003 6275 0.08327222 6280 0.08325577 6285 0.08324057 6290 0.08322561 6295 0.08320987 6300 0.08319259 6305 0.08317257 6310 0.08314954 6315 0.08312279 6320 0.08309228 6325 0.08305866 6330 0.08302224 6335 0.08298355 6340 0.08294386 6345 0.0829038 6350 0.08286417 6355 0.0828253 6360 0.08278751 6365 0.08275086 6370 0.08271504 6375 0.08267981 6380 0.08264434 6385 0.08260845 6390 0.08257157 6395 0.08253354 6400 0.08249384 6405 0.08245325 6410 0.0824123 6415 0.08237154 6420 0.08233178 6425 0.08229422 6430 0.08225942 6435 0.08222818 6440 0.08220041 6445 0.08217644 6450 0.08215576 6455 0.08213806 6460 0.08212203 6465 0.08210707 6470 0.08209199 6475 0.08207613 6480 0.08205866 6485 0.08203875 6490 0.0820167 6495 0.08199209 6500 0.08196502 6505 0.0819357 6510 0.08190477 6515 0.08187252 6520 0.08183956 6525 0.08180654 6530 0.08177358 6535 0.08174144 6540 0.0817104 6545 0.08168072 6550 0.0816524 6555 0.0816254 6560 0.08159959 6565 0.08157438 6570 0.08154941 6575 0.08152455 6580 0.08149911 6585 0.08147275 6590 0.08144528 6595 0.08141661 6600 0.08138669 6605 0.08135534 6610 0.08132321 6615 0.0812903 6620 0.08125698 6625 0.08122367 6630 0.08119106 6635 0.08115935 6640 0.08112884 6645 0.0811004 6650 0.08107424 6655 0.08105046 6660 0.08102888 6665 0.08100957 6670 0.0809918 6675 0.08097499 6680 0.08095849 6685 0.08094143 6690 0.08092333 6695 0.08090342 6700 0.08088136 6705 0.08085703 6710 0.08083045 6715 0.08080214 6720 0.080773 6725 0.08074319 6730 0.08071381 6735 0.08068495 6740 0.08065772 6745 0.08063131 6750 0.08060652 6755 0.08058274 6760 0.0805599 6765 0.08053708 6770 0.08051384 6775 0.08048951 6780 0.08046395 6785 0.08043689 6790 0.08040757 6795 0.08037603 6800 0.08034235 6805 0.08030701 6810 0.08026946 6815 0.08023065 6820 0.08019073 6825 0.08015008 6830 0.08010895 6835 0.080068 6840 0.08002716 6845 0.07998706 6850 0.07994753 6855 0.07990891 6860 0.0798713 6865 0.07983457 6870 0.079799 6875 0.07976431 6880 0.07973021 6885 0.07969731 6890 0.07966536 6895 0.0796345 6900 0.07960539 6905 0.07957804 6910 0.07955276 6915 0.07953053 6920 0.07951075 6925 0.07949364 6930 0.07947892 6935 0.07946581 6940 0.07945377 6945 0.07944149 6950 0.07942832 6955 0.079413 6960 0.07939506 6965 0.07937408 6970 0.07934964 6975 0.07932252 6980 0.07929289 6985 0.079261 6990 0.07922786 6995 0.07919419 7000 0.07916027 7005 0.07912714 7010 0.0790944 7015 0.0790627 7020 0.07903206 7025 0.07900238 7030 0.07897317 7035 0.07894456 7040 0.07891608 7045 0.07888722 7050 0.07885796 7055 0.07882773 7060 0.07879711 7065 0.07876563 7070 0.07873363 7075 0.07870121 7080 0.07866919 7085 0.07863778 7090 0.07860727 7095 0.07857835 7100 0.07855058 7105 0.07852459 7110 0.07849979 7115 0.07847632 7120 0.07845342 7125 0.07843094 7130 0.07840842 7135 0.07838577 7140 0.07836241 7145 0.07833845 7150 0.07831353 7155 0.07828795 7160 0.07826214 7165 0.07823527 7170 0.07820809 7175 0.07818025 7180 0.07815176 7185 0.07812213 7190 0.07809156 7195 0.07806003 7200 0.07802796 7205 0.07799578 7210 0.07796431 7215 0.07793444 7220 0.07790667 7225 0.07788217 7230 0.07786059 7235 0.07784229 7240 0.07782656 7245 0.0778125 7250 0.07779901 7255 0.07778478 7260 0.07776868 7265 0.07775015 7270 0.07772869 7275 0.07770437 7280 0.0776776 7285 0.0776493 7290 0.07762015 7295 0.07759141 7300 0.07756407 7305 0.07753849 7310 0.07751483 7315 0.07749313 7320 0.07747275 7325 0.07745289 7330 0.07743293 7335 0.0774119 7340 0.07738871 7345 0.07736354 7350 0.0773359 7355 0.07730591 7360 0.07727396 7365 0.07724082 7370 0.07720715 7375 0.07717329 7380 0.07714032 7385 0.07710821 7390 0.07707728 7395 0.07704759 7400 0.07701868 7405 0.07699012 7410 0.07696205 7415 0.07693374 7420 0.07690513 7425 0.07687623 7430 0.07684731 7435 0.07681841 7440 0.07678973 7445 0.07676173 7450 0.07673407 7455 0.07670736 7460 0.07668138 7465 0.07665616 7470 0.07663143 7475 0.07660699 7480 0.07658309 7485 0.07655931 7490 0.0765354 7495 0.0765112 7500 0.07648683 7505 0.07646216 7510 0.07643694 7515 0.07641095 7520 0.0763846 7525 0.07635731 7530 0.07632929 7535 0.07630093 7540 0.07627171 7545 0.07624215 7550 0.07621246 7555 0.07618301 7560 0.07615387 7565 0.07612586 7570 0.07609909 7575 0.07607347 7580 0.0760498 7585 0.07602781 7590 0.07600754 7595 0.07598883 7600 0.07597173 7605 0.07595503 7610 0.0759393 7615 0.07592321 7620 0.07590652 7625 0.07588911 7630 0.07587022 7635 0.07584995 7640 0.07582825 7645 0.07580519 7650 0.07578081 7655 0.07575536 7660 0.07572926 7665 0.07570249 7670 0.07567579 7675 0.07564931 7680 0.07562333 7685 0.07559806 7690 0.07557379 7695 0.07555092 7700 0.07552963 7705 0.0755093 7710 0.07549065 7715 0.07547278 7720 0.07545633 7725 0.07544059 7730 0.07542508 7735 0.07540983 7740 0.07539457 7745 0.07537866 7750 0.07536232 7755 0.07534516 7760 0.07532728 7765 0.07530843 7770 0.07528865 7775 0.07526809 7780 0.07524651 7785 0.07522416 7790 0.07520116 7795 0.07517737 7800 0.07515287 7805 0.07512802 7810 0.07510287 7815 0.07507789 7820 0.07505316 7825 0.07502931 7830 0.07500643 7835 0.07498502 7840 0.07496525 7845 0.07494731 7850 0.07493126 7855 0.07491703 7860 0.07490462 7865 0.07489384 7870 0.07488459 7875 0.07487673 sptable-1.0.pre20180612/lib/onedstds/ctio/nd1m.500mag.dat000066400000000000000000000342461331023215600222720ustar00rootroot00000000000000# 5.0 mag ND filter 1.0M 3650 0.01141884 3655 0.01142718 3660 0.01143594 3665 0.01144507 3670 0.01145453 3675 0.01146425 3680 0.01147412 3685 0.01148402 3690 0.01149379 3695 0.0115033 3700 0.01151235 3705 0.01152072 3710 0.01152828 3715 0.01153482 3720 0.01154016 3725 0.01154416 3730 0.01154669 3735 0.01154761 3740 0.01154688 3745 0.01154443 3750 0.01154024 3755 0.01153429 3760 0.01152659 3765 0.01151716 3770 0.01150607 3775 0.01149338 3780 0.01147925 3785 0.01146377 3790 0.01144719 3795 0.01142971 3800 0.01141161 3805 0.01139317 3810 0.01137469 3815 0.01135648 3820 0.01133889 3825 0.01132219 3830 0.01130667 3835 0.01129255 3840 0.01128009 3845 0.01126945 3850 0.01126075 3855 0.01125417 3860 0.01124972 3865 0.01124746 3870 0.01124736 3875 0.01124939 3880 0.01125349 3885 0.01125953 3890 0.01126735 3895 0.01127676 3900 0.01128756 3905 0.01129953 3910 0.01131242 3915 0.01132598 3920 0.01133996 3925 0.01135415 3930 0.01136831 3935 0.0113823 3940 0.01139589 3945 0.01140898 3950 0.01142148 3955 0.01143327 3960 0.01144431 3965 0.01145457 3970 0.01146401 3975 0.01147265 3980 0.01148043 3985 0.01148737 3990 0.01149344 3995 0.01149866 4000 0.01150297 4005 0.01150635 4010 0.01150879 4015 0.01151025 4020 0.01151071 4025 0.01151019 4030 0.01150871 4035 0.01150626 4040 0.01150288 4045 0.01149866 4050 0.01149362 4055 0.01148785 4060 0.01148143 4065 0.01147445 4070 0.01146697 4075 0.01145909 4080 0.01145087 4085 0.01144239 4090 0.01143368 4095 0.01142476 4100 0.01141569 4105 0.01140646 4110 0.01139708 4115 0.01138751 4120 0.01137777 4125 0.01136782 4130 0.01135768 4135 0.01134734 4140 0.01133678 4145 0.01132608 4150 0.01131523 4155 0.01130429 4160 0.01129331 4165 0.0112823 4170 0.01127135 4175 0.0112605 4180 0.01124977 4185 0.01123916 4190 0.01122869 4195 0.01121836 4200 0.01120815 4205 0.01119803 4210 0.01118799 4215 0.01117802 4220 0.01116808 4225 0.01115818 4230 0.01114833 4235 0.01113853 4240 0.01112883 4245 0.01111927 4250 0.01110987 4255 0.01110068 4260 0.01109171 4265 0.011083 4270 0.01107459 4275 0.01106645 4280 0.0110586 4285 0.01105101 4290 0.01104367 4295 0.01103657 4300 0.01102969 4305 0.01102299 4310 0.01101648 4315 0.01101011 4320 0.01100388 4325 0.01099775 4330 0.01099171 4335 0.01098573 4340 0.01097978 4345 0.01097383 4350 0.01096785 4355 0.01096182 4360 0.01095572 4365 0.01094955 4370 0.01094329 4375 0.01093696 4380 0.01093053 4385 0.01092406 4390 0.01091753 4395 0.01091099 4400 0.01090444 4405 0.01089788 4410 0.01089134 4415 0.01088481 4420 0.01087836 4425 0.01087194 4430 0.01086558 4435 0.0108593 4440 0.01085309 4445 0.01084699 4450 0.01084102 4455 0.01083522 4460 0.01082955 4465 0.01082408 4470 0.01081882 4475 0.01081381 4480 0.010809 4485 0.01080447 4490 0.01080017 4495 0.01079614 4500 0.01079235 4505 0.01078883 4510 0.01078554 4515 0.01078247 4520 0.01077963 4525 0.01077697 4530 0.01077453 4535 0.01077222 4540 0.01077006 4545 0.01076803 4550 0.01076609 4555 0.01076423 4560 0.01076242 4565 0.01076065 4570 0.0107589 4575 0.01075716 4580 0.01075544 4585 0.01075372 4590 0.01075202 4595 0.01075034 4600 0.01074871 4605 0.01074712 4610 0.01074562 4615 0.01074415 4620 0.01074278 4625 0.01074143 4630 0.01074016 4635 0.01073889 4640 0.01073765 4645 0.0107364 4650 0.01073514 4655 0.01073384 4660 0.01073247 4665 0.01073107 4670 0.01072963 4675 0.01072814 4680 0.01072663 4685 0.01072511 4690 0.01072357 4695 0.01072203 4700 0.01072051 4705 0.01071902 4710 0.01071752 4715 0.01071606 4720 0.01071462 4725 0.01071319 4730 0.01071179 4735 0.01071039 4740 0.010709 4745 0.01070758 4750 0.01070615 4755 0.01070463 4760 0.01070304 4765 0.0107013 4770 0.01069944 4775 0.0106974 4780 0.01069516 4785 0.01069271 4790 0.01069005 4795 0.01068721 4800 0.01068423 4805 0.01068114 4810 0.01067794 4815 0.01067474 4820 0.01067155 4825 0.01066843 4830 0.01066539 4835 0.01066246 4840 0.01065962 4845 0.0106569 4850 0.01065426 4855 0.0106517 4860 0.01064916 4865 0.01064662 4870 0.01064407 4875 0.01064153 4880 0.01063896 4885 0.01063637 4890 0.0106338 4895 0.01063122 4900 0.01062871 4905 0.01062626 4910 0.01062387 4915 0.01062157 4920 0.01061937 4925 0.01061726 4930 0.01061527 4935 0.01061337 4940 0.01061154 4945 0.01060979 4950 0.01060812 4955 0.01060652 4960 0.01060495 4965 0.01060343 4970 0.01060194 4975 0.01060047 4980 0.01059902 4985 0.01059757 4990 0.0105961 4995 0.01059464 5000 0.01059316 5005 0.01059167 5010 0.0105902 5015 0.01058875 5020 0.01058734 5025 0.01058604 5030 0.01058482 5035 0.01058377 5040 0.01058289 5045 0.01058221 5050 0.01058179 5055 0.01058162 5060 0.01058173 5065 0.01058211 5070 0.0105828 5075 0.01058375 5080 0.01058496 5085 0.01058642 5090 0.01058804 5095 0.01058983 5100 0.01059175 5105 0.01059372 5110 0.01059571 5115 0.01059767 5120 0.01059956 5125 0.01060135 5130 0.01060297 5135 0.01060444 5140 0.01060572 5145 0.01060681 5150 0.01060767 5155 0.01060833 5160 0.0106088 5165 0.01060909 5170 0.01060923 5175 0.01060922 5180 0.01060913 5185 0.01060899 5190 0.01060884 5195 0.01060872 5200 0.01060871 5205 0.01060884 5210 0.01060913 5215 0.01060962 5220 0.01061034 5225 0.01061132 5230 0.01061255 5235 0.01061399 5240 0.01061564 5245 0.01061746 5250 0.01061943 5255 0.01062147 5260 0.01062358 5265 0.01062566 5270 0.01062774 5275 0.01062974 5280 0.01063167 5285 0.01063351 5290 0.01063525 5295 0.0106369 5300 0.01063843 5305 0.01063989 5310 0.01064127 5315 0.01064256 5320 0.0106438 5325 0.01064494 5330 0.01064603 5335 0.01064704 5340 0.01064799 5345 0.01064887 5350 0.01064971 5355 0.01065049 5360 0.01065123 5365 0.01065193 5370 0.01065266 5375 0.01065337 5380 0.0106541 5385 0.01065485 5390 0.01065567 5395 0.01065654 5400 0.01065752 5405 0.01065856 5410 0.01065972 5415 0.01066101 5420 0.01066241 5425 0.01066395 5430 0.0106656 5435 0.01066738 5440 0.01066929 5445 0.0106713 5450 0.01067339 5455 0.01067557 5460 0.01067781 5465 0.01068013 5470 0.01068246 5475 0.01068484 5480 0.01068722 5485 0.01068962 5490 0.01069202 5495 0.01069438 5500 0.01069675 5505 0.01069906 5510 0.01070134 5515 0.01070355 5520 0.01070571 5525 0.01070779 5530 0.0107098 5535 0.01071174 5540 0.01071359 5545 0.01071537 5550 0.01071708 5555 0.01071873 5560 0.01072034 5565 0.01072191 5570 0.01072349 5575 0.01072506 5580 0.01072667 5585 0.01072831 5590 0.01072998 5595 0.0107317 5600 0.01073348 5605 0.01073527 5610 0.0107371 5615 0.01073895 5620 0.01074078 5625 0.0107426 5630 0.0107444 5635 0.01074614 5640 0.01074785 5645 0.0107495 5650 0.0107511 5655 0.01075265 5660 0.01075415 5665 0.01075559 5670 0.01075701 5675 0.01075838 5680 0.0107597 5685 0.01076098 5690 0.01076222 5695 0.01076343 5700 0.01076459 5705 0.01076572 5710 0.01076684 5715 0.01076793 5720 0.01076902 5725 0.01077015 5730 0.01077129 5735 0.01077246 5740 0.01077367 5745 0.01077491 5750 0.01077618 5755 0.01077746 5760 0.01077874 5765 0.01077998 5770 0.01078118 5775 0.01078229 5780 0.01078333 5785 0.01078424 5790 0.01078502 5795 0.01078566 5800 0.01078616 5805 0.01078654 5810 0.01078677 5815 0.01078689 5820 0.01078692 5825 0.01078686 5830 0.01078675 5835 0.01078661 5840 0.01078647 5845 0.01078638 5850 0.01078637 5855 0.01078646 5860 0.01078668 5865 0.01078706 5870 0.01078764 5875 0.01078836 5880 0.01078928 5885 0.01079036 5890 0.0107916 5895 0.01079295 5900 0.01079436 5905 0.01079583 5910 0.01079731 5915 0.01079875 5920 0.01080015 5925 0.01080148 5930 0.01080276 5935 0.01080394 5940 0.01080509 5945 0.01080617 5950 0.01080724 5955 0.01080832 5960 0.01080942 5965 0.01081059 5970 0.01081184 5975 0.01081317 5980 0.01081463 5985 0.01081618 5990 0.01081784 5995 0.0108196 6000 0.01082143 6005 0.01082335 6010 0.01082529 6015 0.01082727 6020 0.01082927 6025 0.01083126 6030 0.01083323 6035 0.01083517 6040 0.0108371 6045 0.01083898 6050 0.0108408 6055 0.01084257 6060 0.01084421 6065 0.01084577 6070 0.01084719 6075 0.01084844 6080 0.01084955 6085 0.01085045 6090 0.01085117 6095 0.01085167 6100 0.01085201 6105 0.01085222 6110 0.01085232 6115 0.01085237 6120 0.01085243 6125 0.01085256 6130 0.01085282 6135 0.01085324 6140 0.01085388 6145 0.01085472 6150 0.01085581 6155 0.01085709 6160 0.01085857 6165 0.01086016 6170 0.01086184 6175 0.01086355 6180 0.01086526 6185 0.01086688 6190 0.01086841 6195 0.01086982 6200 0.01087108 6205 0.01087219 6210 0.01087313 6215 0.01087393 6220 0.01087459 6225 0.01087511 6230 0.01087548 6235 0.01087575 6240 0.01087588 6245 0.01087592 6250 0.01087586 6255 0.01087571 6260 0.01087552 6265 0.01087528 6270 0.010875 6275 0.01087473 6280 0.01087452 6285 0.01087435 6290 0.01087429 6295 0.01087433 6300 0.01087454 6305 0.01087489 6310 0.01087547 6315 0.01087626 6320 0.01087728 6325 0.01087854 6330 0.01088004 6335 0.01088177 6340 0.01088367 6345 0.01088573 6350 0.01088789 6355 0.01089009 6360 0.01089227 6365 0.01089434 6370 0.01089626 6375 0.01089801 6380 0.01089949 6385 0.01090073 6390 0.0109017 6395 0.01090242 6400 0.0109029 6405 0.01090319 6410 0.01090334 6415 0.01090337 6420 0.01090337 6425 0.01090336 6430 0.01090342 6435 0.01090356 6440 0.01090383 6445 0.01090424 6450 0.01090482 6455 0.01090558 6460 0.01090649 6465 0.01090754 6470 0.01090872 6475 0.01091001 6480 0.0109114 6485 0.01091285 6490 0.01091436 6495 0.01091591 6500 0.01091747 6505 0.01091906 6510 0.01092067 6515 0.0109223 6520 0.01092394 6525 0.01092564 6530 0.01092736 6535 0.01092914 6540 0.01093094 6545 0.01093279 6550 0.01093468 6555 0.01093661 6560 0.0109385 6565 0.0109404 6570 0.01094228 6575 0.01094408 6580 0.01094582 6585 0.01094743 6590 0.01094893 6595 0.01095029 6600 0.0109515 6605 0.01095261 6610 0.01095358 6615 0.01095447 6620 0.01095525 6625 0.010956 6630 0.01095674 6635 0.01095749 6640 0.01095827 6645 0.01095912 6650 0.01096007 6655 0.01096112 6660 0.0109623 6665 0.01096362 6670 0.01096506 6675 0.01096667 6680 0.01096841 6685 0.01097026 6690 0.01097225 6695 0.01097431 6700 0.01097646 6705 0.01097864 6710 0.01098083 6715 0.01098302 6720 0.01098517 6725 0.01098727 6730 0.01098927 6735 0.01099119 6740 0.010993 6745 0.01099469 6750 0.01099626 6755 0.01099774 6760 0.01099911 6765 0.01100039 6770 0.01100158 6775 0.01100271 6780 0.01100379 6785 0.01100485 6790 0.0110059 6795 0.01100696 6800 0.01100806 6805 0.01100923 6810 0.01101046 6815 0.01101179 6820 0.01101322 6825 0.01101473 6830 0.01101636 6835 0.01101803 6840 0.01101974 6845 0.01102147 6850 0.01102317 6855 0.01102482 6860 0.01102637 6865 0.01102778 6870 0.01102904 6875 0.01103012 6880 0.01103099 6885 0.01103167 6890 0.01103218 6895 0.01103252 6900 0.01103274 6905 0.01103284 6910 0.0110329 6915 0.01103296 6920 0.01103304 6925 0.01103319 6930 0.01103347 6935 0.01103388 6940 0.01103448 6945 0.01103527 6950 0.01103627 6955 0.01103749 6960 0.0110389 6965 0.01104051 6970 0.0110423 6975 0.01104424 6980 0.01104629 6985 0.01104842 6990 0.01105058 6995 0.01105278 7000 0.01105491 7005 0.01105699 7010 0.01105894 7015 0.01106077 7020 0.01106246 7025 0.01106399 7030 0.01106537 7035 0.01106659 7040 0.0110677 7045 0.0110687 7050 0.01106964 7055 0.01107057 7060 0.01107148 7065 0.01107245 7070 0.01107346 7075 0.01107458 7080 0.01107579 7085 0.01107709 7090 0.01107849 7095 0.01107994 7100 0.01108144 7105 0.01108295 7110 0.0110844 7115 0.01108577 7120 0.01108703 7125 0.01108814 7130 0.01108906 7135 0.01108978 7140 0.01109031 7145 0.01109061 7150 0.01109073 7155 0.01109064 7160 0.01109039 7165 0.01108996 7170 0.01108944 7175 0.01108877 7180 0.01108803 7185 0.01108722 7190 0.01108635 7195 0.01108547 7200 0.01108457 7205 0.01108368 7210 0.01108283 7215 0.01108205 7220 0.01108136 7225 0.01108079 7230 0.01108035 7235 0.01108008 7240 0.01107997 7245 0.01108003 7250 0.01108031 7255 0.01108074 7260 0.01108138 7265 0.01108221 7270 0.01108321 7275 0.01108437 7280 0.0110857 7285 0.01108717 7290 0.01108877 7295 0.01109052 7300 0.01109235 7305 0.01109426 7310 0.01109626 7315 0.01109829 7320 0.01110031 7325 0.01110232 7330 0.01110425 7335 0.01110611 7340 0.01110783 7345 0.01110939 7350 0.01111078 7355 0.01111196 7360 0.01111293 7365 0.01111371 7370 0.01111427 7375 0.01111463 7380 0.01111487 7385 0.01111495 7390 0.01111497 7395 0.01111491 7400 0.01111483 7405 0.01111475 7410 0.01111473 7415 0.01111472 7420 0.01111478 7425 0.01111485 7430 0.01111499 7435 0.01111512 7440 0.01111524 7445 0.01111533 7450 0.01111536 7455 0.01111533 7460 0.01111523 7465 0.01111507 7470 0.01111488 7475 0.01111465 7480 0.01111441 7485 0.01111419 7490 0.01111403 7495 0.01111395 7500 0.01111395 7505 0.01111405 7510 0.01111422 7515 0.01111447 7520 0.01111473 7525 0.01111503 7530 0.0111153 7535 0.0111155 7540 0.01111566 7545 0.01111567 7550 0.01111557 7555 0.0111153 7560 0.01111489 7565 0.01111434 7570 0.01111368 7575 0.01111289 7580 0.01111203 7585 0.01111113 7590 0.01111023 7595 0.01110937 7600 0.01110858 7605 0.01110791 7610 0.01110737 7615 0.01110701 7620 0.01110682 7625 0.01110682 7630 0.01110702 7635 0.01110741 7640 0.01110795 7645 0.01110861 7650 0.01110937 7655 0.0111102 7660 0.01111104 7665 0.01111187 7670 0.01111265 7675 0.01111334 7680 0.01111393 7685 0.01111441 7690 0.01111479 7695 0.01111506 7700 0.01111522 7705 0.0111153 7710 0.01111532 7715 0.0111153 7720 0.01111526 7725 0.01111522 7730 0.0111152 7735 0.01111521 7740 0.01111525 7745 0.01111533 7750 0.01111546 7755 0.01111564 7760 0.01111583 7765 0.01111608 7770 0.01111634 7775 0.01111664 7780 0.01111694 7785 0.01111725 7790 0.01111756 7795 0.01111785 7800 0.01111814 7805 0.0111184 7810 0.01111865 7815 0.01111886 7820 0.01111908 7825 0.01111925 7830 0.01111942 7835 0.0111196 7840 0.0111198 7845 0.01111999 7850 0.01112021 7855 0.01112045 7860 0.01112071 7865 0.011121 7870 0.01112129 7875 0.01112159 7880 0.01112187 7885 0.01112213 7890 0.01112238 7895 0.01112258 7900 0.01112277 7905 0.01112289 7910 0.011123 7915 0.01112305 7920 0.01112308 7925 0.01112306 sptable-1.0.pre20180612/lib/onedstds/ctio/nd4m.l000mag.dat000066400000000000000000000106041331023215600224340ustar00rootroot00000000000000# lower clear filter 4.0M 3000 0.9229788 3025 0.9230464 3050 0.9231152 3075 0.9231863 3100 0.9232585 3125 0.9233325 3150 0.9234073 3175 0.9234841 3200 0.9235617 3225 0.9236408 3250 0.9237214 3275 0.9238023 3300 0.9238833 3325 0.9239651 3350 0.9240469 3375 0.9241278 3400 0.9242091 3425 0.9242889 3450 0.9243674 3475 0.9244449 3500 0.92452 3525 0.9245924 3550 0.9246623 3575 0.9247296 3600 0.9247935 3625 0.9248533 3650 0.9249095 3675 0.9249611 3700 0.9250084 3725 0.9250503 3750 0.9250876 3775 0.9251196 3800 0.9251471 3825 0.9251693 3850 0.9251866 3875 0.9251988 3900 0.9252069 3925 0.9252114 3950 0.9252113 3975 0.9252089 4000 0.9252034 4025 0.9251959 4050 0.9251869 4075 0.9251779 4100 0.9251686 4125 0.9251605 4150 0.9251539 4175 0.9251504 4200 0.9251498 4225 0.9251538 4250 0.9251629 4275 0.9251778 4300 0.925199 4325 0.9252276 4350 0.9252636 4375 0.925308 4400 0.9253612 4425 0.9254231 4450 0.9254934 4475 0.9255745 4500 0.9256639 4525 0.9257635 4550 0.9258716 4575 0.9259889 4600 0.9261148 4625 0.9262494 4650 0.9263919 4675 0.9265417 4700 0.9266986 4725 0.9268614 4750 0.9270306 4775 0.9272044 4800 0.9273832 4825 0.9275648 4850 0.9277505 4875 0.9279382 4900 0.9281282 4925 0.92832 4950 0.9285124 4975 0.9287054 5000 0.9288979 5025 0.9290901 5050 0.9292817 5075 0.9294717 5100 0.9296603 5125 0.9298478 5150 0.9300328 5175 0.9302162 5200 0.9303972 5225 0.930576 5250 0.930753 5275 0.9309276 5300 0.9310998 5325 0.9312698 5350 0.9314383 5375 0.9316041 5400 0.9317679 5425 0.9319296 5450 0.9320892 5475 0.9322473 5500 0.9324026 5525 0.9325565 5550 0.932708 5575 0.9328575 5600 0.9330047 5625 0.9331498 5650 0.9332928 5675 0.9334331 5700 0.933571 5725 0.9337065 5750 0.9338391 5775 0.9339683 5800 0.9340956 5825 0.9342192 5850 0.9343399 5875 0.9344569 5900 0.9345707 5925 0.9346814 5950 0.9347892 5975 0.9348925 6000 0.9349933 6025 0.9350903 6050 0.9351837 6075 0.935274 6100 0.9353608 6125 0.9354448 6150 0.9355254 6175 0.935603 6200 0.9356778 6225 0.9357497 6250 0.9358187 6275 0.9358853 6300 0.9359495 6325 0.9360112 6350 0.936071 6375 0.9361281 6400 0.9361833 6425 0.9362369 6450 0.9362883 6475 0.9363372 6500 0.9363855 6525 0.9364315 6550 0.9364758 6575 0.9365184 6600 0.9365596 6625 0.9365996 6650 0.936638 6675 0.9366754 6700 0.9367113 6725 0.9367457 6750 0.936779 6775 0.9368116 6800 0.9368431 6825 0.9368737 6850 0.9369035 6875 0.936933 6900 0.9369612 6925 0.9369897 6950 0.937017 6975 0.9370442 7000 0.937071 7025 0.9370979 7050 0.9371244 7075 0.9371504 7100 0.9371766 7125 0.9372026 7150 0.9372285 7175 0.937254 7200 0.9372798 7225 0.937305 7250 0.9373303 7275 0.937355 7300 0.9373796 7325 0.9374029 7350 0.9374267 7375 0.9374498 7400 0.9374722 7425 0.9374939 7450 0.9375146 7475 0.9375353 7500 0.9375548 7525 0.9375744 7550 0.9375921 7575 0.9376101 7600 0.9376277 7625 0.9376437 7650 0.93766 7675 0.9376756 7700 0.9376907 7725 0.9377056 7750 0.9377205 7775 0.9377356 7800 0.9377507 7825 0.9377664 7850 0.9377821 7875 0.937798 7900 0.9378145 7925 0.9378317 7950 0.93785 7975 0.9378695 8000 0.9378898 8025 0.9379107 8050 0.9379331 8075 0.9379565 8100 0.9379815 8125 0.9380072 8150 0.9380345 8175 0.9380624 8200 0.9380919 8225 0.9381224 8250 0.9381544 8275 0.9381878 8300 0.9382217 8325 0.9382571 8350 0.9382939 8375 0.9383314 8400 0.9383702 8425 0.93841 8450 0.9384516 8475 0.9384944 8500 0.9385379 8525 0.9385837 8550 0.9386302 8575 0.938678 8600 0.9387277 8625 0.9387789 8650 0.9388319 8675 0.9388865 8700 0.9389433 8725 0.9390019 8750 0.939062 8775 0.9391246 8800 0.9391888 8825 0.9392554 8850 0.9393235 8875 0.9393941 8900 0.9394661 8925 0.9395399 8950 0.939615 8975 0.9396914 9000 0.9397685 9025 0.9398469 9050 0.9399255 9075 0.9400044 9100 0.9400834 9125 0.9401622 9150 0.9402403 9175 0.9403173 9200 0.940393 9225 0.9404672 9250 0.9405397 9275 0.9406103 9300 0.9406784 9325 0.940744 9350 0.9408067 9375 0.9408673 9400 0.9409243 9425 0.9409783 9450 0.9410295 9475 0.941078 9500 0.9411229 9525 0.9411656 9550 0.9412044 9575 0.9412407 9600 0.9412744 9625 0.9413049 9650 0.9413331 9675 0.941359 9700 0.9413829 9725 0.9414045 9750 0.9414243 9775 0.9414421 9800 0.9414584 9825 0.9414734 9850 0.9414865 9875 0.941499 9900 0.94151 9925 0.941521 9950 0.9415311 9975 0.9415399 10000 0.9415483 sptable-1.0.pre20180612/lib/onedstds/ctio/nd4m.l250mag.dat000066400000000000000000000106171331023215600224470ustar00rootroot00000000000000# 2.5 mag ND filter 4.0M 3000 0.1309844 3025 0.1309457 3050 0.1308958 3075 0.1308334 3100 0.1307576 3125 0.1306673 3150 0.130562 3175 0.1304406 3200 0.1303027 3225 0.1301478 3250 0.1299757 3275 0.1297864 3300 0.1295798 3325 0.1293561 3350 0.129116 3375 0.1288597 3400 0.1285877 3425 0.1283003 3450 0.127998 3475 0.1276817 3500 0.1273517 3525 0.1270086 3550 0.1266533 3575 0.1262864 3600 0.125909 3625 0.1255212 3650 0.1251243 3675 0.1247186 3700 0.1243055 3725 0.1238845 3750 0.1234565 3775 0.1230214 3800 0.1225796 3825 0.1221306 3850 0.1216744 3875 0.1212107 3900 0.120739 3925 0.1202601 3950 0.1197731 3975 0.1192788 4000 0.1187779 4025 0.1182709 4050 0.1177595 4075 0.117245 4100 0.116729 4125 0.1162137 4150 0.1157009 4175 0.1151928 4200 0.1146914 4225 0.1141986 4250 0.1137159 4275 0.1132451 4300 0.1127872 4325 0.1123433 4350 0.111914 4375 0.1114998 4400 0.1111009 4425 0.1107171 4450 0.110348 4475 0.1099932 4500 0.1096522 4525 0.109324 4550 0.1090078 4575 0.1087028 4600 0.108408 4625 0.1081225 4650 0.1078454 4675 0.1075758 4700 0.1073131 4725 0.1070566 4750 0.1068059 4775 0.1065605 4800 0.1063203 4825 0.1060852 4850 0.105855 4875 0.1056303 4900 0.1054109 4925 0.1051974 4950 0.1049899 4975 0.1047887 5000 0.1045943 5025 0.1044067 5050 0.1042263 5075 0.104053 5100 0.103887 5125 0.1037282 5150 0.1035762 5175 0.103431 5200 0.1032923 5225 0.1031595 5250 0.1030325 5275 0.1029108 5300 0.102794 5325 0.1026818 5350 0.1025741 5375 0.1024705 5400 0.1023712 5425 0.1022761 5450 0.1021855 5475 0.1020997 5500 0.1020188 5525 0.1019436 5550 0.1018744 5575 0.1018116 5600 0.1017559 5625 0.1017076 5650 0.1016671 5675 0.1016346 5700 0.1016101 5725 0.1015935 5750 0.1015846 5775 0.1015827 5800 0.1015872 5825 0.1015971 5850 0.1016114 5875 0.1016289 5900 0.1016481 5925 0.1016676 5950 0.1016862 5975 0.1017021 6000 0.101714 6025 0.1017205 6050 0.1017203 6075 0.1017125 6100 0.101696 6125 0.1016703 6150 0.1016351 6175 0.1015902 6200 0.1015361 6225 0.1014734 6250 0.1014031 6275 0.1013266 6300 0.1012458 6325 0.1011624 6350 0.101079 6375 0.1009978 6400 0.1009215 6425 0.1008527 6450 0.1007941 6475 0.1007484 6500 0.1007183 6525 0.1007063 6550 0.1007149 6575 0.1007466 6600 0.1008037 6625 0.1008887 6650 0.1010036 6675 0.1011507 6700 0.1013315 6725 0.1015475 6750 0.1017995 6775 0.1020877 6800 0.1024116 6825 0.1027694 6850 0.1031587 6875 0.1035755 6900 0.1040149 6925 0.1044711 6950 0.1049374 6975 0.1054062 7000 0.1058698 7025 0.1063206 7050 0.1067511 7075 0.1071545 7100 0.1075251 7125 0.1078584 7150 0.108151 7175 0.1084012 7200 0.1086088 7225 0.1087747 7250 0.1089013 7275 0.1089916 7300 0.1090497 7325 0.1090801 7350 0.1090873 7375 0.1090761 7400 0.1090508 7425 0.1090155 7450 0.1089739 7475 0.108929 7500 0.1088832 7525 0.1088385 7550 0.1087962 7575 0.1087571 7600 0.108722 7625 0.1086908 7650 0.1086634 7675 0.1086396 7700 0.108619 7725 0.1086011 7750 0.1085854 7775 0.1085715 7800 0.1085588 7825 0.1085469 7850 0.1085353 7875 0.1085235 7900 0.1085113 7925 0.1084979 7950 0.108483 7975 0.1084661 8000 0.1084465 8025 0.1084239 8050 0.1083975 8075 0.1083669 8100 0.1083314 8125 0.1082907 8150 0.1082442 8175 0.1081917 8200 0.1081328 8225 0.1080675 8250 0.1079957 8275 0.1079175 8300 0.1078334 8325 0.1077439 8350 0.1076493 8375 0.1075504 8400 0.1074482 8425 0.1073435 8450 0.1072373 8475 0.1071308 8500 0.1070248 8525 0.1069204 8550 0.1068187 8575 0.1067206 8600 0.106627 8625 0.1065387 8650 0.1064563 8675 0.1063807 8700 0.1063122 8725 0.1062515 8750 0.106199 8775 0.1061552 8800 0.1061204 8825 0.1060951 8850 0.1060798 8875 0.1060748 8900 0.1060805 8925 0.1060977 8950 0.1061265 8975 0.1061677 9000 0.1062216 9025 0.1062887 9050 0.1063695 9075 0.1064643 9100 0.1065736 9125 0.1066975 9150 0.1068365 9175 0.1069909 9200 0.1071609 9225 0.1073468 9250 0.107549 9275 0.1077679 9300 0.1080039 9325 0.1082574 9350 0.1085292 9375 0.1088194 9400 0.1091287 9425 0.1094576 9450 0.1098061 9475 0.1101744 9500 0.1105618 9525 0.1109681 9550 0.1113917 9575 0.1118314 9600 0.1122852 9625 0.1127506 9650 0.1132252 9675 0.1137059 9700 0.1141896 9725 0.1146732 9750 0.1151537 9775 0.1156281 9800 0.1160936 9825 0.1165479 9850 0.116989 9875 0.1174151 9900 0.1178247 9925 0.1182171 9950 0.1185914 9975 0.1189472 10000 0.1192846 sptable-1.0.pre20180612/lib/onedstds/ctio/nd4m.rc500mag.dat000066400000000000000000000121341331023215600226120ustar00rootroot00000000000000# 4m-RC spectrograph 5.0 mag ND filter 3091.977 0.008991015 3116.977 0.009096411 3141.977 0.009185717 3166.977 0.009260332 3191.977 0.009321663 3216.977 0.009371106 3241.977 0.009410065 3266.977 0.00943994 3291.977 0.009462134 3316.977 0.009478046 3341.977 0.009489082 3366.977 0.009496638 3391.977 0.009502118 3416.977 0.009506926 3441.977 0.009512259 3466.977 0.009518174 3491.977 0.009524327 3516.977 0.00953036 3541.977 0.009535926 3566.977 0.009540677 3591.977 0.009544257 3616.977 0.009546321 3641.977 0.009546515 3666.977 0.009544488 3691.977 0.009539894 3716.977 0.009532375 3741.977 0.009521588 3766.977 0.009507238 3791.977 0.009489523 3816.977 0.009468885 3841.977 0.009445766 3866.977 0.009420611 3891.977 0.009393862 3916.977 0.009365964 3941.977 0.009337358 3966.977 0.009308489 3991.977 0.009279801 4016.977 0.009251735 4041.977 0.009224735 4066.977 0.009199247 4091.977 0.009175686 4116.977 0.00915416 4141.977 0.009134561 4166.977 0.009116773 4191.977 0.00910069 4216.977 0.009086195 4241.977 0.009073175 4266.977 0.009061524 4291.977 0.009051122 4316.977 0.009041861 4341.977 0.009033628 4366.977 0.009026308 4391.977 0.009019792 4416.977 0.009013968 4441.977 0.009008781 4466.977 0.009004218 4491.977 0.009000273 4516.977 0.00899694 4541.977 0.008994211 4566.977 0.008992078 4591.977 0.008990535 4616.977 0.008989573 4641.977 0.008989186 4666.977 0.008989364 4691.977 0.008990102 4716.977 0.008991395 4741.977 0.00899323 4766.977 0.008995611 4791.977 0.008998546 4816.977 0.009002045 4841.977 0.009006116 4866.977 0.009010769 4891.977 0.009016014 4916.977 0.009021861 4941.977 0.009028316 4966.977 0.009035393 4991.977 0.009043098 5016.977 0.009051444 5041.977 0.009060437 5066.977 0.009070087 5091.977 0.009080387 5116.977 0.009091293 5141.977 0.009102765 5166.977 0.009114756 5191.977 0.009127223 5216.977 0.009140121 5241.977 0.009153408 5266.977 0.009167038 5291.977 0.009180968 5316.977 0.009195153 5341.977 0.009209549 5366.977 0.009224114 5391.977 0.009238802 5416.977 0.009253593 5441.977 0.009268527 5466.977 0.009283648 5491.977 0.009299002 5516.977 0.009314635 5541.977 0.009330595 5566.977 0.009346927 5591.977 0.009363677 5616.977 0.009380895 5641.977 0.009398621 5666.977 0.009416905 5691.977 0.009435792 5716.977 0.009455332 5741.977 0.009475539 5766.977 0.009496339 5791.977 0.009517638 5816.977 0.009539343 5841.977 0.009561356 5866.977 0.009583583 5891.977 0.009605931 5916.977 0.009628303 5941.977 0.009650603 5966.977 0.00967274 5991.977 0.009694615 6016.977 0.009716135 6041.977 0.009737206 6066.977 0.009757768 6091.977 0.009777943 6116.977 0.009792063 6141.977 0.009813652 6166.977 0.009835312 6191.977 0.009857133 6216.977 0.009879215 6241.977 0.009901647 6266.977 0.009924528 6291.977 0.009947948 6316.977 0.009972002 6341.977 0.009996787 6366.977 0.01002128 6391.977 0.01003857 6416.977 0.01006123 6441.977 0.01008385 6466.977 0.01010642 6491.977 0.01012895 6516.977 0.01015143 6541.977 0.01017386 6566.977 0.01019625 6591.977 0.0102186 6616.977 0.01024089 6641.977 0.01026315 6666.977 0.01028536 6691.977 0.01030752 6716.977 0.01032963 6741.977 0.0103517 6766.977 0.01037373 6791.977 0.01039571 6816.977 0.01041765 6841.977 0.01043954 6866.977 0.01046139 6891.977 0.01048319 6916.977 0.01050495 6941.977 0.01052667 6966.977 0.01054834 6991.977 0.01056996 7016.977 0.01059155 7041.977 0.01061309 7066.977 0.01063458 7091.977 0.01065603 7116.977 0.01067744 7141.977 0.01069881 7166.977 0.01072013 7191.977 0.0107414 7216.977 0.01076264 7241.977 0.01078383 7266.977 0.01080498 7291.977 0.01082608 7316.977 0.01084715 7341.977 0.01086816 7366.977 0.01088914 7391.977 0.01091008 7416.977 0.01093097 7441.977 0.01095182 7466.977 0.01097263 7491.977 0.01099339 7516.977 0.01101412 7541.977 0.0110348 7566.977 0.01105544 7591.977 0.01107604 7616.977 0.01109659 7641.977 0.01111711 7666.977 0.01113758 7691.977 0.01115802 7716.977 0.01117841 7741.977 0.01119876 7766.977 0.01121907 7791.977 0.01123933 7816.977 0.01125956 7841.977 0.01127975 7866.977 0.01129989 7891.977 0.01132 7916.977 0.01134006 7941.977 0.01136009 7966.977 0.01138007 7991.977 0.01140001 8016.977 0.01141992 8041.977 0.01143978 8066.977 0.01145961 8091.977 0.01147939 8116.977 0.01149914 8141.977 0.01151884 8166.977 0.01153851 8191.977 0.01155813 8216.977 0.01157772 8241.977 0.01159727 8266.977 0.01161678 8291.977 0.01163625 8316.977 0.01165568 8341.977 0.01167507 8366.977 0.01169442 8391.977 0.01171374 8416.977 0.01173301 8441.977 0.01175225 8466.977 0.01177145 8491.977 0.01179061 8516.977 0.01180974 8541.977 0.01182882 8566.977 0.01184787 8591.977 0.01186688 8616.977 0.01188585 8641.977 0.01190478 8666.977 0.01192368 8691.977 0.01194254 8716.977 0.01196136 8741.977 0.01198015 8766.977 0.01199889 8791.977 0.0120176 8816.977 0.01203628 8841.977 0.01205491 8866.977 0.01207351 8891.977 0.01209208 8916.977 0.0121106 8941.977 0.01212909 8966.977 0.01214755 8991.977 0.01216596 9016.977 0.01218435 9041.977 0.01220269 9066.977 0.012221 9091.977 0.01223927 9116.977 0.01225751 9141.977 0.01227571 9166.977 0.01229388 9191.977 0.01231201 9216.977 0.01233011 9241.977 0.01234817 9266.977 0.01236619 9291.977 0.01238418 9316.977 0.01240214 9341.977 0.01242006 9366.977 0.01243795 9391.977 0.01245575 sptable-1.0.pre20180612/lib/onedstds/ctio/nd4m.u000mag.dat000066400000000000000000000106221331023215600224450ustar00rootroot00000000000000# upper clear filter 4.0M 2975 0.9295918 3000 0.9298539 3025 0.9301121 3050 0.9303651 3075 0.930612 3100 0.9308519 3125 0.9310838 3150 0.931304 3175 0.9315138 3200 0.9317085 3225 0.9318892 3250 0.9320549 3275 0.9322044 3300 0.9323359 3325 0.9324499 3350 0.9325459 3375 0.9326245 3400 0.9326866 3425 0.9327331 3450 0.9327655 3475 0.9327844 3500 0.9327925 3525 0.9327923 3550 0.9327859 3575 0.9327763 3600 0.9327661 3625 0.9327574 3650 0.9327537 3675 0.9327566 3700 0.9327688 3725 0.9327925 3750 0.9328273 3775 0.9328756 3800 0.9329379 3825 0.9330124 3850 0.9330987 3875 0.9331956 3900 0.9333004 3925 0.9334117 3950 0.9335275 3975 0.9336429 4000 0.9337562 4025 0.9338658 4050 0.9339691 4075 0.9340639 4100 0.9341494 4125 0.9342248 4150 0.9342909 4175 0.9343476 4200 0.9343965 4225 0.9344388 4250 0.9344757 4275 0.93451 4300 0.9345428 4325 0.9345775 4350 0.9346139 4375 0.9346532 4400 0.9346977 4425 0.934747 4450 0.9348012 4475 0.9348598 4500 0.9349225 4525 0.9349889 4550 0.9350572 4575 0.9351271 4600 0.9351974 4625 0.9352676 4650 0.9353383 4675 0.9354075 4700 0.9354758 4725 0.935545 4750 0.9356114 4775 0.9356785 4800 0.9357449 4825 0.935811 4850 0.9358763 4875 0.9359415 4900 0.9360052 4925 0.936067 4950 0.9361255 4975 0.9361816 5000 0.9362333 5025 0.9362799 5050 0.9363216 5075 0.9363573 5100 0.9363871 5125 0.9364114 5150 0.9364308 5175 0.9364448 5200 0.9364563 5225 0.9364651 5250 0.9364721 5275 0.9364794 5300 0.9364871 5325 0.9364976 5350 0.9365104 5375 0.9365262 5400 0.936546 5425 0.9365686 5450 0.9365957 5475 0.9366244 5500 0.9366557 5525 0.9366881 5550 0.9367207 5575 0.9367533 5600 0.9367849 5625 0.9368148 5650 0.9368439 5675 0.9368701 5700 0.9368953 5725 0.9369189 5750 0.9369418 5775 0.9369642 5800 0.9369881 5825 0.9370123 5850 0.9370388 5875 0.9370674 5900 0.937099 5925 0.937133 5950 0.9371704 5975 0.9372102 6000 0.9372525 6025 0.937296 6050 0.9373404 6075 0.9373859 6100 0.9374313 6125 0.9374759 6150 0.9375201 6175 0.937563 6200 0.9376048 6225 0.937645 6250 0.937684 6275 0.9377209 6300 0.937756 6325 0.937789 6350 0.9378198 6375 0.9378473 6400 0.9378704 6425 0.9378905 6450 0.9379042 6475 0.937913 6500 0.937915 6525 0.9379112 6550 0.9378996 6575 0.937881 6600 0.9378552 6625 0.9378232 6650 0.9377851 6675 0.9377412 6700 0.9376924 6725 0.9376385 6750 0.9375813 6775 0.9375203 6800 0.937456 6825 0.937389 6850 0.9373186 6875 0.9372445 6900 0.937167 6925 0.9370857 6950 0.9370013 6975 0.936913 7000 0.936821 7025 0.9367265 7050 0.9366287 7075 0.9365292 7100 0.9364296 7125 0.9363301 7150 0.936232 7175 0.9361375 7200 0.9360467 7225 0.9359616 7250 0.9358833 7275 0.9358131 7300 0.9357524 7325 0.935701 7350 0.935659 7375 0.9356282 7400 0.9356068 7425 0.9355944 7450 0.9355903 7475 0.9355932 7500 0.9356018 7525 0.9356148 7550 0.93563 7575 0.9356456 7600 0.935659 7625 0.935671 7650 0.9356788 7675 0.9356816 7700 0.9356785 7725 0.9356703 7750 0.9356567 7775 0.9356385 7800 0.9356155 7825 0.9355896 7850 0.9355623 7875 0.9355342 7900 0.9355083 7925 0.9354841 7950 0.9354649 7975 0.9354506 8000 0.935444 8025 0.9354454 8050 0.9354557 8075 0.9354761 8100 0.9355069 8125 0.9355485 8150 0.935601 8175 0.9356644 8200 0.9357374 8225 0.9358197 8250 0.9359102 8275 0.9360061 8300 0.9361073 8325 0.9362113 8350 0.9363167 8375 0.9364207 8400 0.9365217 8425 0.9366186 8450 0.9367088 8475 0.9367917 8500 0.9368663 8525 0.9369308 8550 0.9369871 8575 0.9370341 8600 0.9370717 8625 0.937102 8650 0.9371244 8675 0.9371415 8700 0.937153 8725 0.9371606 8750 0.9371658 8775 0.9371696 8800 0.9371719 8825 0.937174 8850 0.9371781 8875 0.9371824 8900 0.9371884 8925 0.9371958 8950 0.9372052 8975 0.937216 9000 0.9372282 9025 0.9372426 9050 0.9372568 9075 0.9372718 9100 0.9372879 9125 0.937304 9150 0.9373211 9175 0.9373387 9200 0.9373573 9225 0.9373772 9250 0.9373999 9275 0.9374251 9300 0.9374533 9325 0.9374856 9350 0.9375218 9375 0.9375638 9400 0.9376113 9425 0.937664 9450 0.9377232 9475 0.9377881 9500 0.9378575 9525 0.9379315 9550 0.9380087 9575 0.9380884 9600 0.9381689 9625 0.9382504 9650 0.9383308 9675 0.9384088 9700 0.9384842 9725 0.9385554 9750 0.9386224 9775 0.9386851 9800 0.938742 9825 0.9387944 9850 0.9388424 9875 0.9388853 9900 0.9389236 9925 0.9389582 9950 0.9389894 9975 0.9390167 10000 0.9390423 sptable-1.0.pre20180612/lib/onedstds/ctio/nd4m.u025mag.dat000066400000000000000000000106321331023215600224550ustar00rootroot00000000000000# 0.25 mag ND filter 4.0M 2975 0.7591906 3000 0.7596162 3025 0.76007 3050 0.7605528 3075 0.761067 3100 0.7616115 3125 0.7621875 3150 0.7627946 3175 0.7634324 3200 0.7640988 3225 0.7647921 3250 0.7655119 3275 0.7662532 3300 0.7670126 3325 0.7677855 3350 0.7685675 3375 0.7693529 3400 0.7701364 3425 0.7709143 3450 0.7716795 3475 0.7724261 3500 0.7731515 3525 0.7738515 3550 0.7745221 3575 0.7751619 3600 0.7757686 3625 0.7763426 3650 0.7768834 3675 0.7773926 3700 0.7778723 3725 0.7783234 3750 0.7787499 3775 0.7791542 3800 0.7795398 3825 0.7799096 3850 0.7802673 3875 0.7806153 3900 0.7809569 3925 0.7812936 3950 0.7816297 3975 0.7819644 4000 0.7822998 4025 0.7826376 4050 0.7829781 4075 0.7833207 4100 0.7836656 4125 0.784012 4150 0.78436 4175 0.7847089 4200 0.7850566 4225 0.7854034 4250 0.7857472 4275 0.7860878 4300 0.7864233 4325 0.7867538 4350 0.7870779 4375 0.7873951 4400 0.7877057 4425 0.7880086 4450 0.7883034 4475 0.7885907 4500 0.788871 4525 0.7891433 4550 0.7894084 4575 0.7896669 4600 0.7899193 4625 0.7901663 4650 0.7904083 4675 0.7906462 4700 0.7908813 4725 0.7911148 4750 0.7913482 4775 0.791582 4800 0.7918188 4825 0.7920588 4850 0.792304 4875 0.7925544 4900 0.7928119 4925 0.7930765 4950 0.7933479 4975 0.7936258 5000 0.7939105 5025 0.7942012 5050 0.7944961 5075 0.7947935 5100 0.7950937 5125 0.795393 5150 0.7956917 5175 0.795988 5200 0.7962805 5225 0.7965692 5250 0.7968533 5275 0.7971333 5300 0.7974087 5325 0.7976797 5350 0.7979475 5375 0.7982133 5400 0.7984776 5425 0.7987419 5450 0.7990075 5475 0.7992734 5500 0.7995424 5525 0.7998129 5550 0.8000876 5575 0.8003648 5600 0.8006437 5625 0.8009254 5650 0.8012075 5675 0.8014908 5700 0.801774 5725 0.8020555 5750 0.8023353 5775 0.8026119 5800 0.8028849 5825 0.803154 5850 0.8034182 5875 0.8036784 5900 0.8039328 5925 0.8041827 5950 0.8044274 5975 0.8046674 6000 0.8049032 6025 0.8051348 6050 0.8053637 6075 0.8055894 6100 0.8058125 6125 0.8060334 6150 0.8062521 6175 0.8064697 6200 0.8066865 6225 0.8069021 6250 0.8071176 6275 0.8073317 6300 0.8075447 6325 0.8077576 6350 0.8079698 6375 0.808181 6400 0.8083917 6425 0.8086007 6450 0.808808 6475 0.8090126 6500 0.8092151 6525 0.8094146 6550 0.8096102 6575 0.8098012 6600 0.8099871 6625 0.810168 6650 0.8103437 6675 0.8105142 6700 0.8106788 6725 0.8108394 6750 0.8109961 6775 0.8111494 6800 0.8113009 6825 0.811452 6850 0.8116035 6875 0.8117571 6900 0.811914 6925 0.812075 6950 0.8122398 6975 0.8124099 7000 0.8125868 7025 0.8127691 7050 0.8129567 7075 0.8131495 7100 0.8133476 7125 0.8135499 7150 0.8137565 7175 0.8139654 7200 0.814178 7225 0.8143917 7250 0.8146071 7275 0.8148237 7300 0.8150407 7325 0.8152571 7350 0.8154725 7375 0.8156859 7400 0.815897 7425 0.816105 7450 0.8163093 7475 0.8165091 7500 0.8167038 7525 0.8168931 7550 0.8170764 7575 0.817254 7600 0.8174257 7625 0.8175917 7650 0.8177521 7675 0.8179069 7700 0.8180583 7725 0.8182055 7750 0.8183497 7775 0.8184919 7800 0.8186312 7825 0.8187706 7850 0.8189083 7875 0.8190461 7900 0.8191838 7925 0.8193213 7950 0.8194584 7975 0.8195955 8000 0.8197319 8025 0.819868 8050 0.820003 8075 0.8201367 8100 0.8202684 8125 0.8203985 8150 0.8205261 8175 0.8206527 8200 0.8207771 8225 0.8209007 8250 0.8210226 8275 0.821145 8300 0.8212681 8325 0.8213928 8350 0.8215196 8375 0.8216497 8400 0.8217839 8425 0.8219238 8450 0.8220688 8475 0.8222203 8500 0.822378 8525 0.8225425 8550 0.8227128 8575 0.8228886 8600 0.8230696 8625 0.8232542 8650 0.823442 8675 0.8236314 8700 0.8238215 8725 0.8240109 8750 0.824199 8775 0.8243852 8800 0.8245686 8825 0.8247491 8850 0.8249257 8875 0.8251001 8900 0.8252717 8925 0.8254398 8950 0.8256058 8975 0.8257698 9000 0.8259317 9025 0.8260924 9050 0.826252 9075 0.8264098 9100 0.8265648 9125 0.8267172 9150 0.8268676 9175 0.8270132 9200 0.8271554 9225 0.8272917 9250 0.8274235 9275 0.8275491 9300 0.8276684 9325 0.8277815 9350 0.8278871 9375 0.8279861 9400 0.8280798 9425 0.8281679 9450 0.8282515 9475 0.8283313 9500 0.8284082 9525 0.8284829 9550 0.8285559 9575 0.8286287 9600 0.8287011 9625 0.8287733 9650 0.8288467 9675 0.8289208 9700 0.8289949 9725 0.8290686 9750 0.8291432 9775 0.8292169 9800 0.8292894 9825 0.8293605 9850 0.82943 9875 0.8294976 9900 0.8295624 9925 0.829624 9950 0.8296834 9975 0.8297392 10000 0.8297921 sptable-1.0.pre20180612/lib/onedstds/ctio/nd4m.u075mag.dat000066400000000000000000000106251331023215600224640ustar00rootroot00000000000000# 0.75 mag ND filter 4.0M 2975 0.5659764 3000 0.56578 3025 0.5655688 3050 0.5653424 3075 0.5651008 3100 0.5648407 3125 0.5645616 3150 0.5642624 3175 0.5639396 3200 0.5635936 3225 0.5632219 3250 0.5628251 3275 0.5623994 3300 0.5619441 3325 0.56146 3350 0.5609454 3375 0.5603996 3400 0.5598235 3425 0.5592179 3450 0.5585827 3475 0.5579196 3500 0.5572307 3525 0.5565178 3550 0.5557838 3575 0.5550308 3600 0.5542633 3625 0.5534828 3650 0.5526942 3675 0.5518999 3700 0.5511034 3725 0.5503064 3750 0.5495133 3775 0.5487257 3800 0.5479451 3825 0.5471719 3850 0.5464085 3875 0.5456539 3900 0.5449081 3925 0.5441707 3950 0.5434405 3975 0.5427159 4000 0.541996 4025 0.5412793 4050 0.540565 4075 0.5398517 4100 0.5391383 4125 0.5384253 4150 0.5377135 4175 0.5370027 4200 0.5362945 4225 0.5355905 4250 0.5348926 4275 0.5342019 4300 0.5335217 4325 0.5328526 4350 0.5321977 4375 0.5315571 4400 0.530933 4425 0.5303245 4450 0.5297332 4475 0.5291574 4500 0.5285959 4525 0.5280487 4550 0.5275136 4575 0.5269893 4600 0.5264747 4625 0.525968 4650 0.5254689 4675 0.5249768 4700 0.5244915 4725 0.5240133 4750 0.5235426 4775 0.523081 4800 0.5226283 4825 0.5221875 4850 0.5217583 4875 0.5213426 4900 0.5209408 4925 0.5205536 4950 0.5201809 4975 0.5198228 5000 0.5194792 5025 0.5191493 5050 0.5188324 5075 0.5185278 5100 0.5182344 5125 0.5179524 5150 0.5176809 5175 0.5174196 5200 0.5171678 5225 0.5169264 5250 0.516696 5275 0.5164764 5300 0.516269 5325 0.5160739 5350 0.5158917 5375 0.5157232 5400 0.5155681 5425 0.5154265 5450 0.5152986 5475 0.5151834 5500 0.5150807 5525 0.5149884 5550 0.5149052 5575 0.5148311 5600 0.5147632 5625 0.5147008 5650 0.5146417 5675 0.5145856 5700 0.5145316 5725 0.5144781 5750 0.5144249 5775 0.5143727 5800 0.5143211 5825 0.514272 5850 0.5142239 5875 0.5141778 5900 0.5141352 5925 0.5140963 5950 0.5140606 5975 0.5140283 6000 0.513999 6025 0.5139728 6050 0.5139468 6075 0.5139219 6100 0.5138959 6125 0.5138681 6150 0.5138371 6175 0.513802 6200 0.5137628 6225 0.5137184 6250 0.5136704 6275 0.5136185 6300 0.5135641 6325 0.513508 6350 0.5134524 6375 0.5133992 6400 0.5133507 6425 0.5133073 6450 0.513272 6475 0.5132453 6500 0.513229 6525 0.5132231 6550 0.5132286 6575 0.5132458 6600 0.5132736 6625 0.5133122 6650 0.5133613 6675 0.5134194 6700 0.513486 6725 0.5135605 6750 0.513641 6775 0.5137277 6800 0.5138185 6825 0.5139139 6850 0.5140112 6875 0.5141102 6900 0.5142105 6925 0.5143109 6950 0.5144096 6975 0.5145083 7000 0.514605 7025 0.5146989 7050 0.5147906 7075 0.5148799 7100 0.5149661 7125 0.5150494 7150 0.5151295 7175 0.5152064 7200 0.5152798 7225 0.5153491 7250 0.5154142 7275 0.5154744 7300 0.5155295 7325 0.5155786 7350 0.5156221 7375 0.5156592 7400 0.5156907 7425 0.5157158 7450 0.515736 7475 0.5157513 7500 0.5157629 7525 0.5157722 7550 0.515779 7575 0.5157856 7600 0.5157922 7625 0.5157995 7650 0.5158087 7675 0.5158191 7700 0.5158314 7725 0.5158461 7750 0.5158616 7775 0.5158784 7800 0.5158961 7825 0.515914 7850 0.5159312 7875 0.5159491 7900 0.5159663 7925 0.5159845 7950 0.5160031 7975 0.5160229 8000 0.516045 8025 0.5160708 8050 0.5161003 8075 0.5161351 8100 0.5161758 8125 0.5162225 8150 0.5162768 8175 0.5163374 8200 0.5164058 8225 0.5164799 8250 0.5165603 8275 0.5166455 8300 0.5167344 8325 0.5168256 8350 0.5169175 8375 0.517009 8400 0.5170981 8425 0.5171846 8450 0.5172651 8475 0.517341 8500 0.5174107 8525 0.5174734 8550 0.5175297 8575 0.5175791 8600 0.5176228 8625 0.5176611 8650 0.517695 8675 0.5177258 8700 0.5177539 8725 0.517781 8750 0.5178091 8775 0.5178385 8800 0.5178715 8825 0.5179086 8850 0.5179507 8875 0.518 8900 0.518055 8925 0.5181184 8950 0.5181898 8975 0.518269 9000 0.5183572 9025 0.5184529 9050 0.5185559 9075 0.518665 9100 0.5187801 9125 0.5188989 9150 0.5190211 9175 0.5191449 9200 0.519269 9225 0.5193919 9250 0.5195129 9275 0.5196311 9300 0.5197459 9325 0.5198558 9350 0.5199623 9375 0.5200649 9400 0.5201643 9425 0.520261 9450 0.5203566 9475 0.5204521 9500 0.5205485 9525 0.5206472 9550 0.5207481 9575 0.5208529 9600 0.5209624 9625 0.5210752 9650 0.521192 9675 0.5213119 9700 0.5214348 9725 0.5215588 9750 0.5216833 9775 0.5218071 9800 0.5219284 9825 0.5220465 9850 0.5221611 9875 0.5222709 9900 0.5223742 9925 0.5224714 9950 0.5225618 9975 0.5226464 10000 0.5227232 sptable-1.0.pre20180612/lib/onedstds/ctio/nd4m.u150mag.dat000066400000000000000000000106261331023215600224570ustar00rootroot00000000000000# 1.50 mag ND filter 4.0M 2975 0.296389 3000 0.2962481 3025 0.2960847 3050 0.2958955 3075 0.2956803 3100 0.2954345 3125 0.2951601 3150 0.2948515 3175 0.2945094 3200 0.2941315 3225 0.2937171 3250 0.2932667 3275 0.2927787 3300 0.292255 3325 0.2916963 3350 0.2911043 3375 0.2904809 3400 0.2898289 3425 0.2891517 3450 0.288453 3475 0.2877354 3500 0.2870029 3525 0.2862585 3550 0.2855058 3575 0.2847466 3600 0.2839837 3625 0.283219 3650 0.282453 3675 0.2816864 3700 0.2809205 3725 0.2801532 3750 0.2793861 3775 0.2786185 3800 0.2778488 3825 0.2770774 3850 0.2763051 3875 0.275531 3900 0.2747561 3925 0.273982 3950 0.2732093 3975 0.2724389 4000 0.2716723 4025 0.2709129 4050 0.27016 4075 0.2694165 4100 0.2686833 4125 0.2679613 4150 0.2672511 4175 0.2665553 4200 0.2658717 4225 0.265202 4250 0.2645466 4275 0.2639044 4300 0.2632757 4325 0.26266 4350 0.2620573 4375 0.2614682 4400 0.2608906 4425 0.260326 4450 0.2597744 4475 0.2592347 4500 0.2587079 4525 0.2581941 4550 0.2576922 4575 0.2572044 4600 0.2567292 4625 0.256268 4650 0.2558197 4675 0.2553854 4700 0.2549638 4725 0.2545561 4750 0.254162 4775 0.2537811 4800 0.2534132 4825 0.2530587 4850 0.2527177 4875 0.2523892 4900 0.2520728 4925 0.2517697 4950 0.2514796 4975 0.251201 5000 0.2509344 5025 0.2506802 5050 0.2504368 5075 0.2502053 5100 0.2499841 5125 0.2497734 5150 0.2495721 5175 0.2493803 5200 0.2491974 5225 0.2490219 5250 0.2488554 5275 0.2486957 5300 0.2485431 5325 0.2483976 5350 0.2482584 5375 0.2481262 5400 0.2479998 5425 0.2478799 5450 0.247766 5475 0.2476584 5500 0.2475555 5525 0.2474591 5550 0.2473671 5575 0.2472807 5600 0.2471983 5625 0.2471199 5650 0.247045 5675 0.2469739 5700 0.246905 5725 0.2468385 5750 0.246774 5775 0.2467102 5800 0.2466487 5825 0.2465873 5850 0.246528 5875 0.24647 5900 0.2464137 5925 0.2463592 5950 0.2463081 5975 0.24626 6000 0.2462162 6025 0.2461777 6050 0.2461448 6075 0.2461192 6100 0.2460998 6125 0.2460889 6150 0.2460843 6175 0.2460876 6200 0.2460988 6225 0.2461154 6250 0.2461377 6275 0.2461648 6300 0.2461952 6325 0.2462276 6350 0.2462612 6375 0.246296 6400 0.2463301 6425 0.2463633 6450 0.2463954 6475 0.2464256 6500 0.2464541 6525 0.2464804 6550 0.2465043 6575 0.2465263 6600 0.2465445 6625 0.2465605 6650 0.2465716 6675 0.2465786 6700 0.2465808 6725 0.2465768 6750 0.2465669 6775 0.2465501 6800 0.2465262 6825 0.2464949 6850 0.2464567 6875 0.2464131 6900 0.2463629 6925 0.2463084 6950 0.2462506 6975 0.2461897 7000 0.246129 7025 0.2460678 7050 0.2460089 7075 0.2459529 7100 0.245901 7125 0.2458541 7150 0.2458134 7175 0.2457788 7200 0.2457521 7225 0.2457317 7250 0.2457193 7275 0.2457147 7300 0.245717 7325 0.2457271 7350 0.2457438 7375 0.2457669 7400 0.2457963 7425 0.2458305 7450 0.2458699 7475 0.245913 7500 0.2459596 7525 0.2460088 7550 0.2460592 7575 0.2461116 7600 0.2461636 7625 0.2462155 7650 0.2462661 7675 0.2463156 7700 0.2463636 7725 0.2464091 7750 0.2464523 7775 0.2464935 7800 0.2465329 7825 0.246569 7850 0.2466044 7875 0.2466377 7900 0.2466698 7925 0.2467012 7950 0.2467326 7975 0.2467636 8000 0.2467949 8025 0.2468268 8050 0.2468601 8075 0.2468945 8100 0.2469296 8125 0.2469662 8150 0.247004 8175 0.247043 8200 0.2470829 8225 0.2471232 8250 0.2471638 8275 0.2472045 8300 0.2472453 8325 0.2472849 8350 0.2473249 8375 0.2473634 8400 0.2474002 8425 0.2474362 8450 0.2474715 8475 0.2475053 8500 0.2475383 8525 0.2475702 8550 0.2476013 8575 0.2476326 8600 0.2476631 8625 0.2476939 8650 0.247725 8675 0.2477565 8700 0.2477882 8725 0.2478212 8750 0.2478547 8775 0.2478897 8800 0.2479258 8825 0.2479632 8850 0.248002 8875 0.2480412 8900 0.2480822 8925 0.2481245 8950 0.2481685 8975 0.2482135 9000 0.2482597 9025 0.2483064 9050 0.2483548 9075 0.2484034 9100 0.2484532 9125 0.2485036 9150 0.2485542 9175 0.2486059 9200 0.2486586 9225 0.2487115 9250 0.2487657 9275 0.2488209 9300 0.2488766 9325 0.2489346 9350 0.2489926 9375 0.2490522 9400 0.2491131 9425 0.2491751 9450 0.2492375 9475 0.2493007 9500 0.2493638 9525 0.2494265 9550 0.2494882 9575 0.2495486 9600 0.2496067 9625 0.2496626 9650 0.2497156 9675 0.249765 9700 0.2498112 9725 0.2498533 9750 0.2498916 9775 0.2499264 9800 0.249957 9825 0.2499837 9850 0.2500075 9875 0.2500276 9900 0.2500447 9925 0.2500593 9950 0.2500712 9975 0.2500808 10000 0.2500886 sptable-1.0.pre20180612/lib/onedstds/ctio/nd4m.u225mag.dat000066400000000000000000000106331331023215600224600ustar00rootroot00000000000000# 2.25 mag ND filter 4.0M 2975 0.1673126 3000 0.1671906 3025 0.1670471 3050 0.1668798 3075 0.1666864 3100 0.1664637 3125 0.1662108 3150 0.1659248 3175 0.1656027 3200 0.1652446 3225 0.1648479 3250 0.1644133 3275 0.1639401 3300 0.1634289 3325 0.1628817 3350 0.1623005 3375 0.1616879 3400 0.1610479 3425 0.1603831 3450 0.1596985 3475 0.1589979 3500 0.1582853 3525 0.1575651 3550 0.1568403 3575 0.1561143 3600 0.1553898 3625 0.1546695 3650 0.1539546 3675 0.1532463 3700 0.1525463 3725 0.1518543 3750 0.1511712 3775 0.1504967 3800 0.1498303 3825 0.1491719 3850 0.1485215 3875 0.1478777 3900 0.1472405 3925 0.1466091 3950 0.1459839 3975 0.1453639 4000 0.1447483 4025 0.1441383 4050 0.1435325 4075 0.1429319 4100 0.1423368 4125 0.141748 4150 0.1411661 4175 0.1405915 4200 0.1400262 4225 0.13947 4250 0.1389251 4275 0.138393 4300 0.1378742 4325 0.1373693 4350 0.1368799 4375 0.1364067 4400 0.1359505 4425 0.1355116 4450 0.1350905 4475 0.1346872 4500 0.1343021 4525 0.1339341 4550 0.1335833 4575 0.1332498 4600 0.1329319 4625 0.132629 4650 0.1323412 4675 0.1320667 4700 0.1318049 4725 0.1315556 4750 0.1313173 4775 0.1310902 4800 0.1308725 4825 0.1306646 4850 0.1304657 4875 0.1302754 4900 0.1300936 4925 0.1299201 4950 0.1297544 4975 0.1295972 5000 0.1294476 5025 0.1293064 5050 0.129174 5075 0.1290493 5100 0.1289335 5125 0.1288255 5150 0.1287264 5175 0.1286352 5200 0.1285526 5225 0.1284772 5250 0.1284102 5275 0.1283498 5300 0.1282966 5325 0.1282492 5350 0.1282069 5375 0.1281692 5400 0.1281355 5425 0.128105 5450 0.128077 5475 0.1280503 5500 0.1280248 5525 0.1279996 5550 0.1279742 5575 0.1279479 5600 0.1279205 5625 0.1278916 5650 0.1278606 5675 0.1278276 5700 0.1277922 5725 0.1277547 5750 0.1277148 5775 0.1276725 5800 0.127628 5825 0.1275818 5850 0.1275344 5875 0.1274858 5900 0.1274379 5925 0.12739 5950 0.1273442 5975 0.1273016 6000 0.1272625 6025 0.1272286 6050 0.1272007 6075 0.1271802 6100 0.1271663 6125 0.1271611 6150 0.1271638 6175 0.1271753 6200 0.127194 6225 0.1272199 6250 0.1272522 6275 0.1272901 6300 0.127332 6325 0.1273776 6350 0.1274252 6375 0.1274739 6400 0.1275232 6425 0.1275728 6450 0.1276213 6475 0.1276688 6500 0.1277147 6525 0.1277596 6550 0.1278021 6575 0.127843 6600 0.1278813 6625 0.1279171 6650 0.1279495 6675 0.127978 6700 0.1280023 6725 0.1280217 6750 0.1280348 6775 0.1280416 6800 0.128042 6825 0.1280352 6850 0.1280214 6875 0.1280003 6900 0.1279724 6925 0.1279389 6950 0.1279004 6975 0.127858 7000 0.1278129 7025 0.1277665 7050 0.1277201 7075 0.1276755 7100 0.1276337 7125 0.1275961 7150 0.1275629 7175 0.1275361 7200 0.1275159 7225 0.1275019 7250 0.1274946 7275 0.1274941 7300 0.1274996 7325 0.1275107 7350 0.1275272 7375 0.1275473 7400 0.127571 7425 0.1275967 7450 0.1276246 7475 0.1276534 7500 0.1276814 7525 0.1277096 7550 0.1277367 7575 0.1277623 7600 0.1277863 7625 0.1278084 7650 0.1278293 7675 0.1278489 7700 0.1278667 7725 0.1278839 7750 0.127901 7775 0.1279179 7800 0.1279358 7825 0.1279541 7850 0.1279741 7875 0.1279951 7900 0.1280181 7925 0.1280434 7950 0.1280708 7975 0.1280999 8000 0.1281312 8025 0.1281644 8050 0.1281996 8075 0.1282369 8100 0.1282756 8125 0.1283159 8150 0.1283575 8175 0.1284008 8200 0.1284444 8225 0.128489 8250 0.1285346 8275 0.1285796 8300 0.1286249 8325 0.1286693 8350 0.1287139 8375 0.1287572 8400 0.128799 8425 0.1288391 8450 0.1288776 8475 0.1289144 8500 0.128949 8525 0.1289817 8550 0.1290127 8575 0.1290417 8600 0.1290696 8625 0.1290958 8650 0.1291209 8675 0.1291449 8700 0.1291685 8725 0.1291918 8750 0.1292152 8775 0.1292378 8800 0.1292611 8825 0.1292846 8850 0.1293086 8875 0.1293333 8900 0.1293582 8925 0.1293839 8950 0.1294104 8975 0.1294375 9000 0.1294656 9025 0.1294945 9050 0.1295244 9075 0.1295549 9100 0.1295863 9125 0.1296185 9150 0.1296519 9175 0.1296855 9200 0.12972 9225 0.129755 9250 0.1297904 9275 0.1298265 9300 0.1298631 9325 0.1299 9350 0.1299373 9375 0.1299749 9400 0.1300136 9425 0.1300532 9450 0.1300942 9475 0.130136 9500 0.1301799 9525 0.1302257 9550 0.1302732 9575 0.1303228 9600 0.130374 9625 0.1304268 9650 0.1304813 9675 0.1305369 9700 0.130593 9725 0.1306493 9750 0.1307052 9775 0.1307606 9800 0.1308145 9825 0.1308667 9850 0.130917 9875 0.1309649 9900 0.1310101 9925 0.1310526 9950 0.1310921 9975 0.1311287 10000 0.1311623 sptable-1.0.pre20180612/lib/onedstds/ctio/ndfilters.men000066400000000000000000000011361331023215600224340ustar00rootroot00000000000000 CTIO Neutral Density Filter Curves Directory = onedstds$ctio/ nd1m.100mag.dat = 1.00 mag ND filter CTIO 1.0M nd1m.125mag.dat = 1.25 mag ND filter CTIO 1.0M nd1m.250mag.dat = 2.50 mag ND filter CTIO 1.0M nd1m.500mag.dat = 5.00 mag ND filter CTIO 1.0M nd4m.l000mag.dat = lower clear filter CTIO 4.0M nd4m.u000mag.dat = upper clear filter CTIO 4.0M nd4m.u025mag.dat = 0.25 mag ND filter CTIO 4.0M nd4m.u075mag.dat = 0.75 mag ND filter CTIO 4.0M nd4m.u150mag.dat = 1.50 mag ND filter CTIO 4.0M nd4m.u225mag.dat = 2.25 mag ND filter CTIO 4.0M nd4m.l250mag.dat = 2.50 mag ND filter CTIO 4.0M sptable-1.0.pre20180612/lib/onedstds/ctiocal/000077500000000000000000000000001331023215600204205ustar00rootroot00000000000000sptable-1.0.pre20180612/lib/onedstds/ctiocal/bd25.dat000066400000000000000000000007221331023215600216470ustar00rootroot00000000000000# BD25 3200. 12.11 49. 3250. 12.05 49. 3300. 11.98 49. 3350. 11.91 49. 3400. 11.85 49. 3450. 11.82 49. 3500. 11.77 49. 3571. 11.73 49. 3636. 11.7 49. 3704. 11.63 49. 3862. 11.26 49. 4036. 11.16 49. 4167. 11.09 49. 4255. 11.04 49. 4464. 10.96 49. 4566. 10.87 49. 4785. 10.79 49. 5000. 10.69 49. 5263. 10.49 98. 5556. 10.36 98. 5840. 10.31 98. 6056. 10.27 98. 6436. 10.2 98. 6790. 10.12 98. 7100. 10.07 98. 7550. 10.01 98. 7780. 9.98 98. 8090. 9.96 98. 8370. 9.97 98. sptable-1.0.pre20180612/lib/onedstds/ctiocal/bd8.dat000066400000000000000000000007211331023215600215670ustar00rootroot00000000000000# BD8 3200. 12.67 49. 3250. 12.63 49. 3300. 12.31 49. 3350. 12.37 49. 3400. 12.2 49. 3450. 12.26 49. 3500. 12.09 49. 3571. 12.16 49. 3636. 11.95 49. 3704. 11.83 49. 3862. 11.77 49. 4036. 11.2 49. 4167. 11.08 49. 4255. 11.12 49. 4464. 10.81 49. 4566. 10.71 49. 4785. 10.61 49. 5000. 10.6 49. 5263. 10.49 98. 5556. 10.39 98. 5840. 10.3 98. 6056. 10.26 98. 6436. 10.2 98. 6790. 10.16 98. 7100. 10.12 98. 7550. 10.09 98. 7780. 10.04 98. 8090. 10.04 98. 8370. 10.06 98. sptable-1.0.pre20180612/lib/onedstds/ctiocal/cd32.dat000066400000000000000000000013021331023215600216410ustar00rootroot00000000000000# CD32 3200. 12.2 40. 3350. 11.96 40. 3400. 11.85 40. 3450. 11.91 40. 3500. 11.87 40. 3571. 11.8 40. 3636. 11.72 40. 3704. 11.52 40. 3790. 11.3 40. 3862. 10.96 40. 4036. 10.65 40. 4167. 10.66 40. 4255. 10.61 40. 4464. 10.5 40. 4566. 10.5 40. 4675. 10.45 40. 4785. 10.43 40. 5000. 10.49 40. 5130. 10.49 40. 5263. 10.46 40. 5420. 10.43 80. 5556. 10.41 80. 5700. 10.42 80. 5840. 10.45 80. 5950. 10.44 80. 6056. 10.41 80. 6180. 10.41 80. 6310. 10.44 80. 6436. 10.43 80. 6640. 10.48 80. 6790. 10.45 80. 7100. 10.45 80. 7250. 10.5 80. 7400. 10.48 80. 7550. 10.49 80. 7780. 10.51 80. 7890. 10.5 80. 7990. 10.52 80. 8090. 10.52 80. 8370. 10.54 80. 8708. 10.54 80. 9832. 10.55 80. 10256. 10.61 80. 10400. 10.62 80. sptable-1.0.pre20180612/lib/onedstds/ctiocal/eg21.dat000066400000000000000000000013041331023215600216460ustar00rootroot00000000000000# EG21 3200. 11.45 40. 3350. 11.39 40. 3400. 11.41 40. 3450. 11.47 40. 3500. 11.43 40. 3571. 11.54 40. 3636. 11.5 40. 3704. 11.5 40. 3790. 11.53 40. 3862. 11.48 40. 4036. 11.26 40. 4167. 11.15 40. 4255. 11.18 40. 4464. 11.12 40. 4566. 11.12 40. 4675. 11.12 40. 4785. 11.29 40. 5000. 11.28 40. 5130. 11.25 40. 5263. 11.32 40. 5420. 11.36 80. 5556. 11.39 80. 5700. 11.46 80. 5840. 11.44 80. 5950. 11.52 80. 6056. 11.53 80. 6180. 11.55 80. 6310. 11.61 80. 6436. 11.68 80. 6640. 11.81 80. 6790. 11.71 80. 7100. 11.77 80. 7250. 11.82 80. 7400. 11.84 80. 7550. 11.86 80. 7780. 11.9 80. 7890. 11.91 80. 7990. 11.94 80. 8090. 11.94 80. 8370. 12. 80. 8708. 12.06 80. 9832. 12.18 80. 10256. 12.25 80. 10400. 12.28 80. sptable-1.0.pre20180612/lib/onedstds/ctiocal/eg274.dat000066400000000000000000000013011331023215600217350ustar00rootroot00000000000000# EG274 3200. 10.63 40. 3350. 10.6 40. 3400. 10.67 40. 3450. 10.77 40. 3500. 10.66 40. 3571. 10.82 40. 3636. 10.8 40. 3704. 10.82 40. 3790. 10.86 40. 3862. 10.78 40. 4036. 10.7 40. 4167. 10.66 40. 4255. 10.7 40. 4464. 10.74 40. 4566. 10.74 40. 4675. 10.75 40. 4785. 10.9 40. 5000. 10.9 40. 5130. 10.92 40. 5263. 10.97 40. 5420. 10.98 80. 5556. 11.04 80. 5700. 11.09 80. 5840. 11.14 80. 5950. 11.21 80. 6056. 11.21 80. 6180. 11.24 80. 6310. 11.3 80. 6436. 11.33 80. 6640. 11.47 80. 6790. 11.4 80. 7100. 11.46 80. 7250. 11.54 80. 7400. 11.58 80. 7550. 11.6 80. 7780. 11.65 80. 7890. 11.66 80. 7990. 11.73 80. 8090. 11.71 80. 8370. 11.79 80. 8708. 11.85 80. 9832. 12.04 80. 10256. 12.18 80. 10400. 12.19 80. sptable-1.0.pre20180612/lib/onedstds/ctiocal/f110.dat000066400000000000000000000007251331023215600215650ustar00rootroot00000000000000# F110 3200. 11.04 49. 3250. 10.99 49. 3300. 10.98 49. 3350. 11.01 49. 3400. 11.04 49. 3450. 11.07 49. 3500. 11.09 49. 3571. 11.13 49. 3636. 11.16 49. 3704. 11.21 49. 3862. 11.23 49. 4036. 11.29 49. 4167. 11.34 49. 4255. 11.38 49. 4464. 11.47 49. 4566. 11.51 49. 4785. 11.6 49. 5000. 11.68 49. 5263. 11.77 98. 5556. 11.88 98. 5840. 11.96 98. 6056. 12.03 98. 6436. 12.16 98. 6790. 12.24 98. 7100. 12.31 98. 7550. 12.47 98. 7780. 12.5 98. 8090. 12.54 98. 8370. 12.59 98. sptable-1.0.pre20180612/lib/onedstds/ctiocal/f15.dat000066400000000000000000000007201331023215600215040ustar00rootroot00000000000000# F15 3200. 11.7 49. 3250. 11.65 49. 3300. 11.55 49. 3350. 11.55 49. 3400. 11.53 49. 3450. 11.52 49. 3500. 11.5 49. 3571. 11.49 49. 3636. 11.46 49. 3704. 11.39 49. 3862. 10.46 49. 4036. 10.2 49. 4167. 10.2 49. 4255. 10.22 49. 4464. 10.23 49. 4566. 10.25 49. 4785. 10.28 49. 5000. 10.33 49. 5263. 10.36 98. 5556. 10.41 98. 5840. 10.43 98. 6056. 10.48 98. 6436. 10.55 98. 6790. 10.6 98. 7100. 10.63 98. 7550. 10.7 98. 7780. 10.73 98. 8090. 10.74 98. 8370. 10.76 98. sptable-1.0.pre20180612/lib/onedstds/ctiocal/f25.dat000066400000000000000000000007231331023215600215100ustar00rootroot00000000000000# F25 3200. 12.59 49. 3250. 12.6 49. 3300. 12.56 49. 3350. 12.55 49. 3400. 12.45 49. 3450. 12.5 49. 3500. 12.49 49. 3571. 12.52 49. 3636. 12.51 49. 3704. 12.49 49. 3862. 11.87 49. 4036. 11.74 49. 4167. 11.76 49. 4255. 11.78 49. 4464. 11.83 49. 4566. 11.83 49. 4785. 11.89 49. 5000. 11.95 49. 5263. 11.97 98. 5556. 12.01 98. 5840. 12.03 98. 6056. 12.09 98. 6436. 12.19 98. 6790. 12.21 98. 7100. 12.24 98. 7550. 12.35 98. 7780. 12.34 98. 8090. 12.36 98. 8370. 12.4 98. sptable-1.0.pre20180612/lib/onedstds/ctiocal/f56.dat000066400000000000000000000007251331023215600215160ustar00rootroot00000000000000# F56 3200. 11.39 49. 3250. 11.32 49. 3300. 11.3 49. 3350. 11.28 49. 3400. 11.26 49. 3450. 11.28 49. 3500. 11.26 49. 3571. 11.29 49. 3636. 11.29 49. 3704. 11.27 49. 3862. 10.78 49. 4036. 10.71 49. 4167. 10.75 49. 4255. 10.79 49. 4464. 10.83 49. 4566. 10.85 49. 4785. 10.91 49. 5000. 10.98 49. 5263. 11.04 98. 5556. 11.11 98. 5840. 11.16 98. 6056. 11.22 98. 6436. 11.31 98. 6790. 11.38 98. 7100. 11.43 98. 7550. 11.54 98. 7780. 11.59 98. 8090. 11.62 98. 8370. 11.62 98. sptable-1.0.pre20180612/lib/onedstds/ctiocal/f98.dat000066400000000000000000000007241331023215600215230ustar00rootroot00000000000000# F98 3200. 13.01 49. 3250. 12.97 49. 3300. 12.93 49. 3350. 12.89 49. 3400. 12.86 49. 3450. 12.89 49. 3500. 12.86 49. 3571. 12.84 49. 3636. 12.81 49. 3704. 12.69 49. 3862. 11.72 49. 4036. 11.54 49. 4167. 11.56 49. 4255. 11.6 49. 4464. 11.61 49. 4566. 11.65 49. 4785. 11.69 49. 5000. 11.77 49. 5263. 11.78 98. 5556. 11.84 98. 5840. 11.89 98. 6056. 11.95 98. 6436. 12.01 98. 6790. 12.05 98. 7100. 12.08 98. 7550. 12.17 98. 7780. 12.2 98. 8090. 12.26 98. 8370. 12.36 98. sptable-1.0.pre20180612/lib/onedstds/ctiocal/g9937.dat000066400000000000000000000012141331023215600216720ustar00rootroot00000000000000# G9937 3320. 15.486 80. 3480. 15.304 80. 3640. 15.22 80. 3800. 15.184 80. 3960. 15.054 80. 4120. 14.845 80. 4280. 15.075 80. 4440. 14.76 80. 4600. 14.676 80. 4760. 14.588 80. 4920. 14.544 80. 5080. 14.675 80. 5240. 14.45 80. 5400. 14.442 80. 5560. 14.485 80. 5720. 14.42 80. 6040. 14.378 160. 6200. 14.32 160. 6360. 14.311 160. 6520. 14.273 160. 6680. 14.316 160. 6840. 14.321 160. 7000. 14.337 160. 7160. 14.293 160. 7320. 14.32 160. 7480. 14.327 160. 7800. 14.335 160. 7960. 14.282 160. 8120. 14.318 160. 8280. 14.258 160. 8440. 14.273 160. 8600. 14.285 160. 8760. 14.327 160. 8920. 14.349 160. 9080. 14.337 160. 9240. 14.395 160. 9400. 14.323 160. sptable-1.0.pre20180612/lib/onedstds/ctiocal/h600.dat000066400000000000000000000007251331023215600215730ustar00rootroot00000000000000# H600 3200. 10.98 49. 3250. 10.92 49. 3300. 10.86 49. 3350. 10.84 49. 3400. 10.84 49. 3450. 10.83 49. 3500. 10.81 49. 3571. 10.82 49. 3636. 10.8 49. 3704. 10.79 49. 3862. 10.51 49. 4036. 10.47 49. 4167. 10.46 49. 4255. 10.46 49. 4464. 10.47 49. 4566. 10.45 49. 4785. 10.45 49. 5000. 10.45 49. 5263. 10.43 98. 5556. 10.42 98. 5840. 10.43 98. 6056. 10.45 98. 6436. 10.49 98. 6790. 10.5 98. 7100. 10.52 98. 7550. 10.56 98. 7780. 10.58 98. 8090. 10.59 98. 8370. 10.64 98. sptable-1.0.pre20180612/lib/onedstds/ctiocal/hz15.dat000066400000000000000000000007241331023215600217040ustar00rootroot00000000000000# HZ15 3200. 12.68 49. 3250. 12.64 49. 3300. 12.63 49. 3350. 12.58 49. 3400. 12.59 49. 3450. 12.6 49. 3500. 12.6 49. 3571. 12.63 49. 3636. 12.62 49. 3704. 12.63 49. 3862. 12.38 49. 4036. 12.39 49. 4167. 12.39 49. 4255. 12.42 49. 4464. 12.46 49. 4566. 12.44 49. 4785. 12.46 49. 5000. 12.58 49. 5263. 12.53 98. 5556. 12.59 98. 5840. 12.64 98. 6056. 12.68 98. 6436. 12.76 98. 6790. 12.8 98. 7100. 12.84 98. 7550. 12.92 98. 7780. 12.93 98. 8090. 13.01 98. 8370. 13.08 98. sptable-1.0.pre20180612/lib/onedstds/ctiocal/hz2.dat000066400000000000000000000010371331023215600216160ustar00rootroot00000000000000# HZ2 3220. 13.63 40. 3300. 13.81 40. 3380. 13.804 40. 3460. 13.828 40. 3540. 13.826 40. 3620. 13.84 40. 3740. 13.882 40. 3860. 13.957 40. 3980. 13.981 40. 4100. 14.094 40. 4220. 13.646 40. 4460. 13.688 40. 4580. 13.736 40. 4700. 13.767 40. 4820. 14. 40. 4940. 13.945 40. 5060. 13.936 40. 5180. 13.882 40. 5300. 13.947 40. 5420. 14.011 40. 5540. 14.036 40. 5660. 14.078 40. 5740. 14.12 40. 5860. 14.163 40. 5980. 14.186 40. 6100. 14.215 40. 6220. 14.188 40. 6340. 14.302 40. 6460. 14.326 40. 6700. 14.365 40. 7140. 14.522 40. 7220. 14.505 40. sptable-1.0.pre20180612/lib/onedstds/ctiocal/hz4.dat000066400000000000000000000010401331023215600216120ustar00rootroot00000000000000# HZ4 3220. 14.72 40. 3300. 14.68 40. 3380. 14.744 40. 3460. 14.698 40. 3540. 14.716 40. 3620. 14.7 40. 3740. 14.822 40. 3860. 14.797 40. 3980. 14.791 40. 4100. 14.884 40. 4220. 14.346 40. 4460. 14.318 40. 4580. 14.266 40. 4700. 14.357 40. 4820. 14.77 40. 4940. 14.585 40. 5060. 14.496 40. 5180. 14.452 40. 5300. 14.487 40. 5420. 14.561 40. 5540. 14.516 40. 5660. 14.618 40. 5740. 14.62 40. 5860. 14.683 40. 5980. 14.696 40. 6100. 14.695 40. 6220. 14.728 40. 6340. 14.742 40. 6460. 14.866 40. 6700. 14.865 40. 7140. 14.932 40. 7220. 14.935 40. sptable-1.0.pre20180612/lib/onedstds/ctiocal/kopf27.dat000066400000000000000000000007241331023215600222250ustar00rootroot00000000000000# KOPF27 3200. 12.14 49. 3250. 12.14 49. 3300. 12. 49. 3350. 11.97 49. 3400. 11.91 49. 3450. 11.89 49. 3500. 11.85 49. 3571. 11.8 49. 3636. 11.75 49. 3704. 11.69 49. 3862. 10.88 49. 4036. 10.42 49. 4167. 10.39 49. 4255. 10.38 49. 4464. 10.34 49. 4566. 10.36 49. 4785. 10.33 49. 5000. 10.34 49. 5263. 10.33 98. 5556. 10.31 98. 5840. 10.31 98. 6056. 10.33 98. 6436. 10.35 98. 6790. 10.34 98. 7100. 10.35 98. 7550. 10.4 98. 7780. 10.4 98. 8090. 10.42 98. 8370. 10.45 98. sptable-1.0.pre20180612/lib/onedstds/ctiocal/l1020.dat000066400000000000000000000013071331023215600216510ustar00rootroot00000000000000# L1020 3200. 13.17 40. 3350. 12.87 40. 3400. 12.64 40. 3450. 12.79 40. 3500. 12.67 40. 3571. 12.74 40. 3636. 12.58 40. 3704. 12.51 40. 3790. 12.43 40. 3862. 12.32 40. 4036. 12.12 40. 4167. 12.02 40. 4255. 12.02 40. 4464. 11.82 40. 4566. 11.79 40. 4675. 11.72 40. 4785. 11.69 40. 5000. 11.65 40. 5130. 11.6 40. 5263. 11.56 40. 5420. 11.52 80. 5556. 11.48 80. 5700. 11.44 80. 5840. 11.41 80. 5950. 11.41 80. 6056. 11.38 80. 6180. 11.35 80. 6310. 11.34 80. 6436. 11.3 80. 6640. 11.26 80. 6790. 11.26 80. 7100. 11.23 80. 7250. 11.23 80. 7400. 11.22 80. 7550. 11.2 80. 7780. 11.16 80. 7890. 11.16 80. 7990. 11.15 80. 8090. 11.13 80. 8370. 11.13 80. 8708. 11.08 80. 9832. 11.05 80. 10256. 11.08 80. 10400. 11.13 80. sptable-1.0.pre20180612/lib/onedstds/ctiocal/l1788.dat000066400000000000000000000012411331023215600216730ustar00rootroot00000000000000# L1788 3200. 14.57 40. 3350. 14.3 40. 3400. 14.16 40. 3450. 14.26 40. 3500. 14.19 40. 3571. 14.16 40. 3636. 14.06 40. 3704. 14.04 40. 3790. 13.87 40. 3862. 13.73 40. 4036. 13.6 40. 4167. 13.53 40. 4255. 13.53 40. 4464. 13.42 40. 4566. 13.4 40. 4675. 13.36 40. 4785. 13.3 40. 5000. 13.25 40. 5130. 13.18 40. 5263. 13.15 40. 5420. 13.14 80. 5556. 13.1 80. 5700. 13.08 80. 5840. 13.04 80. 5950. 13.04 80. 6056. 13.04 80. 6180. 12.99 80. 6310. 12.96 80. 6436. 12.98 80. 6640. 13.03 80. 6790. 12.97 80. 7100. 12.92 80. 7250. 12.97 80. 7400. 12.93 80. 7550. 12.92 80. 7780. 12.87 80. 7890. 12.8 80. 7990. 12.85 80. 8090. 12.85 80. 8370. 12.84 80. 8708. 12.8 80. 9832. 12.81 80. sptable-1.0.pre20180612/lib/onedstds/ctiocal/l2415.dat000066400000000000000000000013011331023215600216540ustar00rootroot00000000000000# L2415 3200. 13.57 40. 3350. 13.36 40. 3400. 13.33 40. 3450. 13.34 40. 3500. 13.27 40. 3571. 13.29 40. 3636. 13.21 40. 3704. 13.18 40. 3790. 12.93 40. 3862. 12.72 40. 4036. 12.55 40. 4167. 12.48 40. 4255. 12.48 40. 4464. 12.4 40. 4566. 12.36 40. 4675. 12.34 40. 4785. 12.31 40. 5000. 12.28 40. 5130. 12.23 40. 5263. 12.18 40. 5420. 12.18 80. 5556. 12.16 80. 5700. 12.12 80. 5840. 12.1 80. 5950. 12.12 80. 6056. 12.11 80. 6180. 12.1 80. 6310. 12.09 80. 6436. 12.08 80. 6640. 12.11 80. 6790. 12.06 80. 7100. 12.06 80. 7250. 12.06 80. 7400. 12.08 80. 7550. 12.04 80. 7780. 12.01 80. 7890. 12. 80. 7990. 12. 80. 8090. 11.98 80. 8370. 12. 80. 8708. 11.96 80. 9832. 11.93 80. 10256. 11.93 80. 10400. 11.95 80. sptable-1.0.pre20180612/lib/onedstds/ctiocal/l2511.dat000066400000000000000000000010471331023215600216600ustar00rootroot00000000000000# L2511 3200. 13.75 40. 3350. 13.61 40. 3450. 13.62 40. 3500. 13.62 40. 3571. 13.65 40. 3636. 13.68 40. 3704. 13.68 40. 3790. 13.68 40. 3862. 13.64 40. 4036. 13.87 40. 4167. 13.67 40. 4255. 13.69 40. 4464. 13.95 40. 4566. 13.73 40. 4675. 13.72 40. 4785. 13.77 40. 5000. 13.92 40. 5130. 13.84 40. 5263. 13.86 40. 5420. 13.89 80. 5556. 13.91 80. 5700. 14.02 80. 5840. 14.07 80. 5950. 14.08 80. 6056. 14.01 80. 6180. 14.01 80. 6310. 14.06 80. 6436. 14.11 80. 6640. 14.21 80. 6790. 14.15 80. 7100. 14.23 80. 7250. 14.24 80. 7400. 14.3 80. 7550. 14.28 80. sptable-1.0.pre20180612/lib/onedstds/ctiocal/l3218.dat000066400000000000000000000012261331023215600216640ustar00rootroot00000000000000# L3218 3200. 12.44 40. 3350. 12.31 40. 3400. 12.26 40. 3450. 12.3 40. 3500. 12.27 40. 3571. 12.33 40. 3636. 12.24 40. 3704. 12.28 40. 3790. 12.26 40. 3862. 12.14 40. 4036. 11.98 40. 4167. 11.88 40. 4255. 11.88 40. 4464. 11.82 40. 4566. 11.82 40. 4675. 11.79 40. 4785. 11.82 40. 5000. 11.83 40. 5130. 11.82 40. 5263. 11.8 40. 5420. 11.86 80. 5556. 11.83 80. 5700. 11.86 80. 5840. 11.88 80. 5950. 11.89 80. 6056. 11.88 80. 6180. 11.92 80. 6310. 11.85 80. 6436. 11.94 80. 6640. 12.14 80. 6790. 11.98 80. 7100. 11.96 80. 7400. 11.99 80. 7550. 12.03 80. 7780. 12.04 80. 8090. 12.04 80. 8370. 12.11 80. 8708. 12.1 80. 9832. 12.23 80. 10256. 12.33 80. 10400. 12.3 80. sptable-1.0.pre20180612/lib/onedstds/ctiocal/l377.dat000066400000000000000000000013101331023215600216010ustar00rootroot00000000000000# L377 3200. 12.96 40. 3350. 12.69 40. 3400. 12.58 40. 3450. 12.61 40. 3500. 12.53 40. 3571. 12.6 40. 3636. 12.46 40. 3704. 12.33 40. 3790. 12.18 40. 3862. 12.02 40. 4036. 11.75 40. 4167. 11.66 40. 4255. 11.66 40. 4464. 11.53 40. 4566. 11.49 40. 4675. 11.41 40. 4785. 11.38 40. 5000. 11.36 40. 5130. 11.32 40. 5263. 11.28 40. 5420. 11.23 80. 5556. 11.19 80. 5700. 11.19 80. 5840. 11.14 80. 5950. 11.18 80. 6056. 11.13 80. 6180. 11.12 80. 6310. 11.09 80. 6436. 11.08 80. 6640. 11.08 80. 6790. 11.06 80. 7100. 11.04 80. 7250. 11.04 80. 7400. 11.07 80. 7550. 11.03 80. 7780. 11.02 80. 7890. 11.01 80. 7990. 11.01 80. 8090. 10.98 80. 8370. 11.01 80. 8708. 10.97 80. 9832. 10.96 80. 10256. 10.98 80. 10400. 11.02 80. sptable-1.0.pre20180612/lib/onedstds/ctiocal/l3864.dat000066400000000000000000000013071331023215600216730ustar00rootroot00000000000000# L3864 3200. 13.73 40. 3350. 13.49 40. 3400. 13.37 40. 3450. 13.39 40. 3500. 13.34 40. 3571. 13.42 40. 3636. 13.23 40. 3704. 13.23 40. 3790. 12.98 40. 3862. 12.85 40. 4036. 12.66 40. 4167. 12.57 40. 4255. 12.57 40. 4464. 12.43 40. 4566. 12.4 40. 4675. 12.36 40. 4785. 12.3 40. 5000. 12.27 40. 5130. 12.24 40. 5263. 12.19 40. 5420. 12.2 80. 5556. 12.12 80. 5700. 12.08 80. 5840. 12.12 80. 5950. 12.03 80. 6056. 12.04 80. 6180. 12.03 80. 6310. 12.01 80. 6436. 11.99 80. 6640. 11.99 80. 6790. 11.98 80. 7100. 11.95 80. 7250. 11.96 80. 7400. 11.94 80. 7550. 11.93 80. 7780. 11.91 80. 7890. 11.95 80. 7990. 11.93 80. 8090. 11.89 80. 8370. 11.89 80. 8708. 11.87 80. 9832. 11.87 80. 10256. 11.88 80. 10400. 11.94 80. sptable-1.0.pre20180612/lib/onedstds/ctiocal/l4364.dat000066400000000000000000000013041331023215600216640ustar00rootroot00000000000000# L4364 3200. 12. 40. 3350. 11.83 40. 3400. 11.78 40. 3450. 11.8 40. 3500. 11.77 40. 3571. 11.83 40. 3636. 11.75 40. 3704. 11.76 40. 3790. 11.7 40. 3862. 11.6 40. 4036. 11.63 40. 4167. 11.57 40. 4255. 11.57 40. 4464. 11.52 40. 4566. 11.51 40. 4675. 11.58 40. 4785. 11.46 40. 5000. 11.52 40. 5130. 11.57 40. 5263. 11.48 40. 5420. 11.48 80. 5556. 11.49 80. 5700. 11.48 80. 5840. 11.47 80. 5950. 11.51 80. 6056. 11.5 80. 6180. 11.51 80. 6310. 11.52 80. 6436. 11.52 80. 6640. 11.55 80. 6790. 11.53 80. 7100. 11.53 80. 7250. 11.61 80. 7400. 11.56 80. 7550. 11.58 80. 7780. 11.61 80. 7890. 11.58 80. 7990. 11.63 80. 8090. 11.64 80. 8370. 11.67 80. 8708. 11.69 80. 9832. 11.81 80. 10256. 11.87 80. 10400. 11.89 80. sptable-1.0.pre20180612/lib/onedstds/ctiocal/l4816.dat000066400000000000000000000011231331023215600216650ustar00rootroot00000000000000# L4816 3200. 14.09 40. 3350. 14. 40. 3400. 13.97 40. 3450. 14.02 40. 3500. 14.02 40. 3571. 14.07 40. 3636. 14.04 40. 3704. 14.07 40. 3790. 14.05 40. 3862. 13.96 40. 4036. 13.86 40. 4167. 13.77 40. 4255. 13.75 40. 4464. 13.66 40. 4566. 13.66 40. 4675. 13.7 40. 4785. 13.81 40. 5000. 13.73 40. 5130. 13.69 40. 5263. 13.75 40. 5420. 13.76 80. 5556. 13.8 80. 5700. 13.8 80. 5840. 13.87 80. 5950. 13.84 80. 6056. 13.85 80. 6180. 13.89 80. 6310. 13.97 80. 6436. 13.98 80. 6640. 14.12 80. 6790. 14.01 80. 7100. 14.04 80. 7250. 14.16 80. 7550. 14.17 80. 7780. 14.13 80. 8090. 14.09 80. 8370. 14.19 80. sptable-1.0.pre20180612/lib/onedstds/ctiocal/l6248.dat000066400000000000000000000013051331023215600216700ustar00rootroot00000000000000# L6248 3200. 13.31 40. 3350. 13.09 40. 3400. 13.52 40. 3450. 13.12 40. 3500. 12.94 40. 3571. 13.04 40. 3636. 12.81 40. 3704. 12.72 40. 3790. 12.59 40. 3862. 12.44 40. 4036. 12.23 40. 4167. 12.21 40. 4255. 12.15 40. 4464. 12.07 40. 4566. 12.03 40. 4675. 11.98 40. 4785. 11.99 40. 5000. 11.93 40. 5130. 11.91 40. 5263. 11.88 40. 5420. 11.81 80. 5556. 11.77 80. 5700. 11.76 80. 5840. 11.7 80. 5950. 11.7 80. 6056. 11.67 80. 6180. 11.65 80. 6310. 11.64 80. 6436. 11.62 80. 6640. 11.65 80. 6790. 11.61 80. 7100. 11.59 80. 7250. 11.6 80. 7400. 11.59 80. 7550. 11.56 80. 7780. 11.52 80. 7890. 11.51 80. 7990. 11.5 80. 8090. 11.48 80. 8370. 11.49 80. 8708. 11.46 80. 9832. 11.45 80. 10256. 11.49 80. 10400. 11.5 80. sptable-1.0.pre20180612/lib/onedstds/ctiocal/l7379.dat000066400000000000000000000012701331023215600216770ustar00rootroot00000000000000# L7379 3200. 12.17 40. 3350. 11.79 40. 3400. 11.67 40. 3450. 11.73 40. 3500. 11.58 40. 3571. 11.68 40. 3636. 11.52 40. 3704. 11.42 40. 3790. 11.31 40. 3862. 11.22 40. 4036. 10.89 40. 4167. 10.77 40. 4255. 10.83 40. 4464. 10.56 40. 4566. 10.49 40. 4675. 10.4 40. 4785. 10.37 40. 5000. 10.35 40. 5130. 10.34 40. 5263. 10.27 40. 5420. 10.21 80. 5556. 10.18 80. 5700. 10.15 80. 5840. 10.1 80. 5950. 10.11 80. 6056. 10.08 80. 6180. 10.08 80. 6310. 10.05 80. 6436. 10.01 80. 6640. 10.01 80. 6790. 9.97 80. 7100. 9.95 80. 7250. 9.97 80. 7400. 9.95 80. 7550. 9.93 80. 7780. 9.91 80. 7890. 9.89 80. 7990. 9.9 80. 8090. 9.89 80. 8370. 9.88 80. 8708. 9.87 80. 9832. 9.85 80. 10256. 9.89 80. 10400. 9.9 80. sptable-1.0.pre20180612/lib/onedstds/ctiocal/l74546.dat000066400000000000000000000012101331023215600217510ustar00rootroot00000000000000# L74546 3200. 13.67 40. 3350. 13.49 40. 3400. 13.44 40. 3450. 13.45 40. 3500. 13.41 40. 3571. 13.43 40. 3636. 13.31 40. 3704. 13.35 40. 3790. 13.33 40. 3862. 13.19 40. 4036. 13.2 40. 4167. 13.16 40. 4255. 13.16 40. 4464. 13.09 40. 4566. 13.09 40. 4675. 13.07 40. 4785. 13.09 40. 5000. 13.07 40. 5130. 13.07 40. 5263. 13.01 40. 5420. 13.04 80. 5556. 13.01 80. 5700. 13.04 80. 5840. 12.97 80. 5950. 12.99 80. 6056. 13.02 80. 6180. 13.01 80. 6310. 13.02 80. 6436. 13.05 80. 6640. 13.09 80. 6790. 13.03 80. 7100. 12.95 80. 7250. 13.08 80. 7400. 13.08 80. 7550. 13.11 80. 7780. 13.12 80. 8090. 13.13 80. 8370. 13.12 80. 8708. 13.16 80. 9832. 13.23 80. sptable-1.0.pre20180612/lib/onedstds/ctiocal/l7987.dat000066400000000000000000000012651331023215600217100ustar00rootroot00000000000000# L7987 3200. 12.39 40. 3350. 12.32 40. 3400. 12.3 40. 3450. 12.36 40. 3500. 12.34 40. 3571. 12.41 40. 3636. 12.39 40. 3704. 12.41 40. 3790. 12.37 40. 3862. 12.35 40. 4036. 12.12 40. 4167. 12.01 40. 4255. 12.01 40. 4464. 11.95 40. 4566. 11.97 40. 4675. 11.99 40. 4785. 12.18 40. 5000. 12.13 40. 5130. 12.13 40. 5263. 12.15 40. 5420. 12.16 80. 5556. 12.2 80. 5700. 12.25 80. 5840. 12.28 80. 5950. 12.34 80. 6056. 12.37 80. 6180. 12.39 80. 6310. 12.44 80. 6436. 12.5 80. 6790. 12.53 80. 7100. 12.6 80. 7250. 12.64 80. 7400. 12.68 80. 7550. 12.71 80. 7780. 12.72 80. 7890. 12.76 80. 7990. 12.76 80. 8090. 12.77 80. 8370. 12.84 80. 8708. 12.9 80. 9832. 13.03 80. 10256. 13.12 80. 10400. 13.19 80. sptable-1.0.pre20180612/lib/onedstds/ctiocal/l8702.dat000066400000000000000000000011041331023215600216620ustar00rootroot00000000000000# L8702 3220. 13.6 40. 3300. 13.57 40. 3380. 13.554 40. 3460. 13.428 40. 3540. 13.446 40. 3620. 13.38 40. 3740. 13.302 40. 3860. 13.257 40. 3980. 13.181 40. 4100. 13.174 40. 4220. 13.036 40. 4380. 13.015 40. 4460. 12.958 40. 4580. 12.936 40. 4700. 12.917 40. 4820. 12.87 40. 4940. 12.875 40. 5060. 12.896 40. 5180. 12.832 40. 5300. 12.837 40. 5420. 12.801 40. 5540. 12.796 40. 5660. 12.778 40. 5740. 12.79 40. 5860. 12.783 40. 5980. 12.816 40. 6100. 12.765 40. 6220. 12.748 40. 6340. 12.762 40. 6460. 12.746 40. 6540. 12.892 40. 6700. 12.735 40. 7140. 12.752 40. 7220. 12.755 40. sptable-1.0.pre20180612/lib/onedstds/ctiocal/l9239.dat000066400000000000000000000013051331023215600216730ustar00rootroot00000000000000# L9239 3200. 13.96 40. 3350. 13.57 40. 3400. 13.43 40. 3450. 13.38 40. 3500. 13.36 40. 3571. 13.39 40. 3636. 13.25 40. 3704. 13.25 40. 3790. 13.09 40. 3862. 13. 40. 4036. 12.77 40. 4167. 12.66 40. 4255. 12.69 40. 4464. 12.45 40. 4566. 12.37 40. 4675. 12.29 40. 4785. 12.26 40. 5000. 12.22 40. 5130. 12.16 40. 5263. 12.1 40. 5420. 12.08 80. 5556. 12.01 80. 5700. 11.97 80. 5840. 11.92 80. 5950. 11.95 80. 6056. 11.92 80. 6180. 11.91 80. 6310. 11.88 80. 6436. 11.83 80. 6640. 11.81 80. 6790. 11.78 80. 7100. 11.74 80. 7250. 11.71 80. 7400. 11.7 80. 7550. 11.7 80. 7780. 11.69 80. 7890. 11.68 80. 7990. 11.68 80. 8090. 11.65 80. 8370. 11.64 80. 8708. 11.61 80. 9832. 11.55 80. 10256. 11.56 80. 10400. 11.59 80. sptable-1.0.pre20180612/lib/onedstds/ctiocal/l93080.dat000066400000000000000000000016121331023215600217510ustar00rootroot00000000000000# L93080 3320. 14.506 80. 3400. 14.53 80. 3480. 14.534 80. 3560. 14.504 80. 3640. 14.55 80. 3720. 14.585 80. 3800. 14.564 80. 3880. 14.644 80. 3960. 14.554 80. 4040. 14.654 80. 4120. 14.525 80. 4200. 14.516 80. 4280. 14.525 80. 4360. 14.597 80. 4440. 14.73 80. 4520. 14.668 80. 4600. 14.606 80. 4680. 14.637 80. 4760. 14.618 80. 4840. 14.621 80. 4920. 14.754 80. 5000. 14.768 80. 5080. 14.725 80. 5160. 14.703 80. 5240. 14.74 80. 5320. 14.776 80. 5400. 14.792 80. 5480. 14.799 80. 5560. 14.855 80. 5640. 14.867 80. 5720. 14.88 80. 5800. 14.912 80. 6040. 14.918 160. 6200. 14.95 160. 6360. 14.961 160. 6520. 14.963 160. 6680. 15.096 160. 6840. 15.121 160. 7000. 15.147 160. 7160. 15.143 160. 7320. 15.21 160. 7480. 15.237 160. 7640. 15.298 160. 7800. 15.255 160. 7960. 15.292 160. 8280. 15.378 160. 8440. 15.283 160. 8600. 15.195 160. 8760. 15.417 160. 8920. 15.299 160. 9080. 15.427 160. 9240. 15.425 160. sptable-1.0.pre20180612/lib/onedstds/ctiocal/l9491.dat000066400000000000000000000011201331023215600216660ustar00rootroot00000000000000# L9491 3200. 14.17 40. 3350. 14.07 40. 3400. 14.07 40. 3450. 14.11 40. 3500. 14.03 40. 3571. 14.09 40. 3636. 14.07 40. 3704. 14.05 40. 3790. 14.02 40. 3862. 13.97 40. 4036. 14.04 40. 4167. 13.98 40. 4255. 14. 40. 4464. 14.02 40. 4566. 14.02 40. 4675. 14. 40. 4785. 14.01 40. 5000. 14.07 40. 5130. 14.08 40. 5263. 14.09 40. 5420. 14.11 80. 5556. 14.1 80. 5700. 14.13 80. 5840. 14.17 80. 5950. 14.2 80. 6056. 14.19 80. 6180. 14.18 80. 6310. 14.2 80. 6436. 14.19 80. 6640. 14.24 80. 6790. 14.29 80. 7100. 14.27 80. 7250. 14.4 80. 7400. 14.39 80. 7550. 14.39 80. 7780. 14.41 80. 8370. 14.45 80. sptable-1.0.pre20180612/lib/onedstds/ctiocal/l97030.dat000066400000000000000000000013151331023215600217500ustar00rootroot00000000000000# L97030 3220. 13.03 40. 3300. 13.09 40. 3380. 13.074 40. 3460. 13.068 40. 3540. 13.096 40. 3620. 13.09 40. 3740. 13.152 40. 3860. 13.117 40. 3980. 13.131 40. 4100. 13.344 40. 4220. 12.676 40. 4380. 12.895 40. 4460. 12.648 40. 4580. 12.676 40. 4820. 13.08 40. 4940. 12.885 40. 5060. 12.816 40. 5180. 12.802 40. 5300. 12.877 40. 5420. 12.911 40. 5540. 12.956 40. 5660. 12.978 40. 5740. 13.03 40. 5860. 13.123 40. 7160. 13.333 160. 7320. 13.41 160. 7480. 13.437 160. 7640. 13.568 160. 7800. 13.495 160. 7960. 13.522 160. 8120. 13.537 160. 8280. 13.548 160. 8440. 13.523 160. 8600. 13.565 160. 8760. 13.567 160. 8920. 13.689 160. 9080. 13.727 160. 9240. 13.715 160. 9560. 13.812 160. 9720. 13.742 160. 9880. 13.762 160. sptable-1.0.pre20180612/lib/onedstds/ctiocal/lds235.dat000066400000000000000000000015461331023215600221340ustar00rootroot00000000000000# LDS235 3320. 15.436 80. 3400. 15.39 80. 3480. 15.364 80. 3560. 15.404 80. 3640. 15.39 80. 3720. 15.415 80. 3800. 15.464 80. 3880. 15.444 80. 3960. 15.484 80. 4040. 15.514 80. 4120. 15.415 80. 4200. 15.376 80. 4280. 15.365 80. 4360. 15.467 80. 4440. 15.61 80. 4520. 15.498 80. 4600. 15.446 80. 4680. 15.477 80. 4760. 15.498 80. 4840. 15.461 80. 4920. 15.614 80. 5000. 15.598 80. 5080. 15.575 80. 5160. 15.533 80. 5240. 15.57 80. 5320. 15.576 80. 5400. 15.592 80. 5480. 15.599 80. 5560. 15.635 80. 5640. 15.667 80. 5720. 15.73 80. 5800. 15.782 80. 6040. 15.738 160. 6200. 15.72 160. 6360. 15.761 160. 6520. 15.783 160. 6680. 15.996 160. 6840. 15.861 160. 7000. 15.997 160. 7160. 15.943 160. 7320. 16.05 160. 7480. 16.087 160. 7640. 16.058 160. 7800. 16.095 160. 7960. 16.052 160. 8280. 16.188 160. 8440. 16.293 160. 8600. 16.155 160. 8760. 16.097 160. 8920. 16.539 160. sptable-1.0.pre20180612/lib/onedstds/ctiocal/lds749.dat000066400000000000000000000007611331023215600221440ustar00rootroot00000000000000# LDS749 3220. 14.59 40. 3300. 14.56 40. 3380. 14.514 40. 3460. 14.478 40. 3540. 14.466 40. 3620. 14.51 40. 3740. 14.472 40. 3860. 14.587 40. 3980. 14.431 40. 4100. 14.424 40. 4220. 14.476 40. 4460. 14.648 40. 4580. 14.516 40. 4700. 14.547 40. 4820. 14.53 40. 4940. 14.615 40. 5060. 14.656 40. 5180. 14.652 40. 5300. 14.637 40. 5420. 14.641 40. 5540. 14.676 40. 5660. 14.718 40. 5740. 14.73 40. 5860. 14.903 40. 5980. 14.786 40. 6100. 14.805 40. 6220. 14.798 40. 6340. 14.812 40. 6460. 14.826 40. sptable-1.0.pre20180612/lib/onedstds/ctiocal/names.men000066400000000000000000000006031331023215600222230ustar00rootroot00000000000000# Table of alternate names mapped to the names in this directory bd73632 w485a eg11 l8702 eg139 w1346 eg149 l93080 eg158 f110 eg248 g9937 eg26 hz4 eg31 hz2 eg54 l74546 eg63 lds235 eg76 l97030 eg79 ross627 eg99 w485a feige110 f110 feige15 f15 feige25 f25 feige56 f56 feige98 f98 g16350 l97030 g2631 l93080 ltt4099 l97030 ltt8702 l93080 wolf1346 w1346 wolf485a w485a sptable-1.0.pre20180612/lib/onedstds/ctiocal/ross627.dat000066400000000000000000000013171331023215600223410ustar00rootroot00000000000000# ROSS627 3160. 14.86 40. 3240. 14.88 40. 3320. 14.806 40. 3400. 14.78 40. 3480. 14.724 40. 3560. 14.674 40. 3640. 14.63 40. 3720. 14.585 40. 3800. 14.614 40. 3880. 14.574 40. 4000. 14.529 40. 4080. 14.474 40. 4200. 14.346 40. 4280. 14.355 40. 4400. 14.384 40. 4480. 14.311 40. 4600. 14.216 40. 4680. 14.227 40. 4800. 14.189 40. 4880. 14.273 40. 5000. 14.168 40. 5080. 14.165 40. 5200. 14.121 40. 5280. 14.128 40. 5400. 14.102 40. 5480. 14.129 40. 5600. 14.086 40. 5680. 14.108 40. 5800. 14.062 80. 5960. 14.036 80. 6200. 14.06 80. 6360. 14.031 80. 6600. 14.119 80. 6760. 14.042 80. 7000. 14.067 80. 7160. 14.003 80. 7400. 14.043 80. 7720. 14.107 80. 7880. 14.124 80. 8200. 13.983 80. 8360. 14.023 80. 8600. 14.025 80. sptable-1.0.pre20180612/lib/onedstds/ctiocal/standards.men000066400000000000000000000016441331023215600231110ustar00rootroot00000000000000Standard stars in onedstds$ctiocal/ bd25 eg139 feige56 l2415 l93080 bd73632 eg149 feige98 l2511 l97030 bd8 eg158 g16350 l3218 lds235 cd32 eg248 g2631 l3864 lds749 eg11 eg274 g9937 l4364 ltt4099 eg21 f15 h600 l4816 ltt8702 eg26 f25 hz2 l6248 ross627 eg31 f56 hz4 l7379 w1346 eg54 f98 hz15 l7987 w485a eg63 f110 kopf27 l8702 wolf1346 eg76 feige110 l377 l9239 wolf485a eg79 feige15 l1020 l9491 eg99 feige25 l1788 l74546 sptable-1.0.pre20180612/lib/onedstds/ctiocal/w1346.dat000066400000000000000000000003021331023215600216710ustar00rootroot00000000000000# W1346 5740. 11.56 40. 5860. 11.583 40. 5980. 11.656 40. 6100. 11.665 40. 6220. 11.708 40. 6340. 11.752 40. 6460. 11.786 40. 6540. 11.962 40. 6700. 11.855 40. 7140. 11.922 40. 7220. 11.935 40. sptable-1.0.pre20180612/lib/onedstds/ctiocal/w485a.dat000066400000000000000000000017431331023215600217670ustar00rootroot00000000000000# W485A 3320. 12.466 80. 3400. 12.48 80. 3480. 12.464 80. 3560. 12.434 80. 3640. 12.44 80. 3720. 12.455 80. 3800. 12.494 80. 3880. 12.504 80. 3960. 12.554 80. 4040. 12.244 80. 4120. 12.445 80. 4200. 12.056 80. 4280. 12.185 80. 4360. 12.497 80. 4440. 12.07 80. 4520. 12.018 80. 4600. 12.026 80. 4680. 12.057 80. 4760. 12.138 80. 4840. 12.501 80. 4920. 12.314 80. 5000. 12.158 80. 5080. 12.145 80. 5160. 12.123 80. 5240. 12.14 80. 5320. 12.166 80. 5400. 12.182 80. 5480. 12.219 80. 5560. 12.195 80. 5640. 12.217 80. 5720. 12.23 80. 5800. 12.252 80. 6040. 12.238 160. 6200. 12.27 160. 6360. 12.291 160. 6520. 12.563 160. 6680. 12.486 160. 6840. 12.451 160. 7000. 12.477 160. 7160. 12.523 160. 7320. 12.57 160. 7480. 12.617 160. 7640. 12.698 160. 7800. 12.655 160. 7960. 12.682 160. 8120. 12.657 160. 8280. 12.678 160. 8440. 12.713 160. 8600. 12.745 160. 8760. 12.787 160. 8920. 12.839 160. 9080. 12.847 160. 9240. 12.855 160. 9400. 12.993 160. 9560. 12.902 160. 9720. 12.922 160. 9880. 12.972 160. sptable-1.0.pre20180612/lib/onedstds/ctioextinct.dat000066400000000000000000000006751331023215600220410ustar00rootroot00000000000000 3200. 1.05 3250. 0.91 3300. 0.82 3350. 0.75 3400. 0.70 3450. 0.66 3500. 0.62 3571. 0.57 3636. 0.55 3704. 0.50 3862. 0.42 4036. 0.38 4167. 0.34 4255. 0.31 4464. 0.27 4566. 0.25 4785. 0.22 5000. 0.19 5263. 0.17 5556. 0.14 5840. 0.16 6056. 0.15 6436. 0.11 6790. 0.071 7100. 0.067 7550. 0.053 7780. 0.049 8090. 0.053 8370. 0.050 8708. 0.030 9832. 0.053 10256. 0.023 10400. 0.024 10610. 0.026 10796. 0.029 10870. 0.037 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/000077500000000000000000000000001331023215600211325ustar00rootroot00000000000000sptable-1.0.pre20180612/lib/onedstds/ctionewcal/cd32.dat000066400000000000000000000040541331023215600223620ustar00rootroot00000000000000# CD 32 3300 12.024 50 3350 11.992 50 3400 11.967 50 3450 11.962 50 3500 11.931 50 3550 11.849 50 3600 11.827 50 3650 11.732 50 3700 11.676 50 3750 11.502 50 3800 11.26 50 3850 11.095 50 3900 11.057 50 3950 11.033 50 4000 10.799 50 4050 10.718 50 4100 10.94 50 4150 10.705 50 4200 10.643 50 4250 10.61 50 4300 10.661 50 4350 10.797 50 4400 10.57 50 4450 10.548 50 4500 10.509 50 4550 10.527 50 4600 10.489 50 4650 10.481 50 4700 10.475 50 4750 10.47 50 4800 10.475 50 4850 10.714 50 4900 10.541 50 4950 10.458 50 5000 10.471 50 5050 10.443 50 5100 10.455 50 5150 10.467 50 5200 10.477 50 5250 10.463 50 5300 10.448 50 5350 10.442 50 5400 10.446 50 5450 10.433 50 5500 10.427 50 5550 10.416 50 5600 10.419 50 5650 10.421 50 5700 10.429 50 5750 10.419 50 5800 10.417 50 5850 10.406 50 5900 10.424 50 5950 10.411 50 6000 10.421 50 6050 10.419 50 6100 10.424 50 6150 10.445 50 6200 10.429 50 6250 10.444 50 6300 10.454 50 6350 10.442 50 6400 10.436 50 6450 10.44 50 6500 10.458 50 6550 10.627 50 6600 10.489 50 6650 10.438 50 6700 10.430 50 6750 10.435 50 6800 10.438 50 6850 10.492 50 6900 10.553 50 6950 10.470 50 7000 10.470 50 7050 10.464 50 7100 10.465 50 7150 10.488 50 7200 10.549 50 7250 10.540 50 7300 10.535 50 7350 10.499 50 7400 10.508 50 7450 10.502 50 7500 10.504 50 7550 10.498 50 7600 10.965 50 7650 10.843 50 7700 10.526 50 7750 10.513 50 7800 10.510 50 7850 10.509 50 7900 10.519 50 7950 10.522 50 8000 10.520 50 8050 10.523 50 8100 10.533 50 8150 10.595 50 8200 10.604 50 8250 10.591 50 8300 10.586 50 8350 10.568 50 8400 10.557 50 8450 10.564 50 8500 10.571 50 8550 10.580 50 8600 10.574 50 8650 10.593 50 8700 10.549 50 8750 10.617 50 8800 10.535 50 8850 10.634 50 8900 10.562 50 8950 10.580 50 9000 10.762 50 9050 10.639 50 9100 10.649 50 9150 10.643 50 9200 10.685 50 9250 10.731 50 9300 10.796 50 9350 11.050 50 9400 10.855 50 9450 10.933 50 9500 10.912 50 9550 11.005 50 9600 10.838 50 9650 10.762 50 9700 10.662 50 9750 10.682 50 9800 10.653 50 9850 10.623 50 9900 10.618 50 9950 10.625 50 10000 10.631 50 10050 10.783 50 10100 10.641 50 10150 10.604 50 10200 10.632 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/cd32blue.dat000066400000000000000000000024221331023215600232270ustar00rootroot00000000000000# CD-32 3300 12.029 50 3350 11.997 50 3400 11.972 50 3450 11.967 50 3500 11.936 50 3550 11.854 50 3600 11.832 50 3650 11.737 50 3700 11.681 50 3750 11.507 50 3800 11.265 50 3850 11.100 50 3900 11.062 50 3950 11.038 50 4000 10.804 50 4050 10.723 50 4100 10.945 50 4150 10.710 50 4200 10.648 50 4250 10.615 50 4300 10.666 50 4350 10.802 50 4400 10.575 50 4450 10.553 50 4500 10.514 50 4550 10.532 50 4600 10.494 50 4650 10.486 50 4700 10.480 50 4750 10.475 50 4800 10.480 50 4850 10.719 50 4900 10.546 50 4950 10.463 50 5000 10.476 50 5050 10.448 50 5100 10.460 50 5150 10.472 50 5200 10.482 50 5250 10.468 50 5300 10.453 50 5350 10.447 50 5400 10.451 50 5450 10.438 50 5500 10.432 50 5550 10.421 50 5600 10.424 50 5650 10.426 50 5700 10.434 50 5750 10.424 50 5800 10.422 50 5850 10.411 50 5900 10.429 50 5950 10.416 50 6000 10.426 50 6050 10.424 50 6100 10.429 50 6150 10.450 50 6200 10.434 50 6250 10.449 50 6300 10.459 50 6350 10.447 50 6400 10.441 50 6450 10.445 50 6500 10.456 50 6550 10.630 50 6600 10.498 50 6650 10.440 50 6700 10.431 50 6750 10.439 50 6800 10.444 50 6850 10.499 50 6900 10.563 50 6950 10.478 50 7000 10.476 50 7050 10.465 50 7100 10.465 50 7150 10.491 50 7200 10.556 50 7250 10.548 50 7300 10.542 50 7350 10.505 50 7400 10.515 50 7450 10.511 50 7500 10.513 50 7550 10.515 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/cd32red.dat000066400000000000000000000023521331023215600230540ustar00rootroot00000000000000# CD-32 6100 10.417 50 6150 10.450 50 6200 10.442 50 6250 10.465 50 6300 10.474 50 6350 10.458 50 6400 10.461 50 6450 10.448 50 6500 10.465 50 6550 10.629 50 6600 10.484 50 6650 10.441 50 6700 10.433 50 6750 10.436 50 6800 10.436 50 6850 10.490 50 6900 10.547 50 6950 10.466 50 7000 10.469 50 7050 10.468 50 7100 10.470 50 7150 10.489 50 7200 10.546 50 7250 10.536 50 7300 10.532 50 7350 10.497 50 7400 10.505 50 7450 10.497 50 7500 10.500 50 7550 10.498 50 7600 10.965 50 7650 10.843 50 7700 10.526 50 7750 10.513 50 7800 10.510 50 7850 10.509 50 7900 10.519 50 7950 10.522 50 8000 10.520 50 8050 10.523 50 8100 10.533 50 8150 10.595 50 8200 10.604 50 8250 10.591 50 8300 10.586 50 8350 10.568 50 8400 10.557 50 8450 10.564 50 8500 10.571 50 8550 10.580 50 8600 10.574 50 8650 10.593 50 8700 10.549 50 8750 10.617 50 8800 10.535 50 8850 10.634 50 8900 10.562 50 8950 10.580 50 9000 10.762 50 9050 10.639 50 9100 10.649 50 9150 10.643 50 9200 10.685 50 9250 10.731 50 9300 10.796 50 9350 11.050 50 9400 10.855 50 9450 10.933 50 9500 10.912 50 9550 11.005 50 9600 10.838 50 9650 10.762 50 9700 10.662 50 9750 10.682 50 9800 10.653 50 9850 10.623 50 9900 10.618 50 9950 10.625 50 10000 10.631 50 10050 10.783 50 10100 10.641 50 10150 10.604 50 10200 10.632 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/eg21.dat000066400000000000000000000037541331023215600223730ustar00rootroot00000000000000# EG 21 3300 11.46 50 3350 11.435 50 3400 11.443 50 3450 11.471 50 3500 11.484 50 3550 11.488 50 3600 11.475 50 3650 11.474 50 3700 11.491 50 3750 11.502 50 3800 11.504 50 3850 11.491 50 3900 11.5 50 3950 11.482 50 4000 11.407 50 4050 11.241 50 4100 11.626 50 4150 11.266 50 4200 11.096 50 4250 11.121 50 4300 11.346 50 4350 11.699 50 4400 11.288 50 4450 11.153 50 4500 11.123 50 4550 11.132 50 4600 11.146 50 4650 11.163 50 4700 11.189 50 4750 11.241 50 4800 11.375 50 4850 11.765 50 4900 11.571 50 4950 11.345 50 5000 11.298 50 5050 11.294 50 5100 11.292 50 5150 11.296 50 5200 11.305 50 5250 11.319 50 5300 11.331 50 5350 11.347 50 5400 11.361 50 5450 11.372 50 5500 11.382 50 5550 11.395 50 5600 11.408 50 5650 11.424 50 5700 11.44 50 5750 11.457 50 5800 11.464 50 5850 11.472 50 5900 11.491 50 5950 11.512 50 6000 11.525 50 6050 11.536 50 6100 11.543 50 6150 11.548 50 6200 11.56 50 6250 11.582 50 6300 11.609 50 6350 11.61 50 6400 11.633 50 6450 11.673 50 6500 11.771 50 6550 12.026 50 6600 11.899 50 6650 11.746 50 6700 11.704 50 6750 11.700 50 6800 11.706 50 6850 11.763 50 6900 11.826 50 6950 11.749 50 7000 11.753 50 7050 11.763 50 7100 11.772 50 7150 11.799 50 7200 11.857 50 7250 11.860 50 7300 11.852 50 7350 11.836 50 7400 11.838 50 7450 11.843 50 7500 11.855 50 7550 11.861 50 7600 12.345 50 7650 12.232 50 7700 11.911 50 7750 11.908 50 7800 11.915 50 7850 11.925 50 7900 11.936 50 7950 11.936 50 8000 11.957 50 8050 11.968 50 8100 11.985 50 8150 12.057 50 8200 12.058 50 8250 12.059 50 8300 12.063 50 8350 12.051 50 8400 12.038 50 8450 12.043 50 8500 12.070 50 8550 12.084 50 8600 12.092 50 8650 12.105 50 8700 12.110 50 8750 12.130 50 8800 12.152 50 8850 12.145 50 8900 12.153 50 8950 12.229 50 9000 12.314 50 9050 12.260 50 9100 12.305 50 9150 12.322 50 9200 12.300 50 9250 12.310 50 9300 12.449 50 9350 12.715 50 9400 12.492 50 9450 12.568 50 9500 12.612 50 9550 12.610 50 9600 12.558 50 9650 12.471 50 9700 12.370 50 9750 12.369 50 9800 12.339 50 9850 12.338 50 9900 12.314 50 9950 12.344 50 10000 12.476 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/eg21blue.dat000066400000000000000000000024221331023215600232320ustar00rootroot00000000000000# EG 21 3300 11.450 50 3350 11.425 50 3400 11.433 50 3450 11.461 50 3500 11.474 50 3550 11.478 50 3600 11.465 50 3650 11.464 50 3700 11.481 50 3750 11.492 50 3800 11.494 50 3850 11.481 50 3900 11.490 50 3950 11.472 50 4000 11.397 50 4050 11.231 50 4100 11.616 50 4150 11.256 50 4200 11.086 50 4250 11.111 50 4300 11.336 50 4350 11.689 50 4400 11.278 50 4450 11.143 50 4500 11.113 50 4550 11.122 50 4600 11.136 50 4650 11.153 50 4700 11.179 50 4750 11.231 50 4800 11.365 50 4850 11.755 50 4900 11.561 50 4950 11.335 50 5000 11.288 50 5050 11.284 50 5100 11.282 50 5150 11.286 50 5200 11.295 50 5250 11.309 50 5300 11.321 50 5350 11.337 50 5400 11.351 50 5450 11.362 50 5500 11.372 50 5550 11.385 50 5600 11.398 50 5650 11.414 50 5700 11.430 50 5750 11.447 50 5800 11.454 50 5850 11.462 50 5900 11.481 50 5950 11.502 50 6000 11.515 50 6050 11.526 50 6100 11.533 50 6150 11.538 50 6200 11.550 50 6250 11.572 50 6300 11.599 50 6350 11.600 50 6400 11.623 50 6450 11.663 50 6500 11.761 50 6550 12.017 50 6600 11.889 50 6650 11.736 50 6700 11.695 50 6750 11.693 50 6800 11.702 50 6850 11.755 50 6900 11.821 50 6950 11.740 50 7000 11.743 50 7050 11.755 50 7100 11.764 50 7150 11.790 50 7200 11.844 50 7250 11.846 50 7300 11.840 50 7350 11.823 50 7400 11.824 50 7450 11.826 50 7500 11.842 50 7550 11.861 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/eg21red.dat000066400000000000000000000022711331023215600230570ustar00rootroot00000000000000# EG 21 6050 11.512 50 6100 11.520 50 6150 11.538 50 6200 11.551 50 6250 11.577 50 6300 11.613 50 6350 11.607 50 6400 11.626 50 6450 11.672 50 6500 11.770 50 6550 12.025 50 6600 11.898 50 6650 11.746 50 6700 11.703 50 6750 11.697 50 6800 11.699 50 6850 11.760 50 6900 11.821 50 6950 11.747 50 7000 11.753 50 7050 11.761 50 7100 11.770 50 7150 11.798 50 7200 11.860 50 7250 11.864 50 7300 11.854 50 7350 11.838 50 7400 11.842 50 7450 11.850 50 7500 11.858 50 7550 11.861 50 7600 12.345 50 7650 12.232 50 7700 11.911 50 7750 11.908 50 7800 11.915 50 7850 11.925 50 7900 11.936 50 7950 11.936 50 8000 11.957 50 8050 11.968 50 8100 11.985 50 8150 12.057 50 8200 12.058 50 8250 12.059 50 8300 12.063 50 8350 12.051 50 8400 12.038 50 8450 12.043 50 8500 12.070 50 8550 12.084 50 8600 12.092 50 8650 12.105 50 8700 12.110 50 8750 12.130 50 8800 12.152 50 8850 12.145 50 8900 12.153 50 8950 12.229 50 9000 12.314 50 9050 12.260 50 9100 12.305 50 9150 12.322 50 9200 12.300 50 9250 12.310 50 9300 12.449 50 9350 12.715 50 9400 12.492 50 9450 12.568 50 9500 12.612 50 9550 12.610 50 9600 12.558 50 9650 12.471 50 9700 12.370 50 9750 12.369 50 9800 12.339 50 9850 12.338 50 9900 12.314 50 9950 12.344 50 10000 12.476 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/eg274.dat000066400000000000000000000040361331023215600224570ustar00rootroot00000000000000# EG 274 3300 10.605 50 3350 10.598 50 3400 10.619 50 3450 10.668 50 3500 10.68 50 3550 10.691 50 3600 10.697 50 3650 10.709 50 3700 10.73 50 3750 10.749 50 3800 10.765 50 3850 10.769 50 3900 10.781 50 3950 10.827 50 4000 10.756 50 4050 10.672 50 4100 10.968 50 4150 10.711 50 4200 10.626 50 4250 10.655 50 4300 10.817 50 4350 11.074 50 4400 10.773 50 4450 10.711 50 4500 10.714 50 4550 10.729 50 4600 10.748 50 4650 10.771 50 4700 10.801 50 4750 10.833 50 4800 10.925 50 4850 11.225 50 4900 11.052 50 4950 10.914 50 5000 10.898 50 5050 10.906 50 5100 10.918 50 5150 10.926 50 5200 10.941 50 5250 10.957 50 5300 10.979 50 5350 10.994 50 5400 11.009 50 5450 11.025 50 5500 11.037 50 5550 11.046 50 5600 11.071 50 5650 11.09 50 5700 11.108 50 5750 11.132 50 5800 11.141 50 5850 11.145 50 5900 11.161 50 5950 11.183 50 6000 11.199 50 6050 11.211 50 6100 11.238 50 6150 11.242 50 6200 11.25 50 6250 11.27 50 6300 11.287 50 6350 11.284 50 6400 11.294 50 6450 11.323 50 6500 11.384 50 6550 11.592 50 6600 11.483 50 6650 11.385 50 6700 11.370 50 6750 11.377 50 6800 11.388 50 6850 11.451 50 6900 11.517 50 6950 11.448 50 7000 11.452 50 7050 11.460 50 7100 11.473 50 7150 11.497 50 7200 11.558 50 7250 11.561 50 7300 11.552 50 7350 11.549 50 7400 11.554 50 7450 11.563 50 7500 11.575 50 7550 11.585 50 7600 12.056 50 7650 11.954 50 7700 11.631 50 7750 11.623 50 7800 11.634 50 7850 11.648 50 7900 11.665 50 7950 11.673 50 8000 11.689 50 8050 11.694 50 8100 11.711 50 8150 11.782 50 8200 11.786 50 8250 11.792 50 8300 11.793 50 8350 11.779 50 8400 11.772 50 8450 11.787 50 8500 11.798 50 8550 11.811 50 8600 11.820 50 8650 11.831 50 8700 11.843 50 8750 11.856 50 8800 11.875 50 8850 11.888 50 8900 11.900 50 8950 11.962 50 9000 12.038 50 9050 11.992 50 9100 12.038 50 9150 12.061 50 9200 12.035 50 9250 12.038 50 9300 12.218 50 9350 12.504 50 9400 12.274 50 9450 12.394 50 9500 12.379 50 9550 12.347 50 9600 12.299 50 9650 12.208 50 9700 12.109 50 9750 12.158 50 9800 12.141 50 9850 12.091 50 9900 12.093 50 9950 12.152 50 10000 12.160 50 10050 12.270 50 10100 12.191 50 10150 12.160 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/eg274blue.dat000066400000000000000000000024231331023215600233250ustar00rootroot00000000000000# EG 274 3300 10.585 50 3350 10.578 50 3400 10.599 50 3450 10.648 50 3500 10.660 50 3550 10.671 50 3600 10.677 50 3650 10.689 50 3700 10.710 50 3750 10.729 50 3800 10.745 50 3850 10.749 50 3900 10.761 50 3950 10.807 50 4000 10.736 50 4050 10.652 50 4100 10.948 50 4150 10.691 50 4200 10.606 50 4250 10.635 50 4300 10.797 50 4350 11.054 50 4400 10.753 50 4450 10.691 50 4500 10.694 50 4550 10.709 50 4600 10.728 50 4650 10.751 50 4700 10.781 50 4750 10.813 50 4800 10.905 50 4850 11.205 50 4900 11.032 50 4950 10.894 50 5000 10.878 50 5050 10.886 50 5100 10.898 50 5150 10.906 50 5200 10.921 50 5250 10.937 50 5300 10.959 50 5350 10.974 50 5400 10.989 50 5450 11.005 50 5500 11.017 50 5550 11.026 50 5600 11.051 50 5650 11.070 50 5700 11.088 50 5750 11.112 50 5800 11.121 50 5850 11.125 50 5900 11.141 50 5950 11.163 50 6000 11.179 50 6050 11.191 50 6100 11.218 50 6150 11.222 50 6200 11.230 50 6250 11.250 50 6300 11.267 50 6350 11.264 50 6400 11.274 50 6450 11.303 50 6500 11.358 50 6550 11.559 50 6600 11.462 50 6650 11.365 50 6700 11.352 50 6750 11.361 50 6800 11.373 50 6850 11.434 50 6900 11.502 50 6950 11.434 50 7000 11.433 50 7050 11.438 50 7100 11.453 50 7150 11.469 50 7200 11.530 50 7250 11.530 50 7300 11.532 50 7350 11.529 50 7400 11.533 50 7450 11.548 50 7500 11.559 50 7550 11.583 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/eg274red.dat000066400000000000000000000023521331023215600231510ustar00rootroot00000000000000# EG 274 6050 11.182 50 6100 11.202 50 6150 11.219 50 6200 11.238 50 6250 11.260 50 6300 11.292 50 6350 11.288 50 6400 11.300 50 6450 11.324 50 6500 11.389 50 6550 11.605 50 6600 11.484 50 6650 11.384 50 6700 11.368 50 6750 11.372 50 6800 11.383 50 6850 11.447 50 6900 11.511 50 6950 11.442 50 7000 11.450 50 7050 11.462 50 7100 11.472 50 7150 11.504 50 7200 11.565 50 7250 11.571 50 7300 11.565 50 7350 11.548 50 7400 11.554 50 7450 11.558 50 7500 11.571 50 7550 11.585 50 7600 12.056 50 7650 11.954 50 7700 11.631 50 7750 11.623 50 7800 11.634 50 7850 11.648 50 7900 11.665 50 7950 11.673 50 8000 11.689 50 8050 11.694 50 8100 11.711 50 8150 11.782 50 8200 11.786 50 8250 11.792 50 8300 11.793 50 8350 11.779 50 8400 11.772 50 8450 11.787 50 8500 11.798 50 8550 11.811 50 8600 11.820 50 8650 11.831 50 8700 11.843 50 8750 11.856 50 8800 11.875 50 8850 11.888 50 8900 11.900 50 8950 11.962 50 9000 12.038 50 9050 11.992 50 9100 12.038 50 9150 12.061 50 9200 12.035 50 9250 12.038 50 9300 12.218 50 9350 12.504 50 9400 12.274 50 9450 12.394 50 9500 12.379 50 9550 12.347 50 9600 12.299 50 9650 12.208 50 9700 12.109 50 9750 12.158 50 9800 12.141 50 9850 12.091 50 9900 12.093 50 9950 12.152 50 10000 12.160 50 10050 12.270 50 10100 12.191 50 10150 12.160 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/f110.dat000066400000000000000000000037331331023215600223010ustar00rootroot00000000000000# Feige 110 3300 10.982 50 3350 10.972 50 3400 11.002 50 3450 11.057 50 3500 11.078 50 3550 11.093 50 3600 11.107 50 3650 11.134 50 3700 11.164 50 3750 11.182 50 3800 11.195 50 3850 11.197 50 3900 11.224 50 3950 11.255 50 4000 11.254 50 4050 11.243 50 4100 11.37 50 4150 11.296 50 4200 11.329 50 4250 11.353 50 4300 11.388 50 4350 11.5 50 4400 11.423 50 4450 11.444 50 4500 11.462 50 4550 11.484 50 4600 11.506 50 4650 11.534 50 4700 11.574 50 4750 11.572 50 4800 11.592 50 4850 11.71 50 4900 11.638 50 4950 11.635 50 5000 11.655 50 5050 11.676 50 5100 11.689 50 5150 11.702 50 5200 11.716 50 5250 11.737 50 5300 11.757 50 5350 11.77 50 5400 11.807 50 5450 11.807 50 5500 11.823 50 5550 11.84 50 5600 11.86 50 5650 11.88 50 5700 11.905 50 5750 11.92 50 5800 11.93 50 5850 11.94 50 5900 11.963 50 5950 11.974 50 6000 11.992 50 6050 12.012 50 6100 12.041 50 6150 12.064 50 6200 12.087 50 6250 12.115 50 6300 12.142 50 6350 12.141 50 6400 12.151 50 6450 12.160 50 6500 12.175 50 6550 12.275 50 6600 12.212 50 6650 12.208 50 6700 12.214 50 6750 12.225 50 6800 12.237 50 6850 12.304 50 6900 12.377 50 6950 12.303 50 7000 12.311 50 7050 12.329 50 7100 12.340 50 7150 12.368 50 7200 12.425 50 7250 12.432 50 7300 12.424 50 7350 12.417 50 7400 12.423 50 7450 12.434 50 7500 12.450 50 7550 12.466 50 7600 12.941 50 7650 12.835 50 7700 12.519 50 7750 12.509 50 7800 12.513 50 7850 12.530 50 7900 12.545 50 7950 12.553 50 8000 12.569 50 8050 12.583 50 8100 12.598 50 8150 12.659 50 8200 12.659 50 8250 12.686 50 8300 12.680 50 8350 12.663 50 8400 12.672 50 8450 12.684 50 8500 12.691 50 8550 12.704 50 8600 12.717 50 8650 12.729 50 8700 12.746 50 8750 12.757 50 8800 12.764 50 8850 12.796 50 8900 12.799 50 8950 12.847 50 9000 12.930 50 9050 12.885 50 9100 12.917 50 9150 12.931 50 9200 12.929 50 9250 12.951 50 9300 13.082 50 9350 13.301 50 9400 13.140 50 9450 13.218 50 9500 13.233 50 9550 13.196 50 9600 13.117 50 9650 13.079 50 9700 13.046 50 9750 13.076 50 9800 13.028 50 9850 13.048 50 9900 13.082 50 9950 12.970 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/f110blue.dat000066400000000000000000000024261331023215600231470ustar00rootroot00000000000000# Feige 110 3300 11.017 50 3350 11.008 50 3400 11.035 50 3450 11.085 50 3500 11.112 50 3550 11.128 50 3600 11.134 50 3650 11.154 50 3700 11.194 50 3750 11.215 50 3800 11.223 50 3850 11.233 50 3900 11.255 50 3950 11.285 50 4000 11.274 50 4050 11.264 50 4100 11.387 50 4150 11.313 50 4200 11.340 50 4250 11.370 50 4300 11.403 50 4350 11.516 50 4400 11.442 50 4450 11.465 50 4500 11.484 50 4550 11.509 50 4600 11.527 50 4650 11.553 50 4700 11.594 50 4750 11.586 50 4800 11.610 50 4850 11.729 50 4900 11.661 50 4950 11.661 50 5000 11.681 50 5050 11.703 50 5100 11.715 50 5150 11.726 50 5200 11.739 50 5250 11.759 50 5300 11.778 50 5350 11.796 50 5400 11.830 50 5450 11.830 50 5500 11.846 50 5550 11.861 50 5600 11.874 50 5650 11.892 50 5700 11.917 50 5750 11.934 50 5800 11.948 50 5850 11.963 50 5900 11.984 50 5950 12.001 50 6000 12.018 50 6050 12.033 50 6100 12.028 50 6150 12.020 50 6200 12.026 50 6250 12.038 50 6300 12.070 50 6350 12.061 50 6400 12.085 50 6450 12.095 50 6500 12.116 50 6550 12.216 50 6600 12.156 50 6650 12.147 50 6700 12.170 50 6750 12.177 50 6800 12.202 50 6850 12.258 50 6900 12.321 50 6950 12.245 50 7000 12.240 50 7050 12.268 50 7100 12.281 50 7150 12.306 50 7200 12.354 50 7250 12.351 50 7300 12.340 50 7350 12.350 50 7400 12.345 50 7450 12.354 50 7500 12.358 50 7550 12.398 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/f110red.dat000066400000000000000000000022361331023215600227710ustar00rootroot00000000000000# Feige 110 6100 12.041 50 6150 12.064 50 6200 12.087 50 6250 12.115 50 6300 12.142 50 6350 12.141 50 6400 12.151 50 6450 12.160 50 6500 12.175 50 6550 12.275 50 6600 12.212 50 6650 12.208 50 6700 12.214 50 6750 12.225 50 6800 12.237 50 6850 12.304 50 6900 12.377 50 6950 12.303 50 7000 12.311 50 7050 12.329 50 7100 12.340 50 7150 12.368 50 7200 12.425 50 7250 12.432 50 7300 12.424 50 7350 12.417 50 7400 12.423 50 7450 12.434 50 7500 12.450 50 7550 12.466 50 7600 12.941 50 7650 12.835 50 7700 12.519 50 7750 12.509 50 7800 12.513 50 7850 12.530 50 7900 12.545 50 7950 12.553 50 8000 12.569 50 8050 12.583 50 8100 12.598 50 8150 12.659 50 8200 12.659 50 8250 12.686 50 8300 12.680 50 8350 12.663 50 8400 12.672 50 8450 12.684 50 8500 12.691 50 8550 12.704 50 8600 12.717 50 8650 12.729 50 8700 12.746 50 8750 12.757 50 8800 12.764 50 8850 12.796 50 8900 12.799 50 8950 12.847 50 9000 12.930 50 9050 12.885 50 9100 12.917 50 9150 12.931 50 9200 12.929 50 9250 12.951 50 9300 13.082 50 9350 13.301 50 9400 13.140 50 9450 13.218 50 9500 13.233 50 9550 13.196 50 9600 13.117 50 9650 13.079 50 9700 13.046 50 9750 13.076 50 9800 13.028 50 9850 13.048 50 9900 13.082 50 9950 12.970 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/f56.dat000066400000000000000000000040211331023215600222210ustar00rootroot00000000000000# Feige 56 3300 11.232 50 3350 11.224 50 3400 11.232 50 3450 11.248 50 3500 11.254 50 3550 11.246 50 3600 11.237 50 3650 11.232 50 3700 11.204 50 3750 11.031 50 3800 10.853 50 3850 10.764 50 3900 10.752 50 3950 10.774 50 4000 10.7 50 4050 10.679 50 4100 10.837 50 4150 10.713 50 4200 10.716 50 4250 10.741 50 4300 10.781 50 4350 10.902 50 4400 10.791 50 4450 10.805 50 4500 10.815 50 4550 10.828 50 4600 10.837 50 4650 10.849 50 4700 10.861 50 4750 10.88 50 4800 10.896 50 4850 11.035 50 4900 10.928 50 4950 10.918 50 5000 10.944 50 5050 10.964 50 5100 10.972 50 5150 10.984 50 5200 11.006 50 5250 11.01 50 5300 11.016 50 5350 11.022 50 5400 11.031 50 5450 11.041 50 5500 11.051 50 5550 11.057 50 5600 11.066 50 5650 11.089 50 5700 11.104 50 5750 11.112 50 5800 11.123 50 5850 11.125 50 5900 11.157 50 5950 11.159 50 6000 11.164 50 6050 11.176 50 6100 11.185 50 6150 11.196 50 6200 11.206 50 6250 11.222 50 6300 11.249 50 6350 11.249 50 6400 11.252 50 6450 11.261 50 6500 11.272 50 6550 11.370 50 6600 11.300 50 6650 11.292 50 6700 11.298 50 6750 11.308 50 6800 11.322 50 6850 11.383 50 6900 11.450 50 6950 11.377 50 7000 11.375 50 7050 11.381 50 7100 11.392 50 7150 11.419 50 7200 11.486 50 7250 11.490 50 7300 11.482 50 7350 11.453 50 7400 11.454 50 7450 11.458 50 7500 11.469 50 7550 11.476 50 7600 11.962 50 7650 11.842 50 7700 11.521 50 7750 11.509 50 7800 11.517 50 7850 11.523 50 7900 11.539 50 7950 11.543 50 8000 11.553 50 8050 11.561 50 8100 11.575 50 8150 11.651 50 8200 11.651 50 8250 11.656 50 8300 11.659 50 8350 11.637 50 8400 11.633 50 8450 11.645 50 8500 11.648 50 8550 11.654 50 8600 11.669 50 8650 11.673 50 8700 11.623 50 8750 11.715 50 8800 11.611 50 8850 11.732 50 8900 11.659 50 8950 11.692 50 9000 11.878 50 9050 11.754 50 9100 11.764 50 9150 11.786 50 9200 11.807 50 9250 11.862 50 9300 11.960 50 9350 12.255 50 9400 12.028 50 9450 12.115 50 9500 12.091 50 9550 12.184 50 9600 12.003 50 9650 11.929 50 9700 11.844 50 9750 11.872 50 9800 11.852 50 9850 11.839 50 9900 11.836 50 9950 11.820 50 10000 11.830 50 10050 11.889 50 10100 11.845 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/f56blue.dat000066400000000000000000000024251331023215600230770ustar00rootroot00000000000000# Feige 56 3300 11.237 50 3350 11.229 50 3400 11.237 50 3450 11.253 50 3500 11.259 50 3550 11.251 50 3600 11.242 50 3650 11.237 50 3700 11.209 50 3750 11.036 50 3800 10.858 50 3850 10.769 50 3900 10.757 50 3950 10.779 50 4000 10.705 50 4050 10.684 50 4100 10.842 50 4150 10.718 50 4200 10.721 50 4250 10.746 50 4300 10.786 50 4350 10.907 50 4400 10.796 50 4450 10.810 50 4500 10.820 50 4550 10.833 50 4600 10.842 50 4650 10.854 50 4700 10.866 50 4750 10.885 50 4800 10.901 50 4850 11.040 50 4900 10.933 50 4950 10.923 50 5000 10.949 50 5050 10.969 50 5100 10.977 50 5150 10.989 50 5200 11.011 50 5250 11.015 50 5300 11.021 50 5350 11.027 50 5400 11.036 50 5450 11.046 50 5500 11.056 50 5550 11.062 50 5600 11.071 50 5650 11.094 50 5700 11.109 50 5750 11.117 50 5800 11.128 50 5850 11.130 50 5900 11.162 50 5950 11.164 50 6000 11.169 50 6050 11.181 50 6100 11.190 50 6150 11.201 50 6200 11.211 50 6250 11.227 50 6300 11.254 50 6350 11.254 50 6400 11.257 50 6450 11.266 50 6500 11.274 50 6550 11.376 50 6600 11.306 50 6650 11.295 50 6700 11.302 50 6750 11.312 50 6800 11.331 50 6850 11.389 50 6900 11.458 50 6950 11.385 50 7000 11.382 50 7050 11.382 50 7100 11.396 50 7150 11.424 50 7200 11.497 50 7250 11.500 50 7300 11.491 50 7350 11.458 50 7400 11.461 50 7450 11.464 50 7500 11.475 50 7550 11.482 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/f56red.dat000066400000000000000000000021441331023215600227200ustar00rootroot00000000000000# Feige 56 6450 11.263 50 6500 11.274 50 6550 11.368 50 6600 11.298 50 6650 11.293 50 6700 11.298 50 6750 11.308 50 6800 11.317 50 6850 11.382 50 6900 11.447 50 6950 11.373 50 7000 11.373 50 7050 11.384 50 7100 11.392 50 7150 11.418 50 7200 11.480 50 7250 11.484 50 7300 11.477 50 7350 11.452 50 7400 11.452 50 7450 11.457 50 7500 11.468 50 7550 11.476 50 7600 11.962 50 7650 11.842 50 7700 11.521 50 7750 11.509 50 7800 11.517 50 7850 11.523 50 7900 11.539 50 7950 11.543 50 8000 11.553 50 8050 11.561 50 8100 11.575 50 8150 11.651 50 8200 11.651 50 8250 11.656 50 8300 11.659 50 8350 11.637 50 8400 11.633 50 8450 11.645 50 8500 11.648 50 8550 11.654 50 8600 11.669 50 8650 11.673 50 8700 11.623 50 8750 11.715 50 8800 11.611 50 8850 11.732 50 8900 11.659 50 8950 11.692 50 9000 11.878 50 9050 11.754 50 9100 11.764 50 9150 11.786 50 9200 11.807 50 9250 11.862 50 9300 11.960 50 9350 12.255 50 9400 12.028 50 9450 12.115 50 9500 12.091 50 9550 12.184 50 9600 12.003 50 9650 11.929 50 9700 11.844 50 9750 11.872 50 9800 11.852 50 9850 11.839 50 9900 11.836 50 9950 11.820 50 10000 11.830 50 10050 11.889 50 10100 11.845 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/h600.dat000066400000000000000000000040221331023215600222770ustar00rootroot00000000000000# Hiltner 600 3300 10.901 50 3350 10.871 50 3400 10.872 50 3450 10.876 50 3500 10.868 50 3550 10.844 50 3600 10.828 50 3650 10.8 50 3700 10.797 50 3750 10.713 50 3800 10.619 50 3850 10.535 50 3900 10.522 50 3950 10.52 50 4000 10.486 50 4050 10.454 50 4100 10.552 50 4150 10.462 50 4200 10.437 50 4250 10.449 50 4300 10.477 50 4350 10.566 50 4400 10.486 50 4450 10.489 50 4500 10.455 50 4550 10.45 50 4600 10.455 50 4650 10.457 50 4700 10.459 50 4750 10.458 50 4800 10.459 50 4850 10.549 50 4900 10.476 50 4950 10.447 50 5000 10.456 50 5050 10.451 50 5100 10.445 50 5150 10.443 50 5200 10.432 50 5250 10.429 50 5300 10.424 50 5350 10.422 50 5400 10.419 50 5450 10.423 50 5500 10.419 50 5550 10.417 50 5600 10.417 50 5650 10.429 50 5700 10.436 50 5750 10.44 50 5800 10.441 50 5850 10.435 50 5900 10.474 50 5950 10.446 50 6000 10.449 50 6050 10.45 50 6100 10.451 50 6150 10.459 50 6200 10.469 50 6250 10.474 50 6300 10.502 50 6350 10.482 50 6400 10.483 50 6450 10.483 50 6500 10.493 50 6550 10.571 50 6600 10.507 50 6650 10.491 50 6700 10.493 50 6750 10.486 50 6800 10.494 50 6850 10.550 50 6900 10.604 50 6950 10.530 50 7000 10.523 50 7050 10.531 50 7100 10.524 50 7150 10.546 50 7200 10.607 50 7250 10.607 50 7300 10.596 50 7350 10.565 50 7400 10.559 50 7450 10.558 50 7500 10.561 50 7550 10.561 50 7600 11.031 50 7650 10.911 50 7700 10.598 50 7750 10.576 50 7800 10.574 50 7850 10.570 50 7900 10.582 50 7950 10.583 50 8000 10.586 50 8050 10.591 50 8100 10.600 50 8150 10.671 50 8200 10.668 50 8250 10.667 50 8300 10.660 50 8350 10.643 50 8400 10.631 50 8450 10.635 50 8500 10.638 50 8550 10.642 50 8600 10.654 50 8650 10.657 50 8700 10.626 50 8750 10.688 50 8800 10.623 50 8850 10.702 50 8900 10.650 50 8950 10.681 50 9000 10.849 50 9050 10.746 50 9100 10.747 50 9150 10.766 50 9200 10.772 50 9250 10.813 50 9300 10.928 50 9350 11.215 50 9400 10.981 50 9450 11.068 50 9500 11.054 50 9550 11.122 50 9600 10.960 50 9650 10.876 50 9700 10.785 50 9750 10.811 50 9800 10.772 50 9850 10.741 50 9900 10.735 50 9950 10.745 50 10000 10.766 50 10050 10.830 50 10100 10.745 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/h600blue.dat000066400000000000000000000024251331023215600231540ustar00rootroot00000000000000# HILT 600 3300 10.905 50 3350 10.875 50 3400 10.876 50 3450 10.880 50 3500 10.872 50 3550 10.848 50 3600 10.832 50 3650 10.804 50 3700 10.801 50 3750 10.717 50 3800 10.623 50 3850 10.539 50 3900 10.526 50 3950 10.524 50 4000 10.490 50 4050 10.458 50 4100 10.556 50 4150 10.466 50 4200 10.441 50 4250 10.453 50 4300 10.481 50 4350 10.570 50 4400 10.490 50 4450 10.493 50 4500 10.459 50 4550 10.454 50 4600 10.459 50 4650 10.461 50 4700 10.463 50 4750 10.462 50 4800 10.463 50 4850 10.553 50 4900 10.480 50 4950 10.451 50 5000 10.460 50 5050 10.455 50 5100 10.449 50 5150 10.447 50 5200 10.436 50 5250 10.433 50 5300 10.428 50 5350 10.426 50 5400 10.423 50 5450 10.427 50 5500 10.423 50 5550 10.421 50 5600 10.421 50 5650 10.433 50 5700 10.440 50 5750 10.444 50 5800 10.445 50 5850 10.439 50 5900 10.478 50 5950 10.450 50 6000 10.453 50 6050 10.454 50 6100 10.455 50 6150 10.463 50 6200 10.473 50 6250 10.478 50 6300 10.506 50 6350 10.486 50 6400 10.487 50 6450 10.487 50 6500 10.493 50 6550 10.573 50 6600 10.511 50 6650 10.491 50 6700 10.494 50 6750 10.489 50 6800 10.501 50 6850 10.553 50 6900 10.608 50 6950 10.535 50 7000 10.526 50 7050 10.532 50 7100 10.526 50 7150 10.549 50 7200 10.614 50 7250 10.613 50 7300 10.604 50 7350 10.571 50 7400 10.566 50 7450 10.566 50 7500 10.572 50 7550 10.569 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/h600red.dat000066400000000000000000000021471331023215600230000ustar00rootroot00000000000000# Hiltner 600 6450 10.489 50 6500 10.496 50 6550 10.573 50 6600 10.506 50 6650 10.494 50 6700 10.495 50 6750 10.487 50 6800 10.490 50 6850 10.550 50 6900 10.604 50 6950 10.528 50 7000 10.523 50 7050 10.533 50 7100 10.526 50 7150 10.547 50 7200 10.603 50 7250 10.604 50 7300 10.592 50 7350 10.562 50 7400 10.555 50 7450 10.553 50 7500 10.554 50 7550 10.561 50 7600 11.031 50 7650 10.911 50 7700 10.598 50 7750 10.576 50 7800 10.574 50 7850 10.570 50 7900 10.582 50 7950 10.583 50 8000 10.586 50 8050 10.591 50 8100 10.600 50 8150 10.671 50 8200 10.668 50 8250 10.667 50 8300 10.660 50 8350 10.643 50 8400 10.631 50 8450 10.635 50 8500 10.638 50 8550 10.642 50 8600 10.654 50 8650 10.657 50 8700 10.626 50 8750 10.688 50 8800 10.623 50 8850 10.702 50 8900 10.650 50 8950 10.681 50 9000 10.849 50 9050 10.746 50 9100 10.747 50 9150 10.766 50 9200 10.772 50 9250 10.813 50 9300 10.928 50 9350 11.215 50 9400 10.981 50 9450 11.068 50 9500 11.054 50 9550 11.122 50 9600 10.960 50 9650 10.876 50 9700 10.785 50 9750 10.811 50 9800 10.772 50 9850 10.741 50 9900 10.735 50 9950 10.745 50 10000 10.766 50 10050 10.830 50 10100 10.745 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/l1020.dat000066400000000000000000000040221331023215600223600ustar00rootroot00000000000000# LTT 1020 3300 12.888 50 3350 12.846 50 3400 12.789 50 3450 12.787 50 3500 12.719 50 3550 12.659 50 3600 12.641 50 3650 12.539 50 3700 12.51 50 3750 12.512 50 3800 12.378 50 3850 12.358 50 3900 12.343 50 3950 12.438 50 4000 12.155 50 4050 12.086 50 4100 12.073 50 4150 12.019 50 4200 12.016 50 4250 12.023 50 4300 12.067 50 4350 11.988 50 4400 11.925 50 4450 11.872 50 4500 11.833 50 4550 11.815 50 4600 11.783 50 4650 11.762 50 4700 11.746 50 4750 11.726 50 4800 11.705 50 4850 11.731 50 4900 11.678 50 4950 11.653 50 5000 11.644 50 5050 11.629 50 5100 11.608 50 5150 11.607 50 5200 11.601 50 5250 11.56 50 5300 11.54 50 5350 11.526 50 5400 11.517 50 5450 11.502 50 5500 11.483 50 5550 11.469 50 5600 11.465 50 5650 11.449 50 5700 11.446 50 5750 11.431 50 5800 11.414 50 5850 11.399 50 5900 11.402 50 5950 11.388 50 6000 11.381 50 6050 11.373 50 6100 11.364 50 6150 11.356 50 6200 11.346 50 6250 11.349 50 6300 11.353 50 6350 11.327 50 6400 11.323 50 6450 11.318 50 6500 11.312 50 6550 11.359 50 6600 11.301 50 6650 11.282 50 6700 11.273 50 6750 11.267 50 6800 11.263 50 6850 11.308 50 6900 11.359 50 6950 11.268 50 7000 11.258 50 7050 11.252 50 7100 11.247 50 7150 11.259 50 7200 11.304 50 7250 11.288 50 7300 11.272 50 7350 11.239 50 7400 11.228 50 7450 11.220 50 7500 11.220 50 7550 11.215 50 7600 11.681 50 7650 11.559 50 7700 11.222 50 7750 11.198 50 7800 11.192 50 7850 11.192 50 7900 11.191 50 7950 11.188 50 8000 11.187 50 8050 11.186 50 8100 11.191 50 8150 11.244 50 8200 11.238 50 8250 11.229 50 8300 11.218 50 8350 11.193 50 8400 11.183 50 8450 11.176 50 8500 11.190 50 8550 11.207 50 8600 11.179 50 8650 11.199 50 8700 11.184 50 8750 11.184 50 8800 11.193 50 8850 11.191 50 8900 11.192 50 8950 11.231 50 9000 11.301 50 9050 11.247 50 9100 11.284 50 9150 11.294 50 9200 11.251 50 9250 11.255 50 9300 11.414 50 9350 11.679 50 9400 11.470 50 9450 11.541 50 9500 11.494 50 9550 11.472 50 9600 11.415 50 9650 11.353 50 9700 11.270 50 9750 11.301 50 9800 11.270 50 9850 11.238 50 9900 11.219 50 9950 11.201 50 10000 11.224 50 10050 11.240 50 10100 11.208 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/l1020blue.dat000066400000000000000000000024251331023215600232350ustar00rootroot00000000000000# LTT 1020 3300 12.898 50 3350 12.856 50 3400 12.799 50 3450 12.797 50 3500 12.729 50 3550 12.669 50 3600 12.651 50 3650 12.549 50 3700 12.520 50 3750 12.522 50 3800 12.388 50 3850 12.368 50 3900 12.353 50 3950 12.448 50 4000 12.165 50 4050 12.096 50 4100 12.083 50 4150 12.029 50 4200 12.026 50 4250 12.033 50 4300 12.077 50 4350 11.998 50 4400 11.935 50 4450 11.882 50 4500 11.843 50 4550 11.825 50 4600 11.793 50 4650 11.772 50 4700 11.756 50 4750 11.736 50 4800 11.715 50 4850 11.741 50 4900 11.688 50 4950 11.663 50 5000 11.654 50 5050 11.639 50 5100 11.618 50 5150 11.617 50 5200 11.611 50 5250 11.570 50 5300 11.550 50 5350 11.536 50 5400 11.527 50 5450 11.512 50 5500 11.493 50 5550 11.479 50 5600 11.475 50 5650 11.459 50 5700 11.456 50 5750 11.441 50 5800 11.424 50 5850 11.409 50 5900 11.412 50 5950 11.398 50 6000 11.391 50 6050 11.383 50 6100 11.374 50 6150 11.366 50 6200 11.356 50 6250 11.359 50 6300 11.363 50 6350 11.337 50 6400 11.333 50 6450 11.328 50 6500 11.320 50 6550 11.367 50 6600 11.309 50 6650 11.290 50 6700 11.282 50 6750 11.277 50 6800 11.274 50 6850 11.318 50 6900 11.370 50 6950 11.277 50 7000 11.268 50 7050 11.260 50 7100 11.256 50 7150 11.268 50 7200 11.312 50 7250 11.297 50 7300 11.281 50 7350 11.248 50 7400 11.237 50 7450 11.230 50 7500 11.233 50 7550 11.227 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/l1020red.dat000066400000000000000000000023341331023215600230570ustar00rootroot00000000000000# LTT 1020 6050 11.371 50 6100 11.365 50 6150 11.366 50 6200 11.357 50 6250 11.358 50 6300 11.363 50 6350 11.336 50 6400 11.324 50 6450 11.321 50 6500 11.314 50 6550 11.361 50 6600 11.302 50 6650 11.283 50 6700 11.273 50 6750 11.266 50 6800 11.261 50 6850 11.308 50 6900 11.357 50 6950 11.269 50 7000 11.257 50 7050 11.253 50 7100 11.247 50 7150 11.259 50 7200 11.305 50 7250 11.289 50 7300 11.272 50 7350 11.240 50 7400 11.228 50 7450 11.220 50 7500 11.217 50 7550 11.215 50 7600 11.681 50 7650 11.559 50 7700 11.222 50 7750 11.198 50 7800 11.192 50 7850 11.192 50 7900 11.191 50 7950 11.188 50 8000 11.187 50 8050 11.186 50 8100 11.191 50 8150 11.244 50 8200 11.238 50 8250 11.229 50 8300 11.218 50 8350 11.193 50 8400 11.183 50 8450 11.176 50 8500 11.190 50 8550 11.207 50 8600 11.179 50 8650 11.199 50 8700 11.184 50 8750 11.184 50 8800 11.193 50 8850 11.191 50 8900 11.192 50 8950 11.231 50 9000 11.301 50 9050 11.247 50 9100 11.284 50 9150 11.294 50 9200 11.251 50 9250 11.255 50 9300 11.414 50 9350 11.679 50 9400 11.470 50 9450 11.541 50 9500 11.494 50 9550 11.472 50 9600 11.415 50 9650 11.353 50 9700 11.270 50 9750 11.301 50 9800 11.270 50 9850 11.238 50 9900 11.219 50 9950 11.201 50 10000 11.224 50 10050 11.240 50 10100 11.208 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/l1788.dat000066400000000000000000000040131331023215600224050ustar00rootroot00000000000000# LTT 1788 3300 14.364 50 3350 14.302 50 3400 14.269 50 3450 14.258 50 3500 14.226 50 3550 14.156 50 3600 14.105 50 3650 14.042 50 3700 14.022 50 3750 13.973 50 3800 13.846 50 3850 13.793 50 3900 13.772 50 3950 13.791 50 4000 13.639 50 4050 13.591 50 4100 13.617 50 4150 13.544 50 4200 13.536 50 4250 13.522 50 4300 13.523 50 4350 13.541 50 4400 13.461 50 4450 13.434 50 4500 13.402 50 4550 13.389 50 4600 13.369 50 4650 13.352 50 4700 13.335 50 4750 13.319 50 4800 13.307 50 4850 13.348 50 4900 13.28 50 4950 13.255 50 5000 13.248 50 5050 13.237 50 5100 13.223 50 5150 13.21 50 5200 13.2 50 5250 13.182 50 5300 13.163 50 5350 13.153 50 5400 13.143 50 5450 13.129 50 5500 13.116 50 5550 13.112 50 5600 13.1 50 5650 13.095 50 5700 13.095 50 5750 13.086 50 5800 13.069 50 5850 13.054 50 5900 13.056 50 5950 13.044 50 6000 13.037 50 6050 13.034 50 6100 13.028 50 6150 13.028 50 6200 13.018 50 6250 13.019 50 6300 13.024 50 6350 13.006 50 6400 13 50 6450 12.994 50 6500 12.992 50 6550 13.056 50 6600 12.985 50 6650 12.962 50 6700 12.957 50 6750 12.951 50 6800 12.952 50 6850 12.997 50 6900 13.046 50 6950 12.959 50 7000 12.949 50 7050 12.944 50 7100 12.939 50 7150 12.953 50 7200 12.998 50 7250 12.993 50 7300 12.979 50 7350 12.945 50 7400 12.931 50 7450 12.930 50 7500 12.924 50 7550 12.918 50 7600 13.375 50 7650 13.255 50 7700 12.926 50 7750 12.903 50 7800 12.900 50 7850 12.898 50 7900 12.898 50 7950 12.897 50 8000 12.897 50 8050 12.897 50 8100 12.896 50 8150 12.954 50 8200 12.946 50 8250 12.942 50 8300 12.932 50 8350 12.908 50 8400 12.899 50 8450 12.893 50 8500 12.903 50 8550 12.910 50 8600 12.902 50 8650 12.906 50 8700 12.904 50 8750 12.911 50 8800 12.913 50 8850 12.922 50 8900 12.920 50 8950 12.960 50 9000 13.026 50 9050 12.972 50 9100 13.010 50 9150 13.014 50 9200 12.983 50 9250 12.989 50 9300 13.146 50 9350 13.387 50 9400 13.180 50 9450 13.258 50 9500 13.221 50 9550 13.196 50 9600 13.135 50 9650 13.073 50 9700 12.987 50 9750 13.022 50 9800 12.998 50 9850 12.958 50 9900 12.955 50 9950 12.944 50 10000 12.983 50 10050 12.929 50 10100 12.946 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/l1788blue.dat000066400000000000000000000024251331023215600232620ustar00rootroot00000000000000# LTT 1788 3300 14.376 50 3350 14.314 50 3400 14.281 50 3450 14.270 50 3500 14.238 50 3550 14.168 50 3600 14.117 50 3650 14.054 50 3700 14.034 50 3750 13.985 50 3800 13.858 50 3850 13.805 50 3900 13.784 50 3950 13.803 50 4000 13.651 50 4050 13.603 50 4100 13.629 50 4150 13.556 50 4200 13.548 50 4250 13.534 50 4300 13.535 50 4350 13.553 50 4400 13.473 50 4450 13.446 50 4500 13.414 50 4550 13.401 50 4600 13.381 50 4650 13.364 50 4700 13.347 50 4750 13.331 50 4800 13.319 50 4850 13.360 50 4900 13.292 50 4950 13.267 50 5000 13.260 50 5050 13.249 50 5100 13.235 50 5150 13.222 50 5200 13.212 50 5250 13.194 50 5300 13.175 50 5350 13.165 50 5400 13.155 50 5450 13.141 50 5500 13.128 50 5550 13.124 50 5600 13.112 50 5650 13.107 50 5700 13.107 50 5750 13.098 50 5800 13.081 50 5850 13.066 50 5900 13.068 50 5950 13.056 50 6000 13.049 50 6050 13.046 50 6100 13.040 50 6150 13.040 50 6200 13.030 50 6250 13.031 50 6300 13.036 50 6350 13.018 50 6400 13.012 50 6450 13.006 50 6500 13.003 50 6550 13.071 50 6600 12.997 50 6650 12.969 50 6700 12.965 50 6750 12.962 50 6800 12.966 50 6850 13.010 50 6900 13.056 50 6950 12.971 50 7000 12.959 50 7050 12.954 50 7100 12.948 50 7150 12.964 50 7200 13.022 50 7250 13.011 50 7300 12.999 50 7350 12.962 50 7400 12.946 50 7450 12.951 50 7500 12.943 50 7550 12.936 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/l1788red.dat000066400000000000000000000023151331023215600231030ustar00rootroot00000000000000# LTT 1788 6100 13.028 50 6150 13.024 50 6200 13.023 50 6250 13.025 50 6300 13.032 50 6350 13.007 50 6400 12.992 50 6450 12.994 50 6500 12.993 50 6550 13.053 50 6600 12.984 50 6650 12.966 50 6700 12.960 50 6750 12.952 50 6800 12.950 50 6850 12.996 50 6900 13.047 50 6950 12.959 50 7000 12.950 50 7050 12.945 50 7100 12.942 50 7150 12.954 50 7200 12.996 50 7250 12.986 50 7300 12.971 50 7350 12.939 50 7400 12.927 50 7450 12.921 50 7500 12.917 50 7550 12.918 50 7600 13.375 50 7650 13.255 50 7700 12.926 50 7750 12.903 50 7800 12.900 50 7850 12.898 50 7900 12.898 50 7950 12.897 50 8000 12.897 50 8050 12.897 50 8100 12.896 50 8150 12.954 50 8200 12.946 50 8250 12.942 50 8300 12.932 50 8350 12.908 50 8400 12.899 50 8450 12.893 50 8500 12.903 50 8550 12.910 50 8600 12.902 50 8650 12.906 50 8700 12.904 50 8750 12.911 50 8800 12.913 50 8850 12.922 50 8900 12.920 50 8950 12.960 50 9000 13.026 50 9050 12.972 50 9100 13.010 50 9150 13.014 50 9200 12.983 50 9250 12.989 50 9300 13.146 50 9350 13.387 50 9400 13.180 50 9450 13.258 50 9500 13.221 50 9550 13.196 50 9600 13.135 50 9650 13.073 50 9700 12.987 50 9750 13.022 50 9800 12.998 50 9850 12.958 50 9900 12.955 50 9950 12.944 50 10000 12.983 50 10050 12.929 50 10100 12.946 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/l2415.dat000066400000000000000000000037761331023215600224100ustar00rootroot00000000000000# LTT 2415 3300 13.448 50 3350 13.407 50 3400 13.376 50 3450 13.349 50 3500 13.298 50 3550 13.242 50 3600 13.211 50 3650 13.132 50 3700 13.084 50 3750 12.995 50 3800 12.851 50 3850 12.748 50 3900 12.719 50 3950 12.723 50 4000 12.585 50 4050 12.526 50 4100 12.61 50 4150 12.5 50 4200 12.473 50 4250 12.469 50 4300 12.481 50 4350 12.545 50 4400 12.43 50 4450 12.412 50 4500 12.392 50 4550 12.381 50 4600 12.361 50 4650 12.355 50 4700 12.344 50 4750 12.333 50 4800 12.321 50 4850 12.391 50 4900 12.316 50 4950 12.277 50 5000 12.269 50 5050 12.265 50 5100 12.256 50 5150 12.25 50 5200 12.242 50 5250 12.232 50 5300 12.216 50 5350 12.207 50 5400 12.2 50 5450 12.191 50 5500 12.179 50 5550 12.176 50 5600 12.172 50 5650 12.169 50 5700 12.167 50 5750 12.168 50 5800 12.153 50 5850 12.139 50 5900 12.144 50 5950 12.136 50 6000 12.125 50 6050 12.122 50 6100 12.122 50 6150 12.117 50 6200 12.114 50 6250 12.114 50 6300 12.124 50 6350 12.105 50 6400 12.101 50 6450 12.094 50 6500 12.095 50 6550 12.166 50 6600 12.107 50 6650 12.072 50 6700 12.065 50 6750 12.066 50 6800 12.062 50 6850 12.112 50 6900 12.164 50 6950 12.079 50 7000 12.069 50 7050 12.067 50 7100 12.061 50 7150 12.078 50 7200 12.131 50 7250 12.122 50 7300 12.104 50 7350 12.071 50 7400 12.061 50 7450 12.055 50 7500 12.053 50 7550 12.043 50 7600 12.496 50 7650 12.378 50 7700 12.056 50 7750 12.036 50 7800 12.035 50 7850 12.028 50 7900 12.037 50 7950 12.037 50 8000 12.036 50 8050 12.037 50 8100 12.035 50 8150 12.102 50 8200 12.095 50 8250 12.089 50 8300 12.083 50 8350 12.057 50 8400 12.045 50 8450 12.043 50 8500 12.054 50 8550 12.063 50 8600 12.054 50 8650 12.057 50 8700 12.057 50 8750 12.066 50 8800 12.055 50 8850 12.072 50 8900 12.070 50 8950 12.105 50 9000 12.190 50 9050 12.136 50 9100 12.160 50 9150 12.170 50 9200 12.132 50 9250 12.158 50 9300 12.305 50 9350 12.575 50 9400 12.359 50 9450 12.436 50 9500 12.391 50 9550 12.388 50 9600 12.311 50 9650 12.241 50 9700 12.158 50 9750 12.178 50 9800 12.152 50 9850 12.129 50 9900 12.111 50 9950 12.107 50 10000 12.112 50 10050 12.122 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/l2415blue.dat000066400000000000000000000024251331023215600232460ustar00rootroot00000000000000# LTT 2415 3300 13.460 50 3350 13.419 50 3400 13.388 50 3450 13.361 50 3500 13.310 50 3550 13.254 50 3600 13.223 50 3650 13.144 50 3700 13.096 50 3750 13.007 50 3800 12.863 50 3850 12.760 50 3900 12.731 50 3950 12.735 50 4000 12.597 50 4050 12.538 50 4100 12.622 50 4150 12.512 50 4200 12.485 50 4250 12.481 50 4300 12.493 50 4350 12.557 50 4400 12.442 50 4450 12.424 50 4500 12.404 50 4550 12.393 50 4600 12.373 50 4650 12.367 50 4700 12.356 50 4750 12.345 50 4800 12.333 50 4850 12.403 50 4900 12.328 50 4950 12.289 50 5000 12.281 50 5050 12.277 50 5100 12.268 50 5150 12.262 50 5200 12.254 50 5250 12.244 50 5300 12.228 50 5350 12.219 50 5400 12.212 50 5450 12.203 50 5500 12.191 50 5550 12.188 50 5600 12.184 50 5650 12.181 50 5700 12.179 50 5750 12.180 50 5800 12.165 50 5850 12.151 50 5900 12.156 50 5950 12.148 50 6000 12.137 50 6050 12.134 50 6100 12.134 50 6150 12.129 50 6200 12.126 50 6250 12.126 50 6300 12.136 50 6350 12.117 50 6400 12.113 50 6450 12.106 50 6500 12.103 50 6550 12.177 50 6600 12.118 50 6650 12.079 50 6700 12.072 50 6750 12.078 50 6800 12.075 50 6850 12.126 50 6900 12.178 50 6950 12.091 50 7000 12.080 50 7050 12.079 50 7100 12.071 50 7150 12.092 50 7200 12.149 50 7250 12.143 50 7300 12.125 50 7350 12.090 50 7400 12.078 50 7450 12.074 50 7500 12.073 50 7550 12.069 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/l2415red.dat000066400000000000000000000022751331023215600230740ustar00rootroot00000000000000# LTT 2415 6100 12.108 50 6150 12.107 50 6200 12.109 50 6250 12.115 50 6300 12.124 50 6350 12.099 50 6400 12.087 50 6450 12.096 50 6500 12.098 50 6550 12.166 50 6600 12.108 50 6650 12.076 50 6700 12.069 50 6750 12.065 50 6800 12.060 50 6850 12.109 50 6900 12.161 50 6950 12.078 50 7000 12.070 50 7050 12.066 50 7100 12.062 50 7150 12.076 50 7200 12.124 50 7250 12.112 50 7300 12.094 50 7350 12.064 50 7400 12.056 50 7450 12.047 50 7500 12.044 50 7550 12.043 50 7600 12.496 50 7650 12.378 50 7700 12.056 50 7750 12.036 50 7800 12.035 50 7850 12.028 50 7900 12.037 50 7950 12.037 50 8000 12.036 50 8050 12.037 50 8100 12.035 50 8150 12.102 50 8200 12.095 50 8250 12.089 50 8300 12.083 50 8350 12.057 50 8400 12.045 50 8450 12.043 50 8500 12.054 50 8550 12.063 50 8600 12.054 50 8650 12.057 50 8700 12.057 50 8750 12.066 50 8800 12.055 50 8850 12.072 50 8900 12.070 50 8950 12.105 50 9000 12.190 50 9050 12.136 50 9100 12.160 50 9150 12.170 50 9200 12.132 50 9250 12.158 50 9300 12.305 50 9350 12.575 50 9400 12.359 50 9450 12.436 50 9500 12.391 50 9550 12.388 50 9600 12.311 50 9650 12.241 50 9700 12.158 50 9750 12.178 50 9800 12.152 50 9850 12.129 50 9900 12.111 50 9950 12.107 50 10000 12.112 50 10050 12.122 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/l3218.dat000066400000000000000000000037421331023215600224030ustar00rootroot00000000000000# LTT 3218 3300 12.358 50 3350 12.325 50 3400 12.325 50 3450 12.322 50 3500 12.306 50 3550 12.289 50 3600 12.269 50 3650 12.249 50 3700 12.236 50 3750 12.228 50 3800 12.197 50 3850 12.159 50 3900 12.145 50 3950 12.16 50 4000 12.032 50 4050 11.952 50 4100 12.232 50 4150 11.923 50 4200 11.859 50 4250 11.866 50 4300 11.983 50 4350 12.217 50 4400 11.898 50 4450 11.854 50 4500 11.841 50 4550 11.838 50 4600 11.837 50 4650 11.838 50 4700 11.843 50 4750 11.856 50 4800 11.903 50 4850 12.201 50 4900 11.97 50 4950 11.856 50 5000 11.841 50 5050 11.841 50 5100 11.841 50 5150 11.838 50 5200 11.838 50 5250 11.838 50 5300 11.839 50 5350 11.839 50 5400 11.839 50 5450 11.842 50 5500 11.843 50 5550 11.844 50 5600 11.846 50 5650 11.854 50 5700 11.868 50 5750 11.874 50 5800 11.869 50 5850 11.862 50 5900 11.873 50 5950 11.878 50 6000 11.878 50 6050 11.884 50 6100 11.886 50 6150 11.89 50 6200 11.898 50 6250 11.911 50 6300 11.926 50 6350 11.918 50 6400 11.924 50 6450 11.938 50 6500 11.993 50 6550 12.249 50 6600 12.077 50 6650 11.965 50 6700 11.943 50 6750 11.939 50 6800 11.941 50 6850 11.996 50 6900 12.051 50 6950 11.977 50 7000 11.975 50 7050 11.975 50 7100 11.975 50 7150 12.000 50 7200 12.068 50 7250 12.063 50 7300 12.046 50 7350 12.016 50 7400 12.011 50 7450 12.010 50 7500 12.013 50 7550 12.011 50 7600 12.473 50 7650 12.356 50 7700 12.038 50 7750 12.024 50 7800 12.027 50 7850 12.035 50 7900 12.046 50 7950 12.048 50 8000 12.059 50 8050 12.062 50 8100 12.074 50 8150 12.160 50 8200 12.149 50 8250 12.146 50 8300 12.145 50 8350 12.115 50 8400 12.101 50 8450 12.107 50 8500 12.112 50 8550 12.124 50 8600 12.131 50 8650 12.134 50 8700 12.147 50 8750 12.153 50 8800 12.154 50 8850 12.173 50 8900 12.180 50 8950 12.249 50 9000 12.349 50 9050 12.269 50 9100 12.326 50 9150 12.349 50 9200 12.308 50 9250 12.313 50 9300 12.533 50 9350 12.871 50 9400 12.592 50 9450 12.675 50 9500 12.662 50 9550 12.657 50 9600 12.552 50 9650 12.436 50 9700 12.340 50 9750 12.368 50 9800 12.331 50 9850 12.273 50 9900 12.290 50 9950 12.295 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/l3218blue.dat000066400000000000000000000024251331023215600232500ustar00rootroot00000000000000# LTT 3218 3300 12.359 50 3350 12.326 50 3400 12.326 50 3450 12.323 50 3500 12.307 50 3550 12.290 50 3600 12.270 50 3650 12.250 50 3700 12.237 50 3750 12.229 50 3800 12.198 50 3850 12.160 50 3900 12.146 50 3950 12.161 50 4000 12.033 50 4050 11.953 50 4100 12.233 50 4150 11.924 50 4200 11.860 50 4250 11.867 50 4300 11.984 50 4350 12.218 50 4400 11.899 50 4450 11.855 50 4500 11.842 50 4550 11.839 50 4600 11.838 50 4650 11.839 50 4700 11.844 50 4750 11.857 50 4800 11.904 50 4850 12.202 50 4900 11.971 50 4950 11.857 50 5000 11.842 50 5050 11.842 50 5100 11.842 50 5150 11.839 50 5200 11.839 50 5250 11.839 50 5300 11.840 50 5350 11.840 50 5400 11.840 50 5450 11.843 50 5500 11.844 50 5550 11.845 50 5600 11.847 50 5650 11.855 50 5700 11.869 50 5750 11.875 50 5800 11.870 50 5850 11.863 50 5900 11.874 50 5950 11.879 50 6000 11.879 50 6050 11.885 50 6100 11.887 50 6150 11.891 50 6200 11.899 50 6250 11.912 50 6300 11.927 50 6350 11.919 50 6400 11.925 50 6450 11.939 50 6500 11.991 50 6550 12.251 50 6600 12.079 50 6650 11.965 50 6700 11.942 50 6750 11.938 50 6800 11.942 50 6850 11.997 50 6900 12.053 50 6950 11.976 50 7000 11.972 50 7050 11.974 50 7100 11.972 50 7150 11.999 50 7200 12.063 50 7250 12.062 50 7300 12.047 50 7350 12.018 50 7400 12.017 50 7450 12.018 50 7500 12.022 50 7550 12.028 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/l3218red.dat000066400000000000000000000020641331023215600230720ustar00rootroot00000000000000# LTT 3218 6450 11.942 50 6500 11.996 50 6550 12.247 50 6600 12.076 50 6650 11.966 50 6700 11.944 50 6750 11.941 50 6800 11.940 50 6850 11.995 50 6900 12.050 50 6950 11.978 50 7000 11.978 50 7050 11.977 50 7100 11.979 50 7150 12.002 50 7200 12.073 50 7250 12.064 50 7300 12.046 50 7350 12.014 50 7400 12.005 50 7450 12.003 50 7500 12.004 50 7550 12.011 50 7600 12.473 50 7650 12.356 50 7700 12.038 50 7750 12.024 50 7800 12.027 50 7850 12.035 50 7900 12.046 50 7950 12.048 50 8000 12.059 50 8050 12.062 50 8100 12.074 50 8150 12.160 50 8200 12.149 50 8250 12.146 50 8300 12.145 50 8350 12.115 50 8400 12.101 50 8450 12.107 50 8500 12.112 50 8550 12.124 50 8600 12.131 50 8650 12.134 50 8700 12.147 50 8750 12.153 50 8800 12.154 50 8850 12.173 50 8900 12.180 50 8950 12.249 50 9000 12.349 50 9050 12.269 50 9100 12.326 50 9150 12.349 50 9200 12.308 50 9250 12.313 50 9300 12.533 50 9350 12.871 50 9400 12.592 50 9450 12.675 50 9500 12.662 50 9550 12.657 50 9600 12.552 50 9650 12.436 50 9700 12.340 50 9750 12.368 50 9800 12.331 50 9850 12.273 50 9900 12.290 50 9950 12.295 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/l377.dat000066400000000000000000000041131331023215600223170ustar00rootroot00000000000000# LTT 377 3300 12.665 50 3350 12.66 50 3400 12.606 50 3450 12.597 50 3500 12.553 50 3550 12.479 50 3600 12.478 50 3650 12.365 50 3700 12.305 50 3750 12.255 50 3800 12.096 50 3850 12.051 50 3900 12.019 50 3950 12.156 50 4000 11.782 50 4050 11.695 50 4100 11.735 50 4150 11.624 50 4200 11.615 50 4250 11.614 50 4300 11.683 50 4350 11.642 50 4400 11.545 50 4450 11.5 50 4500 11.453 50 4550 11.447 50 4600 11.415 50 4650 11.404 50 4700 11.39 50 4750 11.375 50 4800 11.355 50 4850 11.443 50 4900 11.367 50 4950 11.329 50 5000 11.338 50 5050 11.312 50 5100 11.289 50 5150 11.305 50 5200 11.302 50 5250 11.274 50 5300 11.246 50 5350 11.238 50 5400 11.23 50 5450 11.209 50 5500 11.196 50 5550 11.184 50 5600 11.187 50 5650 11.171 50 5700 11.17 50 5750 11.155 50 5800 11.146 50 5850 11.134 50 5900 11.145 50 5950 11.127 50 6000 11.131 50 6050 11.12 50 6100 11.117 50 6150 11.119 50 6200 11.1 50 6250 11.108 50 6300 11.112 50 6350 11.093 50 6400 11.091 50 6450 11.089 50 6500 11.090 50 6550 11.163 50 6600 11.084 50 6650 11.063 50 6700 11.056 50 6750 11.054 50 6800 11.052 50 6850 11.098 50 6900 11.151 50 6950 11.063 50 7000 11.059 50 7050 11.053 50 7100 11.050 50 7150 11.065 50 7200 11.110 50 7250 11.094 50 7300 11.082 50 7350 11.053 50 7400 11.052 50 7450 11.040 50 7500 11.042 50 7550 11.042 50 7600 11.493 50 7650 11.380 50 7700 11.057 50 7750 11.036 50 7800 11.031 50 7850 11.026 50 7900 11.031 50 7950 11.036 50 8000 11.030 50 8050 11.032 50 8100 11.036 50 8150 11.087 50 8200 11.096 50 8250 11.079 50 8300 11.074 50 8350 11.056 50 8400 11.039 50 8450 11.042 50 8500 11.061 50 8550 11.093 50 8600 11.049 50 8650 11.085 50 8700 11.053 50 8750 11.065 50 8800 11.058 50 8850 11.072 50 8900 11.066 50 8950 11.101 50 9000 11.184 50 9050 11.126 50 9100 11.164 50 9150 11.155 50 9200 11.140 50 9250 11.157 50 9300 11.278 50 9350 11.525 50 9400 11.342 50 9450 11.409 50 9500 11.364 50 9550 11.366 50 9600 11.289 50 9650 11.238 50 9700 11.162 50 9750 11.183 50 9800 11.152 50 9850 11.124 50 9900 11.105 50 9950 11.105 50 10000 11.109 50 10050 11.160 50 10100 11.116 50 10150 11.096 50 10200 11.067 50 10250 11.058 50 10300 11.104 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/l377blue.dat000066400000000000000000000024241331023215600231720ustar00rootroot00000000000000# LTT 377 3300 12.663 50 3350 12.658 50 3400 12.604 50 3450 12.595 50 3500 12.551 50 3550 12.477 50 3600 12.476 50 3650 12.363 50 3700 12.303 50 3750 12.253 50 3800 12.094 50 3850 12.049 50 3900 12.017 50 3950 12.154 50 4000 11.780 50 4050 11.693 50 4100 11.733 50 4150 11.622 50 4200 11.613 50 4250 11.612 50 4300 11.681 50 4350 11.640 50 4400 11.543 50 4450 11.498 50 4500 11.451 50 4550 11.445 50 4600 11.413 50 4650 11.402 50 4700 11.388 50 4750 11.373 50 4800 11.353 50 4850 11.441 50 4900 11.365 50 4950 11.327 50 5000 11.336 50 5050 11.310 50 5100 11.287 50 5150 11.303 50 5200 11.300 50 5250 11.272 50 5300 11.244 50 5350 11.236 50 5400 11.228 50 5450 11.207 50 5500 11.194 50 5550 11.182 50 5600 11.185 50 5650 11.169 50 5700 11.168 50 5750 11.153 50 5800 11.144 50 5850 11.132 50 5900 11.143 50 5950 11.125 50 6000 11.129 50 6050 11.118 50 6100 11.115 50 6150 11.117 50 6200 11.098 50 6250 11.106 50 6300 11.110 50 6350 11.091 50 6400 11.089 50 6450 11.087 50 6500 11.086 50 6550 11.160 50 6600 11.083 50 6650 11.061 50 6700 11.055 50 6750 11.055 50 6800 11.054 50 6850 11.097 50 6900 11.153 50 6950 11.063 50 7000 11.056 50 7050 11.050 50 7100 11.046 50 7150 11.060 50 7200 11.103 50 7250 11.088 50 7300 11.077 50 7350 11.048 50 7400 11.046 50 7450 11.035 50 7500 11.038 50 7550 11.043 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/l377red.dat000066400000000000000000000024141331023215600230140ustar00rootroot00000000000000# LTT 377 6100 11.113 50 6150 11.128 50 6200 11.113 50 6250 11.124 50 6300 11.128 50 6350 11.106 50 6400 11.095 50 6450 11.094 50 6500 11.091 50 6550 11.163 50 6600 11.082 50 6650 11.062 50 6700 11.055 50 6750 11.051 50 6800 11.047 50 6850 11.096 50 6900 11.146 50 6950 11.061 50 7000 11.059 50 7050 11.053 50 7100 11.051 50 7150 11.067 50 7200 11.114 50 7250 11.098 50 7300 11.085 50 7350 11.055 50 7400 11.055 50 7450 11.042 50 7500 11.043 50 7550 11.042 50 7600 11.493 50 7650 11.380 50 7700 11.057 50 7750 11.036 50 7800 11.031 50 7850 11.026 50 7900 11.031 50 7950 11.036 50 8000 11.030 50 8050 11.032 50 8100 11.036 50 8150 11.087 50 8200 11.096 50 8250 11.079 50 8300 11.074 50 8350 11.056 50 8400 11.039 50 8450 11.042 50 8500 11.061 50 8550 11.093 50 8600 11.049 50 8650 11.085 50 8700 11.053 50 8750 11.065 50 8800 11.058 50 8850 11.072 50 8900 11.066 50 8950 11.101 50 9000 11.184 50 9050 11.126 50 9100 11.164 50 9150 11.155 50 9200 11.140 50 9250 11.157 50 9300 11.278 50 9350 11.525 50 9400 11.342 50 9450 11.409 50 9500 11.364 50 9550 11.366 50 9600 11.289 50 9650 11.238 50 9700 11.162 50 9750 11.183 50 9800 11.152 50 9850 11.124 50 9900 11.105 50 9950 11.105 50 10000 11.109 50 10050 11.160 50 10100 11.116 50 10150 11.096 50 10200 11.067 50 10250 11.058 50 10300 11.104 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/l3864.dat000066400000000000000000000040221331023215600224020ustar00rootroot00000000000000# LTT 3864 3300 13.519 50 3350 13.509 50 3400 13.454 50 3450 13.421 50 3500 13.383 50 3550 13.316 50 3600 13.288 50 3650 13.192 50 3700 13.145 50 3750 13.085 50 3800 12.939 50 3850 12.874 50 3900 12.862 50 3950 12.945 50 4000 12.686 50 4050 12.625 50 4100 12.673 50 4150 12.573 50 4200 12.565 50 4250 12.552 50 4300 12.585 50 4350 12.588 50 4400 12.488 50 4450 12.466 50 4500 12.431 50 4550 12.415 50 4600 12.388 50 4650 12.367 50 4700 12.355 50 4750 12.34 50 4800 12.325 50 4850 12.379 50 4900 12.309 50 4950 12.277 50 5000 12.268 50 5050 12.253 50 5100 12.237 50 5150 12.235 50 5200 12.233 50 5250 12.204 50 5300 12.187 50 5350 12.174 50 5400 12.164 50 5450 12.147 50 5500 12.137 50 5550 12.122 50 5600 12.123 50 5650 12.109 50 5700 12.109 50 5750 12.103 50 5800 12.087 50 5850 12.07 50 5900 12.083 50 5950 12.065 50 6000 12.058 50 6050 12.048 50 6100 12.042 50 6150 12.046 50 6200 12.036 50 6250 12.039 50 6300 12.046 50 6350 12.02 50 6400 12.015 50 6450 12.007 50 6500 12.008 50 6550 12.070 50 6600 12.005 50 6650 11.977 50 6700 11.971 50 6750 11.965 50 6800 11.962 50 6850 12.010 50 6900 12.062 50 6950 11.974 50 7000 11.965 50 7050 11.957 50 7100 11.951 50 7150 11.967 50 7200 12.021 50 7250 12.008 50 7300 11.991 50 7350 11.956 50 7400 11.949 50 7450 11.943 50 7500 11.937 50 7550 11.930 50 7600 12.390 50 7650 12.264 50 7700 11.941 50 7750 11.916 50 7800 11.912 50 7850 11.905 50 7900 11.910 50 7950 11.907 50 8000 11.903 50 8050 11.904 50 8100 11.907 50 8150 11.968 50 8200 11.958 50 8250 11.952 50 8300 11.941 50 8350 11.920 50 8400 11.905 50 8450 11.903 50 8500 11.914 50 8550 11.931 50 8600 11.905 50 8650 11.923 50 8700 11.905 50 8750 11.913 50 8800 11.907 50 8850 11.916 50 8900 11.915 50 8950 11.957 50 9000 12.037 50 9050 11.975 50 9100 12.008 50 9150 12.015 50 9200 11.981 50 9250 11.993 50 9300 12.165 50 9350 12.432 50 9400 12.208 50 9450 12.283 50 9500 12.235 50 9550 12.226 50 9600 12.147 50 9650 12.076 50 9700 11.982 50 9750 11.990 50 9800 11.973 50 9850 11.942 50 9900 11.929 50 9950 11.923 50 10000 11.917 50 10050 11.931 50 10100 11.920 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/l3864blue.dat000066400000000000000000000024251331023215600232570ustar00rootroot00000000000000# LTT 3864 3300 13.526 50 3350 13.516 50 3400 13.461 50 3450 13.428 50 3500 13.390 50 3550 13.323 50 3600 13.295 50 3650 13.199 50 3700 13.152 50 3750 13.092 50 3800 12.946 50 3850 12.881 50 3900 12.869 50 3950 12.952 50 4000 12.693 50 4050 12.632 50 4100 12.680 50 4150 12.580 50 4200 12.572 50 4250 12.559 50 4300 12.592 50 4350 12.595 50 4400 12.495 50 4450 12.473 50 4500 12.438 50 4550 12.422 50 4600 12.395 50 4650 12.374 50 4700 12.362 50 4750 12.347 50 4800 12.332 50 4850 12.386 50 4900 12.316 50 4950 12.284 50 5000 12.275 50 5050 12.260 50 5100 12.244 50 5150 12.242 50 5200 12.240 50 5250 12.211 50 5300 12.194 50 5350 12.181 50 5400 12.171 50 5450 12.154 50 5500 12.144 50 5550 12.129 50 5600 12.130 50 5650 12.116 50 5700 12.116 50 5750 12.110 50 5800 12.094 50 5850 12.077 50 5900 12.090 50 5950 12.072 50 6000 12.065 50 6050 12.055 50 6100 12.049 50 6150 12.053 50 6200 12.043 50 6250 12.046 50 6300 12.053 50 6350 12.027 50 6400 12.022 50 6450 12.014 50 6500 12.014 50 6550 12.075 50 6600 12.010 50 6650 11.981 50 6700 11.976 50 6750 11.971 50 6800 11.969 50 6850 12.016 50 6900 12.071 50 6950 11.981 50 7000 11.971 50 7050 11.961 50 7100 11.956 50 7150 11.972 50 7200 12.032 50 7250 12.019 50 7300 12.003 50 7350 11.966 50 7400 11.961 50 7450 11.958 50 7500 11.951 50 7550 11.948 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/l3864red.dat000066400000000000000000000021441331023215600231000ustar00rootroot00000000000000# LTT 3864 6450 12.013 50 6500 12.009 50 6550 12.071 50 6600 12.006 50 6650 11.980 50 6700 11.972 50 6750 11.965 50 6800 11.962 50 6850 12.011 50 6900 12.059 50 6950 11.973 50 7000 11.965 50 7050 11.959 50 7100 11.953 50 7150 11.969 50 7200 12.016 50 7250 12.004 50 7300 11.989 50 7350 11.953 50 7400 11.943 50 7450 11.935 50 7500 11.930 50 7550 11.930 50 7600 12.390 50 7650 12.264 50 7700 11.941 50 7750 11.916 50 7800 11.912 50 7850 11.905 50 7900 11.910 50 7950 11.907 50 8000 11.903 50 8050 11.904 50 8100 11.907 50 8150 11.968 50 8200 11.958 50 8250 11.952 50 8300 11.941 50 8350 11.920 50 8400 11.905 50 8450 11.903 50 8500 11.914 50 8550 11.931 50 8600 11.905 50 8650 11.923 50 8700 11.905 50 8750 11.913 50 8800 11.907 50 8850 11.916 50 8900 11.915 50 8950 11.957 50 9000 12.037 50 9050 11.975 50 9100 12.008 50 9150 12.015 50 9200 11.981 50 9250 11.993 50 9300 12.165 50 9350 12.432 50 9400 12.208 50 9450 12.283 50 9500 12.235 50 9550 12.226 50 9600 12.147 50 9650 12.076 50 9700 11.982 50 9750 11.990 50 9800 11.973 50 9850 11.942 50 9900 11.929 50 9950 11.923 50 10000 11.917 50 10050 11.931 50 10100 11.920 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/l4364.dat000066400000000000000000000040541331023215600224030ustar00rootroot00000000000000# LTT 4364 3300 11.929 50 3350 11.88 50 3400 11.871 50 3450 11.857 50 3500 11.84 50 3550 11.808 50 3600 11.769 50 3650 11.743 50 3700 11.716 50 3750 11.699 50 3800 11.676 50 3850 11.656 50 3900 11.645 50 3950 11.635 50 4000 11.626 50 4050 11.617 50 4100 11.609 50 4150 11.605 50 4200 11.596 50 4250 11.589 50 4300 11.586 50 4350 11.587 50 4400 11.574 50 4450 11.565 50 4500 11.566 50 4550 11.564 50 4600 11.568 50 4650 11.59 50 4700 11.605 50 4750 11.56 50 4800 11.537 50 4850 11.528 50 4900 11.522 50 4950 11.519 50 5000 11.528 50 5050 11.552 50 5100 11.581 50 5150 11.585 50 5200 11.505 50 5250 11.501 50 5300 11.501 50 5350 11.499 50 5400 11.5 50 5450 11.506 50 5500 11.509 50 5550 11.512 50 5600 11.507 50 5650 11.501 50 5700 11.501 50 5750 11.507 50 5800 11.5 50 5850 11.496 50 5900 11.506 50 5950 11.504 50 6000 11.505 50 6050 11.506 50 6100 11.508 50 6150 11.509 50 6200 11.508 50 6250 11.515 50 6300 11.528 50 6350 11.514 50 6400 11.512 50 6450 11.51 50 6500 11.513 50 6550 11.516 50 6600 11.513 50 6650 11.512 50 6700 11.511 50 6750 11.514 50 6800 11.519 50 6850 11.572 50 6900 11.631 50 6950 11.554 50 7000 11.549 50 7050 11.548 50 7100 11.547 50 7150 11.569 50 7200 11.630 50 7250 11.625 50 7300 11.613 50 7350 11.582 50 7400 11.577 50 7450 11.577 50 7500 11.580 50 7550 11.583 50 7600 12.058 50 7650 11.933 50 7700 11.607 50 7750 11.591 50 7800 11.593 50 7850 11.597 50 7900 11.605 50 7950 11.609 50 8000 11.613 50 8050 11.614 50 8100 11.627 50 8150 11.700 50 8200 11.690 50 8250 11.689 50 8300 11.684 50 8350 11.658 50 8400 11.651 50 8450 11.653 50 8500 11.655 50 8550 11.663 50 8600 11.663 50 8650 11.674 50 8700 11.681 50 8750 11.687 50 8800 11.694 50 8850 11.708 50 8900 11.711 50 8950 11.773 50 9000 11.851 50 9050 11.799 50 9100 11.842 50 9150 11.859 50 9200 11.823 50 9250 11.814 50 9300 12.041 50 9350 12.350 50 9400 12.093 50 9450 12.185 50 9500 12.143 50 9550 12.113 50 9600 12.057 50 9650 11.979 50 9700 11.894 50 9750 11.915 50 9800 11.895 50 9850 11.857 50 9900 11.825 50 9950 11.836 50 10000 11.837 50 10050 11.787 50 10100 11.850 50 10150 11.843 50 10200 11.869 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/l4364blue.dat000066400000000000000000000024251331023215600232530ustar00rootroot00000000000000# LTT 4364 3300 11.909 50 3350 11.860 50 3400 11.851 50 3450 11.837 50 3500 11.820 50 3550 11.788 50 3600 11.749 50 3650 11.723 50 3700 11.696 50 3750 11.679 50 3800 11.656 50 3850 11.636 50 3900 11.625 50 3950 11.615 50 4000 11.606 50 4050 11.597 50 4100 11.589 50 4150 11.585 50 4200 11.576 50 4250 11.569 50 4300 11.566 50 4350 11.567 50 4400 11.554 50 4450 11.545 50 4500 11.546 50 4550 11.544 50 4600 11.548 50 4650 11.570 50 4700 11.585 50 4750 11.540 50 4800 11.517 50 4850 11.508 50 4900 11.502 50 4950 11.499 50 5000 11.508 50 5050 11.532 50 5100 11.561 50 5150 11.565 50 5200 11.485 50 5250 11.481 50 5300 11.481 50 5350 11.479 50 5400 11.480 50 5450 11.486 50 5500 11.489 50 5550 11.492 50 5600 11.487 50 5650 11.481 50 5700 11.481 50 5750 11.487 50 5800 11.480 50 5850 11.476 50 5900 11.486 50 5950 11.484 50 6000 11.485 50 6050 11.486 50 6100 11.488 50 6150 11.489 50 6200 11.488 50 6250 11.495 50 6300 11.508 50 6350 11.494 50 6400 11.492 50 6450 11.490 50 6500 11.492 50 6550 11.498 50 6600 11.493 50 6650 11.491 50 6700 11.489 50 6750 11.494 50 6800 11.503 50 6850 11.552 50 6900 11.615 50 6950 11.537 50 7000 11.532 50 7050 11.527 50 7100 11.526 50 7150 11.545 50 7200 11.609 50 7250 11.605 50 7300 11.592 50 7350 11.559 50 7400 11.556 50 7450 11.559 50 7500 11.563 50 7550 11.566 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/l4364red.dat000066400000000000000000000022041331023215600230710ustar00rootroot00000000000000# LTT 4364 6450 11.509 50 6500 11.514 50 6550 11.513 50 6600 11.512 50 6650 11.512 50 6700 11.512 50 6750 11.513 50 6800 11.515 50 6850 11.571 50 6900 11.627 50 6950 11.550 50 7000 11.546 50 7050 11.548 50 7100 11.548 50 7150 11.572 50 7200 11.630 50 7250 11.625 50 7300 11.614 50 7350 11.585 50 7400 11.577 50 7450 11.574 50 7500 11.576 50 7550 11.583 50 7600 12.058 50 7650 11.933 50 7700 11.607 50 7750 11.591 50 7800 11.593 50 7850 11.597 50 7900 11.605 50 7950 11.609 50 8000 11.613 50 8050 11.614 50 8100 11.627 50 8150 11.700 50 8200 11.690 50 8250 11.689 50 8300 11.684 50 8350 11.658 50 8400 11.651 50 8450 11.653 50 8500 11.655 50 8550 11.663 50 8600 11.663 50 8650 11.674 50 8700 11.681 50 8750 11.687 50 8800 11.694 50 8850 11.708 50 8900 11.711 50 8950 11.773 50 9000 11.851 50 9050 11.799 50 9100 11.842 50 9150 11.859 50 9200 11.823 50 9250 11.814 50 9300 12.041 50 9350 12.350 50 9400 12.093 50 9450 12.185 50 9500 12.143 50 9550 12.113 50 9600 12.057 50 9650 11.979 50 9700 11.894 50 9750 11.915 50 9800 11.895 50 9850 11.857 50 9900 11.825 50 9950 11.836 50 10000 11.837 50 10050 11.787 50 10100 11.850 50 10150 11.843 50 10200 11.869 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/l4816.dat000066400000000000000000000037341331023215600224110ustar00rootroot00000000000000# LTT 4816 3300 14.083 50 3350 14.054 50 3400 14.057 50 3450 14.073 50 3500 14.07 50 3550 14.055 50 3600 14.039 50 3650 14.024 50 3700 14.026 50 3750 14.015 50 3800 14.012 50 3850 14.001 50 3900 13.995 50 3950 14.026 50 4000 13.929 50 4050 13.85 50 4100 14.164 50 4150 13.83 50 4200 13.695 50 4250 13.718 50 4300 13.922 50 4350 14.228 50 4400 13.819 50 4450 13.703 50 4500 13.674 50 4550 13.658 50 4600 13.666 50 4650 13.68 50 4700 13.702 50 4750 13.753 50 4800 13.874 50 4850 14.251 50 4900 14.01 50 4950 13.805 50 5000 13.746 50 5050 13.727 50 5100 13.723 50 5150 13.724 50 5200 13.721 50 5250 13.729 50 5300 13.736 50 5350 13.74 50 5400 13.756 50 5450 13.755 50 5500 13.758 50 5550 13.78 50 5600 13.782 50 5650 13.79 50 5700 13.808 50 5750 13.827 50 5800 13.825 50 5850 13.823 50 5900 13.837 50 5950 13.844 50 6000 13.853 50 6050 13.864 50 6100 13.876 50 6150 13.88 50 6200 13.892 50 6250 13.904 50 6300 13.927 50 6350 13.931 50 6400 13.956 50 6450 13.992 50 6500 14.101 50 6550 14.394 50 6600 14.231 50 6650 14.059 50 6700 14.008 50 6750 13.995 50 6800 13.994 50 6850 14.038 50 6900 14.099 50 6950 14.022 50 7000 14.022 50 7050 14.023 50 7100 14.030 50 7150 14.057 50 7200 14.121 50 7250 14.120 50 7300 14.118 50 7350 14.091 50 7400 14.081 50 7450 14.089 50 7500 14.100 50 7550 14.101 50 7600 14.575 50 7650 14.451 50 7700 14.136 50 7750 14.131 50 7800 14.130 50 7850 14.142 50 7900 14.147 50 7950 14.156 50 8000 14.162 50 8050 14.172 50 8100 14.184 50 8150 14.262 50 8200 14.252 50 8250 14.253 50 8300 14.244 50 8350 14.228 50 8400 14.229 50 8450 14.229 50 8500 14.236 50 8550 14.259 50 8600 14.267 50 8650 14.276 50 8700 14.283 50 8750 14.291 50 8800 14.298 50 8850 14.317 50 8900 14.339 50 8950 14.385 50 9000 14.472 50 9050 14.420 50 9100 14.481 50 9150 14.489 50 9200 14.467 50 9250 14.466 50 9300 14.697 50 9350 15.018 50 9400 14.731 50 9450 14.783 50 9500 14.829 50 9550 14.747 50 9600 14.684 50 9650 14.572 50 9700 14.517 50 9750 14.507 50 9800 14.500 50 9850 14.487 50 9900 14.431 50 9950 14.527 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/l4816blue.dat000066400000000000000000000024251331023215600232550ustar00rootroot00000000000000# LTT 4816 3300 14.078 50 3350 14.049 50 3400 14.052 50 3450 14.068 50 3500 14.065 50 3550 14.050 50 3600 14.034 50 3650 14.019 50 3700 14.021 50 3750 14.010 50 3800 14.007 50 3850 13.996 50 3900 13.990 50 3950 14.021 50 4000 13.924 50 4050 13.845 50 4100 14.159 50 4150 13.825 50 4200 13.690 50 4250 13.713 50 4300 13.917 50 4350 14.223 50 4400 13.814 50 4450 13.698 50 4500 13.669 50 4550 13.653 50 4600 13.661 50 4650 13.675 50 4700 13.697 50 4750 13.748 50 4800 13.869 50 4850 14.246 50 4900 14.005 50 4950 13.800 50 5000 13.741 50 5050 13.722 50 5100 13.718 50 5150 13.719 50 5200 13.716 50 5250 13.724 50 5300 13.731 50 5350 13.735 50 5400 13.751 50 5450 13.750 50 5500 13.753 50 5550 13.775 50 5600 13.777 50 5650 13.785 50 5700 13.803 50 5750 13.822 50 5800 13.820 50 5850 13.818 50 5900 13.832 50 5950 13.839 50 6000 13.848 50 6050 13.859 50 6100 13.871 50 6150 13.875 50 6200 13.887 50 6250 13.899 50 6300 13.922 50 6350 13.926 50 6400 13.951 50 6450 13.987 50 6500 14.092 50 6550 14.389 50 6600 14.221 50 6650 14.046 50 6700 14.001 50 6750 13.991 50 6800 13.993 50 6850 14.031 50 6900 14.094 50 6950 14.014 50 7000 14.011 50 7050 14.011 50 7100 14.021 50 7150 14.047 50 7200 14.115 50 7250 14.115 50 7300 14.117 50 7350 14.095 50 7400 14.079 50 7450 14.089 50 7500 14.103 50 7550 14.105 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/l4816red.dat000066400000000000000000000020641331023215600230770ustar00rootroot00000000000000# LTT 4816 6450 14.002 50 6500 14.105 50 6550 14.394 50 6600 14.235 50 6650 14.066 50 6700 14.009 50 6750 13.993 50 6800 13.990 50 6850 14.039 50 6900 14.098 50 6950 14.025 50 7000 14.027 50 7050 14.030 50 7100 14.034 50 7150 14.061 50 7200 14.122 50 7250 14.119 50 7300 14.113 50 7350 14.081 50 7400 14.077 50 7450 14.084 50 7500 14.091 50 7550 14.101 50 7600 14.575 50 7650 14.451 50 7700 14.136 50 7750 14.131 50 7800 14.130 50 7850 14.142 50 7900 14.147 50 7950 14.156 50 8000 14.162 50 8050 14.172 50 8100 14.184 50 8150 14.262 50 8200 14.252 50 8250 14.253 50 8300 14.244 50 8350 14.228 50 8400 14.229 50 8450 14.229 50 8500 14.236 50 8550 14.259 50 8600 14.267 50 8650 14.276 50 8700 14.283 50 8750 14.291 50 8800 14.298 50 8850 14.317 50 8900 14.339 50 8950 14.385 50 9000 14.472 50 9050 14.420 50 9100 14.481 50 9150 14.489 50 9200 14.467 50 9250 14.466 50 9300 14.697 50 9350 15.018 50 9400 14.731 50 9450 14.783 50 9500 14.829 50 9550 14.747 50 9600 14.684 50 9650 14.572 50 9700 14.517 50 9750 14.507 50 9800 14.500 50 9850 14.487 50 9900 14.431 50 9950 14.527 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/l6248.dat000066400000000000000000000040401331023215600224010ustar00rootroot00000000000000# LTT 6248 3300 13.134 50 3350 13.063 50 3400 13.037 50 3450 13.019 50 3500 12.982 50 3550 12.928 50 3600 12.868 50 3650 12.806 50 3700 12.768 50 3750 12.684 50 3800 12.565 50 3850 12.479 50 3900 12.464 50 3950 12.471 50 4000 12.305 50 4050 12.258 50 4100 12.317 50 4150 12.209 50 4200 12.183 50 4250 12.174 50 4300 12.192 50 4350 12.216 50 4400 12.119 50 4450 12.094 50 4500 12.068 50 4550 12.059 50 4600 12.035 50 4650 12.017 50 4700 12.005 50 4750 11.996 50 4800 11.984 50 4850 12.04 50 4900 11.95 50 4950 11.916 50 5000 11.904 50 5050 11.889 50 5100 11.87 50 5150 11.858 50 5200 11.85 50 5250 11.837 50 5300 11.826 50 5350 11.811 50 5400 11.803 50 5450 11.79 50 5500 11.777 50 5550 11.761 50 5600 11.752 50 5650 11.747 50 5700 11.743 50 5750 11.739 50 5800 11.721 50 5850 11.704 50 5900 11.711 50 5950 11.697 50 6000 11.687 50 6050 11.682 50 6100 11.673 50 6150 11.667 50 6200 11.663 50 6250 11.659 50 6300 11.669 50 6350 11.644 50 6400 11.635 50 6450 11.625 50 6500 11.627 50 6550 11.699 50 6600 11.613 50 6650 11.596 50 6700 11.587 50 6750 11.582 50 6800 11.579 50 6850 11.624 50 6900 11.680 50 6950 11.589 50 7000 11.577 50 7050 11.570 50 7100 11.565 50 7150 11.574 50 7200 11.623 50 7250 11.610 50 7300 11.595 50 7350 11.565 50 7400 11.556 50 7450 11.551 50 7500 11.549 50 7550 11.543 50 7600 11.992 50 7650 11.880 50 7700 11.556 50 7750 11.533 50 7800 11.526 50 7850 11.521 50 7900 11.521 50 7950 11.518 50 8000 11.514 50 8050 11.513 50 8100 11.517 50 8150 11.567 50 8200 11.558 50 8250 11.553 50 8300 11.544 50 8350 11.523 50 8400 11.514 50 8450 11.507 50 8500 11.508 50 8550 11.515 50 8600 11.506 50 8650 11.515 50 8700 11.500 50 8750 11.511 50 8800 11.502 50 8850 11.519 50 8900 11.515 50 8950 11.548 50 9000 11.624 50 9050 11.556 50 9100 11.590 50 9150 11.595 50 9200 11.576 50 9250 11.580 50 9300 11.727 50 9350 11.970 50 9400 11.771 50 9450 11.845 50 9500 11.807 50 9550 11.804 50 9600 11.728 50 9650 11.667 50 9700 11.580 50 9750 11.605 50 9800 11.589 50 9850 11.556 50 9900 11.534 50 9950 11.538 50 10000 11.535 50 10050 11.554 50 10100 11.495 50 10150 11.500 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/l6248blue.dat000066400000000000000000000024251331023215600232560ustar00rootroot00000000000000# LTT 6248 3300 13.132 50 3350 13.061 50 3400 13.035 50 3450 13.017 50 3500 12.980 50 3550 12.926 50 3600 12.866 50 3650 12.804 50 3700 12.766 50 3750 12.682 50 3800 12.563 50 3850 12.477 50 3900 12.462 50 3950 12.469 50 4000 12.303 50 4050 12.256 50 4100 12.315 50 4150 12.207 50 4200 12.181 50 4250 12.172 50 4300 12.190 50 4350 12.214 50 4400 12.117 50 4450 12.092 50 4500 12.066 50 4550 12.057 50 4600 12.033 50 4650 12.015 50 4700 12.003 50 4750 11.994 50 4800 11.982 50 4850 12.038 50 4900 11.948 50 4950 11.914 50 5000 11.902 50 5050 11.887 50 5100 11.868 50 5150 11.856 50 5200 11.848 50 5250 11.835 50 5300 11.824 50 5350 11.809 50 5400 11.801 50 5450 11.788 50 5500 11.775 50 5550 11.759 50 5600 11.750 50 5650 11.745 50 5700 11.741 50 5750 11.737 50 5800 11.719 50 5850 11.702 50 5900 11.709 50 5950 11.695 50 6000 11.685 50 6050 11.680 50 6100 11.671 50 6150 11.665 50 6200 11.661 50 6250 11.657 50 6300 11.667 50 6350 11.642 50 6400 11.633 50 6450 11.623 50 6500 11.621 50 6550 11.692 50 6600 11.609 50 6650 11.591 50 6700 11.583 50 6750 11.580 50 6800 11.579 50 6850 11.624 50 6900 11.685 50 6950 11.591 50 7000 11.577 50 7050 11.569 50 7100 11.560 50 7150 11.568 50 7200 11.624 50 7250 11.609 50 7300 11.594 50 7350 11.563 50 7400 11.555 50 7450 11.553 50 7500 11.552 50 7550 11.551 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/l6248red.dat000066400000000000000000000023351331023215600231010ustar00rootroot00000000000000# LTT 6248 6100 11.658 50 6150 11.668 50 6200 11.664 50 6250 11.668 50 6300 11.678 50 6350 11.650 50 6400 11.639 50 6450 11.632 50 6500 11.630 50 6550 11.703 50 6600 11.614 50 6650 11.598 50 6700 11.588 50 6750 11.581 50 6800 11.576 50 6850 11.622 50 6900 11.672 50 6950 11.584 50 7000 11.575 50 7050 11.569 50 7100 11.567 50 7150 11.578 50 7200 11.619 50 7250 11.609 50 7300 11.594 50 7350 11.565 50 7400 11.555 50 7450 11.547 50 7500 11.544 50 7550 11.543 50 7600 11.992 50 7650 11.880 50 7700 11.556 50 7750 11.533 50 7800 11.526 50 7850 11.521 50 7900 11.521 50 7950 11.518 50 8000 11.514 50 8050 11.513 50 8100 11.517 50 8150 11.567 50 8200 11.558 50 8250 11.553 50 8300 11.544 50 8350 11.523 50 8400 11.514 50 8450 11.507 50 8500 11.508 50 8550 11.515 50 8600 11.506 50 8650 11.515 50 8700 11.500 50 8750 11.511 50 8800 11.502 50 8850 11.519 50 8900 11.515 50 8950 11.548 50 9000 11.624 50 9050 11.556 50 9100 11.590 50 9150 11.595 50 9200 11.576 50 9250 11.580 50 9300 11.727 50 9350 11.970 50 9400 11.771 50 9450 11.845 50 9500 11.807 50 9550 11.804 50 9600 11.728 50 9650 11.667 50 9700 11.580 50 9750 11.605 50 9800 11.589 50 9850 11.556 50 9900 11.534 50 9950 11.538 50 10000 11.535 50 10050 11.554 50 10100 11.495 50 10150 11.500 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/l7379.dat000066400000000000000000000037661331023215600224250ustar00rootroot00000000000000# LTT 7379 3300 11.85 50 3350 11.851 50 3400 11.753 50 3450 11.746 50 3500 11.679 50 3550 11.599 50 3600 11.62 50 3650 11.466 50 3700 11.416 50 3750 11.439 50 3800 11.299 50 3850 11.343 50 3900 11.278 50 3950 11.442 50 4000 10.98 50 4050 10.881 50 4100 10.851 50 4150 10.78 50 4200 10.788 50 4250 10.819 50 4300 10.907 50 4350 10.765 50 4400 10.702 50 4450 10.612 50 4500 10.547 50 4550 10.536 50 4600 10.496 50 4650 10.472 50 4700 10.457 50 4750 10.432 50 4800 10.409 50 4850 10.454 50 4900 10.408 50 4950 10.375 50 5000 10.381 50 5050 10.354 50 5100 10.33 50 5150 10.357 50 5200 10.351 50 5250 10.293 50 5300 10.257 50 5350 10.248 50 5400 10.238 50 5450 10.217 50 5500 10.197 50 5550 10.181 50 5600 10.184 50 5650 10.155 50 5700 10.15 50 5750 10.131 50 5800 10.12 50 5850 10.106 50 5900 10.125 50 5950 10.1 50 6000 10.096 50 6050 10.082 50 6100 10.076 50 6150 10.077 50 6200 10.055 50 6250 10.061 50 6300 10.061 50 6350 10.038 50 6400 10.032 50 6450 10.032 50 6500 10.026 50 6550 10.071 50 6600 10.010 50 6650 9.992 50 6700 9.985 50 6750 9.980 50 6800 9.974 50 6850 10.020 50 6900 10.070 50 6950 9.982 50 7000 9.977 50 7050 9.966 50 7100 9.960 50 7150 9.976 50 7200 10.025 50 7250 10.007 50 7300 9.992 50 7350 9.955 50 7400 9.953 50 7450 9.936 50 7500 9.936 50 7550 9.935 50 7600 10.401 50 7650 10.281 50 7700 9.945 50 7750 9.922 50 7800 9.916 50 7850 9.913 50 7900 9.915 50 7950 9.918 50 8000 9.911 50 8050 9.908 50 8100 9.912 50 8150 9.968 50 8200 9.975 50 8250 9.952 50 8300 9.944 50 8350 9.920 50 8400 9.903 50 8450 9.903 50 8500 9.921 50 8550 9.957 50 8600 9.900 50 8650 9.942 50 8700 9.911 50 8750 9.910 50 8800 9.914 50 8850 9.914 50 8900 9.910 50 8950 9.956 50 9000 10.035 50 9050 9.971 50 9100 10.014 50 9150 10.013 50 9200 9.979 50 9250 9.983 50 9300 10.152 50 9350 10.428 50 9400 10.214 50 9450 10.293 50 9500 10.240 50 9550 10.209 50 9600 10.150 50 9650 10.087 50 9700 9.991 50 9750 10.012 50 9800 9.983 50 9850 9.953 50 9900 9.935 50 9950 9.932 50 10000 9.938 50 10050 9.942 50 10100 9.920 50 10150 9.926 50 10200 9.917 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/l7379blue.dat000066400000000000000000000024061331023215600232630ustar00rootroot00000000000000# LTT 7379 3300 11.852 50 3350 11.853 50 3400 11.755 50 3450 11.748 50 3500 11.681 50 3550 11.601 50 3600 11.622 50 3650 11.468 50 3700 11.418 50 3750 11.441 50 3800 11.301 50 3850 11.345 50 3900 11.280 50 3950 11.444 50 4000 10.982 50 4050 10.883 50 4100 10.853 50 4150 10.782 50 4200 10.790 50 4250 10.821 50 4300 10.909 50 4350 10.767 50 4400 10.704 50 4450 10.614 50 4500 10.549 50 4550 10.538 50 4600 10.498 50 4650 10.474 50 4700 10.459 50 4750 10.434 50 4800 10.411 50 4850 10.456 50 4900 10.410 50 4950 10.377 50 5000 10.383 50 5050 10.356 50 5100 10.332 50 5150 10.359 50 5200 10.353 50 5250 10.295 50 5300 10.259 50 5350 10.250 50 5400 10.240 50 5450 10.219 50 5500 10.199 50 5550 10.183 50 5600 10.186 50 5650 10.157 50 5700 10.152 50 5750 10.133 50 5800 10.122 50 5850 10.108 50 5900 10.127 50 5950 10.102 50 6000 10.098 50 6050 10.084 50 6100 10.078 50 6150 10.079 50 6200 10.057 50 6250 10.063 50 6300 10.063 50 6350 10.040 50 6400 10.034 50 6450 10.034 50 6500 10.028 50 6550 10.072 50 6600 10.015 50 6650 9.996 50 6700 9.990 50 6750 9.985 50 6800 9.982 50 6850 10.022 50 6900 10.075 50 6950 9.987 50 7000 9.980 50 7050 9.966 50 7100 9.960 50 7150 9.972 50 7200 10.021 50 7250 10.002 50 7300 9.988 50 7350 9.952 50 7400 9.950 50 7450 9.934 50 7500 9.936 50 7550 9.938 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/l7379red.dat000066400000000000000000000022671331023215600231130ustar00rootroot00000000000000# LTT 7379 6100 10.076 50 6150 10.083 50 6200 10.064 50 6250 10.073 50 6300 10.074 50 6350 10.046 50 6400 10.037 50 6450 10.033 50 6500 10.026 50 6550 10.072 50 6600 10.006 50 6650 9.990 50 6700 9.981 50 6750 9.976 50 6800 9.968 50 6850 10.020 50 6900 10.067 50 6950 9.979 50 7000 9.975 50 7050 9.967 50 7100 9.961 50 7150 9.981 50 7200 10.030 50 7250 10.013 50 7300 9.997 50 7350 9.959 50 7400 9.957 50 7450 9.939 50 7500 9.938 50 7550 9.935 50 7600 10.401 50 7650 10.281 50 7700 9.945 50 7750 9.922 50 7800 9.916 50 7850 9.913 50 7900 9.915 50 7950 9.918 50 8000 9.911 50 8050 9.908 50 8100 9.912 50 8150 9.968 50 8200 9.975 50 8250 9.952 50 8300 9.944 50 8350 9.920 50 8400 9.903 50 8450 9.903 50 8500 9.921 50 8550 9.957 50 8600 9.900 50 8650 9.942 50 8700 9.911 50 8750 9.910 50 8800 9.914 50 8850 9.914 50 8900 9.910 50 8950 9.956 50 9000 10.035 50 9050 9.971 50 9100 10.014 50 9150 10.013 50 9200 9.979 50 9250 9.983 50 9300 10.152 50 9350 10.428 50 9400 10.214 50 9450 10.293 50 9500 10.240 50 9550 10.209 50 9600 10.150 50 9650 10.087 50 9700 9.991 50 9750 10.012 50 9800 9.983 50 9850 9.953 50 9900 9.935 50 9950 9.932 50 10000 9.938 50 10050 9.942 50 10100 9.920 50 10150 9.926 50 10200 9.917 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/l745.dat000066400000000000000000000021241331023215600223160ustar00rootroot00000000000000# L745-46A 6450 13.072 50 6500 13.089 50 6550 13.114 50 6600 13.091 50 6650 13.070 50 6700 13.056 50 6750 13.054 50 6800 13.052 50 6850 13.100 50 6900 13.156 50 6950 13.075 50 7000 13.071 50 7050 13.074 50 7100 13.076 50 7150 13.092 50 7200 13.137 50 7250 13.132 50 7300 13.121 50 7350 13.101 50 7400 13.094 50 7450 13.094 50 7500 13.093 50 7550 13.101 50 7600 13.537 50 7650 13.418 50 7700 13.117 50 7750 13.104 50 7800 13.104 50 7850 13.108 50 7900 13.112 50 7950 13.118 50 8000 13.121 50 8050 13.122 50 8100 13.134 50 8150 13.190 50 8200 13.184 50 8250 13.185 50 8300 13.188 50 8350 13.172 50 8400 13.164 50 8450 13.166 50 8500 13.168 50 8550 13.180 50 8600 13.186 50 8650 13.188 50 8700 13.189 50 8750 13.207 50 8800 13.207 50 8850 13.218 50 8900 13.215 50 8950 13.261 50 9000 13.324 50 9050 13.284 50 9100 13.318 50 9150 13.329 50 9200 13.298 50 9250 13.301 50 9300 13.453 50 9350 13.705 50 9400 13.494 50 9450 13.586 50 9500 13.566 50 9550 13.528 50 9600 13.490 50 9650 13.436 50 9700 13.361 50 9750 13.381 50 9800 13.358 50 9850 13.342 50 9900 13.323 50 9950 13.372 50 10000 13.399 50 10050 13.288 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/l745red.dat000066400000000000000000000021241331023215600230110ustar00rootroot00000000000000# L745-46A 6450 13.072 50 6500 13.089 50 6550 13.114 50 6600 13.091 50 6650 13.070 50 6700 13.056 50 6750 13.054 50 6800 13.052 50 6850 13.100 50 6900 13.156 50 6950 13.075 50 7000 13.071 50 7050 13.074 50 7100 13.076 50 7150 13.092 50 7200 13.137 50 7250 13.132 50 7300 13.121 50 7350 13.101 50 7400 13.094 50 7450 13.094 50 7500 13.093 50 7550 13.101 50 7600 13.537 50 7650 13.418 50 7700 13.117 50 7750 13.104 50 7800 13.104 50 7850 13.108 50 7900 13.112 50 7950 13.118 50 8000 13.121 50 8050 13.122 50 8100 13.134 50 8150 13.190 50 8200 13.184 50 8250 13.185 50 8300 13.188 50 8350 13.172 50 8400 13.164 50 8450 13.166 50 8500 13.168 50 8550 13.180 50 8600 13.186 50 8650 13.188 50 8700 13.189 50 8750 13.207 50 8800 13.207 50 8850 13.218 50 8900 13.215 50 8950 13.261 50 9000 13.324 50 9050 13.284 50 9100 13.318 50 9150 13.329 50 9200 13.298 50 9250 13.301 50 9300 13.453 50 9350 13.705 50 9400 13.494 50 9450 13.586 50 9500 13.566 50 9550 13.528 50 9600 13.490 50 9650 13.436 50 9700 13.361 50 9750 13.381 50 9800 13.358 50 9850 13.342 50 9900 13.323 50 9950 13.372 50 10000 13.399 50 10050 13.288 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/l7987.dat000066400000000000000000000037601331023215600224240ustar00rootroot00000000000000# LTT 7987 3300 12.373 50 3350 12.346 50 3400 12.367 50 3450 12.389 50 3500 12.401 50 3550 12.397 50 3600 12.389 50 3650 12.388 50 3700 12.415 50 3750 12.422 50 3800 12.419 50 3850 12.402 50 3900 12.397 50 3950 12.407 50 4000 12.268 50 4050 12.12 50 4100 12.532 50 4150 12.129 50 4200 11.964 50 4250 11.993 50 4300 12.236 50 4350 12.57 50 4400 12.141 50 4450 12.004 50 4500 11.98 50 4550 11.987 50 4600 12.002 50 4650 12.022 50 4700 12.047 50 4750 12.103 50 4800 12.246 50 4850 12.656 50 4900 12.414 50 4950 12.192 50 5000 12.144 50 5050 12.137 50 5100 12.135 50 5150 12.14 50 5200 12.151 50 5250 12.169 50 5300 12.182 50 5350 12.195 50 5400 12.207 50 5450 12.219 50 5500 12.234 50 5550 12.245 50 5600 12.257 50 5650 12.275 50 5700 12.294 50 5750 12.308 50 5800 12.315 50 5850 12.319 50 5900 12.338 50 5950 12.352 50 6000 12.365 50 6050 12.378 50 6100 12.389 50 6150 12.397 50 6200 12.405 50 6250 12.423 50 6300 12.45 50 6350 12.452 50 6400 12.468 50 6450 12.511 50 6500 12.610 50 6550 12.878 50 6600 12.741 50 6650 12.587 50 6700 12.544 50 6750 12.538 50 6800 12.542 50 6850 12.596 50 6900 12.665 50 6950 12.585 50 7000 12.590 50 7050 12.598 50 7100 12.608 50 7150 12.631 50 7200 12.684 50 7250 12.689 50 7300 12.687 50 7350 12.669 50 7400 12.671 50 7450 12.680 50 7500 12.693 50 7550 12.704 50 7600 13.190 50 7650 13.083 50 7700 12.749 50 7750 12.747 50 7800 12.752 50 7850 12.764 50 7900 12.776 50 7950 12.786 50 8000 12.792 50 8050 12.806 50 8100 12.821 50 8150 12.883 50 8200 12.880 50 8250 12.886 50 8300 12.887 50 8350 12.880 50 8400 12.875 50 8450 12.892 50 8500 12.903 50 8550 12.909 50 8600 12.918 50 8650 12.918 50 8700 12.930 50 8750 12.957 50 8800 12.960 50 8850 12.992 50 8900 12.992 50 8950 13.027 50 9000 13.103 50 9050 13.078 50 9100 13.103 50 9150 13.119 50 9200 13.112 50 9250 13.128 50 9300 13.234 50 9350 13.479 50 9400 13.325 50 9450 13.404 50 9500 13.369 50 9550 13.420 50 9600 13.308 50 9650 13.240 50 9700 13.161 50 9750 13.172 50 9800 13.202 50 9850 13.132 50 9900 13.212 50 9950 13.216 50 10000 13.175 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/l7987blue.dat000066400000000000000000000024251331023215600232710ustar00rootroot00000000000000# LTT 7987 3300 12.355 50 3350 12.328 50 3400 12.349 50 3450 12.371 50 3500 12.383 50 3550 12.379 50 3600 12.371 50 3650 12.370 50 3700 12.397 50 3750 12.404 50 3800 12.401 50 3850 12.384 50 3900 12.379 50 3950 12.389 50 4000 12.250 50 4050 12.102 50 4100 12.514 50 4150 12.111 50 4200 11.946 50 4250 11.975 50 4300 12.218 50 4350 12.552 50 4400 12.123 50 4450 11.986 50 4500 11.962 50 4550 11.969 50 4600 11.984 50 4650 12.004 50 4700 12.029 50 4750 12.085 50 4800 12.228 50 4850 12.638 50 4900 12.396 50 4950 12.174 50 5000 12.126 50 5050 12.119 50 5100 12.117 50 5150 12.122 50 5200 12.133 50 5250 12.151 50 5300 12.164 50 5350 12.177 50 5400 12.189 50 5450 12.201 50 5500 12.216 50 5550 12.227 50 5600 12.239 50 5650 12.257 50 5700 12.276 50 5750 12.290 50 5800 12.297 50 5850 12.301 50 5900 12.320 50 5950 12.334 50 6000 12.347 50 6050 12.360 50 6100 12.371 50 6150 12.379 50 6200 12.387 50 6250 12.405 50 6300 12.432 50 6350 12.434 50 6400 12.450 50 6450 12.493 50 6500 12.588 50 6550 12.851 50 6600 12.719 50 6650 12.570 50 6700 12.529 50 6750 12.522 50 6800 12.528 50 6850 12.579 50 6900 12.648 50 6950 12.572 50 7000 12.575 50 7050 12.579 50 7100 12.588 50 7150 12.612 50 7200 12.668 50 7250 12.678 50 7300 12.669 50 7350 12.651 50 7400 12.654 50 7450 12.659 50 7500 12.672 50 7550 12.685 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/l7987red.dat000066400000000000000000000022551331023215600231150ustar00rootroot00000000000000# LTT 7987 6100 12.374 50 6150 12.388 50 6200 12.404 50 6250 12.428 50 6300 12.461 50 6350 12.456 50 6400 12.470 50 6450 12.516 50 6500 12.614 50 6550 12.887 50 6600 12.745 50 6650 12.586 50 6700 12.540 50 6750 12.535 50 6800 12.537 50 6850 12.595 50 6900 12.663 50 6950 12.579 50 7000 12.586 50 7050 12.599 50 7100 12.609 50 7150 12.632 50 7200 12.682 50 7250 12.682 50 7300 12.687 50 7350 12.669 50 7400 12.669 50 7450 12.682 50 7500 12.696 50 7550 12.704 50 7600 13.190 50 7650 13.083 50 7700 12.749 50 7750 12.747 50 7800 12.752 50 7850 12.764 50 7900 12.776 50 7950 12.786 50 8000 12.792 50 8050 12.806 50 8100 12.821 50 8150 12.883 50 8200 12.880 50 8250 12.886 50 8300 12.887 50 8350 12.880 50 8400 12.875 50 8450 12.892 50 8500 12.903 50 8550 12.909 50 8600 12.918 50 8650 12.918 50 8700 12.930 50 8750 12.957 50 8800 12.960 50 8850 12.992 50 8900 12.992 50 8950 13.027 50 9000 13.103 50 9050 13.078 50 9100 13.103 50 9150 13.119 50 9200 13.112 50 9250 13.128 50 9300 13.234 50 9350 13.479 50 9400 13.325 50 9450 13.404 50 9500 13.369 50 9550 13.420 50 9600 13.308 50 9650 13.240 50 9700 13.161 50 9750 13.172 50 9800 13.202 50 9850 13.132 50 9900 13.212 50 9950 13.216 50 10000 13.175 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/l9239.dat000066400000000000000000000040551331023215600224120ustar00rootroot00000000000000# LTT 9239 3300 13.576 50 3350 13.566 50 3400 13.481 50 3450 13.471 50 3500 13.406 50 3550 13.35 50 3600 13.323 50 3650 13.198 50 3700 13.199 50 3750 13.199 50 3800 13.084 50 3850 13.072 50 3900 13.078 50 3950 13.172 50 4000 12.785 50 4050 12.73 50 4100 12.695 50 4150 12.65 50 4200 12.649 50 4250 12.656 50 4300 12.717 50 4350 12.593 50 4400 12.534 50 4450 12.466 50 4500 12.42 50 4550 12.403 50 4600 12.371 50 4650 12.348 50 4700 12.325 50 4750 12.3 50 4800 12.279 50 4850 12.305 50 4900 12.251 50 4950 12.225 50 5000 12.219 50 5050 12.195 50 5100 12.176 50 5150 12.192 50 5200 12.171 50 5250 12.128 50 5300 12.103 50 5350 12.091 50 5400 12.076 50 5450 12.056 50 5500 12.037 50 5550 12.019 50 5600 12.017 50 5650 11.995 50 5700 11.985 50 5750 11.976 50 5800 11.957 50 5850 11.943 50 5900 11.945 50 5950 11.93 50 6000 11.924 50 6050 11.909 50 6100 11.901 50 6150 11.894 50 6200 11.88 50 6250 11.876 50 6300 11.882 50 6350 11.857 50 6400 11.853 50 6450 11.845 50 6500 11.842 50 6550 11.886 50 6600 11.820 50 6650 11.808 50 6700 11.798 50 6750 11.793 50 6800 11.788 50 6850 11.829 50 6900 11.879 50 6950 11.790 50 7000 11.777 50 7050 11.770 50 7100 11.764 50 7150 11.774 50 7200 11.814 50 7250 11.799 50 7300 11.781 50 7350 11.750 50 7400 11.738 50 7450 11.732 50 7500 11.730 50 7550 11.724 50 7600 12.179 50 7650 12.062 50 7700 11.727 50 7750 11.704 50 7800 11.699 50 7850 11.696 50 7900 11.696 50 7950 11.694 50 8000 11.693 50 8050 11.690 50 8100 11.689 50 8150 11.747 50 8200 11.744 50 8250 11.730 50 8300 11.720 50 8350 11.695 50 8400 11.682 50 8450 11.680 50 8500 11.696 50 8550 11.718 50 8600 11.678 50 8650 11.709 50 8700 11.680 50 8750 11.680 50 8800 11.687 50 8850 11.683 50 8900 11.691 50 8950 11.726 50 9000 11.801 50 9050 11.741 50 9100 11.777 50 9150 11.783 50 9200 11.751 50 9250 11.740 50 9300 11.896 50 9350 12.167 50 9400 11.970 50 9450 12.033 50 9500 11.984 50 9550 11.957 50 9600 11.900 50 9650 11.835 50 9700 11.758 50 9750 11.789 50 9800 11.750 50 9850 11.722 50 9900 11.701 50 9950 11.695 50 10000 11.690 50 10050 11.706 50 10100 11.637 50 10150 11.647 50 10200 11.654 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/l9239blue.dat000066400000000000000000000024251331023215600232610ustar00rootroot00000000000000# LTT 9239 3300 13.581 50 3350 13.571 50 3400 13.486 50 3450 13.476 50 3500 13.411 50 3550 13.355 50 3600 13.328 50 3650 13.203 50 3700 13.204 50 3750 13.204 50 3800 13.089 50 3850 13.077 50 3900 13.083 50 3950 13.177 50 4000 12.790 50 4050 12.735 50 4100 12.700 50 4150 12.655 50 4200 12.654 50 4250 12.661 50 4300 12.722 50 4350 12.598 50 4400 12.539 50 4450 12.471 50 4500 12.425 50 4550 12.408 50 4600 12.376 50 4650 12.353 50 4700 12.330 50 4750 12.305 50 4800 12.284 50 4850 12.310 50 4900 12.256 50 4950 12.230 50 5000 12.224 50 5050 12.200 50 5100 12.181 50 5150 12.197 50 5200 12.176 50 5250 12.133 50 5300 12.108 50 5350 12.096 50 5400 12.081 50 5450 12.061 50 5500 12.042 50 5550 12.024 50 5600 12.022 50 5650 12.000 50 5700 11.990 50 5750 11.981 50 5800 11.962 50 5850 11.948 50 5900 11.950 50 5950 11.935 50 6000 11.929 50 6050 11.914 50 6100 11.906 50 6150 11.899 50 6200 11.885 50 6250 11.881 50 6300 11.887 50 6350 11.862 50 6400 11.858 50 6450 11.850 50 6500 11.845 50 6550 11.891 50 6600 11.826 50 6650 11.812 50 6700 11.804 50 6750 11.799 50 6800 11.797 50 6850 11.836 50 6900 11.889 50 6950 11.797 50 7000 11.781 50 7050 11.774 50 7100 11.768 50 7150 11.774 50 7200 11.812 50 7250 11.796 50 7300 11.780 50 7350 11.753 50 7400 11.741 50 7450 11.736 50 7500 11.736 50 7550 11.739 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/l9239red.dat000066400000000000000000000023551331023215600231060ustar00rootroot00000000000000# LTT 9239 6100 11.911 50 6150 11.906 50 6200 11.895 50 6250 11.896 50 6300 11.897 50 6350 11.870 50 6400 11.857 50 6450 11.849 50 6500 11.843 50 6550 11.886 50 6600 11.819 50 6650 11.808 50 6700 11.796 50 6750 11.791 50 6800 11.783 50 6850 11.827 50 6900 11.874 50 6950 11.787 50 7000 11.777 50 7050 11.771 50 7100 11.764 50 7150 11.778 50 7200 11.820 50 7250 11.806 50 7300 11.787 50 7350 11.751 50 7400 11.740 50 7450 11.733 50 7500 11.728 50 7550 11.724 50 7600 12.179 50 7650 12.062 50 7700 11.727 50 7750 11.704 50 7800 11.699 50 7850 11.696 50 7900 11.696 50 7950 11.694 50 8000 11.693 50 8050 11.690 50 8100 11.689 50 8150 11.747 50 8200 11.744 50 8250 11.730 50 8300 11.720 50 8350 11.695 50 8400 11.682 50 8450 11.680 50 8500 11.696 50 8550 11.718 50 8600 11.678 50 8650 11.709 50 8700 11.680 50 8750 11.680 50 8800 11.687 50 8850 11.683 50 8900 11.691 50 8950 11.726 50 9000 11.801 50 9050 11.741 50 9100 11.777 50 9150 11.783 50 9200 11.751 50 9250 11.740 50 9300 11.896 50 9350 12.167 50 9400 11.970 50 9450 12.033 50 9500 11.984 50 9550 11.957 50 9600 11.900 50 9650 11.835 50 9700 11.758 50 9750 11.789 50 9800 11.750 50 9850 11.722 50 9900 11.701 50 9950 11.695 50 10000 11.690 50 10050 11.706 50 10100 11.637 50 10150 11.647 50 10200 11.654 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/l9491.dat000066400000000000000000000037361331023215600224170ustar00rootroot00000000000000# LTT 9491 3300 14.097 50 3350 14.059 50 3400 14.054 50 3450 14.076 50 3500 14.059 50 3550 14.047 50 3600 14.033 50 3650 14.019 50 3700 14.019 50 3750 14.017 50 3800 14.015 50 3850 14.006 50 3900 14.019 50 3950 14.011 50 4000 14.015 50 4050 13.993 50 4100 13.998 50 4150 14.005 50 4200 14.005 50 4250 14.009 50 4300 14.013 50 4350 14.025 50 4400 14.03 50 4450 14.049 50 4500 14.039 50 4550 14.034 50 4600 14.038 50 4650 14.048 50 4700 14.05 50 4750 14.058 50 4800 14.061 50 4850 14.064 50 4900 14.063 50 4950 14.061 50 5000 14.064 50 5050 14.067 50 5100 14.069 50 5150 14.068 50 5200 14.073 50 5250 14.08 50 5300 14.091 50 5350 14.09 50 5400 14.095 50 5450 14.104 50 5500 14.109 50 5550 14.116 50 5600 14.118 50 5650 14.134 50 5700 14.147 50 5750 14.155 50 5800 14.16 50 5850 14.191 50 5900 14.197 50 5950 14.174 50 6000 14.176 50 6050 14.182 50 6100 14.184 50 6150 14.192 50 6200 14.198 50 6250 14.205 50 6300 14.223 50 6350 14.207 50 6400 14.22 50 6450 14.22 50 6500 14.225 50 6550 14.258 50 6600 14.242 50 6650 14.249 50 6700 14.257 50 6750 14.250 50 6800 14.266 50 6850 14.317 50 6900 14.377 50 6950 14.305 50 7000 14.305 50 7050 14.313 50 7100 14.316 50 7150 14.328 50 7200 14.390 50 7250 14.396 50 7300 14.384 50 7350 14.365 50 7400 14.364 50 7450 14.366 50 7500 14.375 50 7550 14.390 50 7600 14.847 50 7650 14.747 50 7700 14.423 50 7750 14.399 50 7800 14.414 50 7850 14.424 50 7900 14.434 50 7950 14.431 50 8000 14.441 50 8050 14.452 50 8100 14.459 50 8150 14.520 50 8200 14.517 50 8250 14.524 50 8300 14.535 50 8350 14.519 50 8400 14.518 50 8450 14.511 50 8500 14.529 50 8550 14.531 50 8600 14.560 50 8650 14.554 50 8700 14.555 50 8750 14.585 50 8800 14.609 50 8850 14.640 50 8900 14.640 50 8950 14.681 50 9000 14.730 50 9050 14.687 50 9100 14.739 50 9150 14.752 50 9200 14.741 50 9250 14.740 50 9300 14.900 50 9350 15.166 50 9400 14.960 50 9450 15.033 50 9500 14.980 50 9550 14.949 50 9600 14.878 50 9650 14.810 50 9700 14.760 50 9750 14.888 50 9800 14.858 50 9850 14.823 50 9900 14.737 50 9950 14.876 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/l9491blue.dat000066400000000000000000000024251331023215600232610ustar00rootroot00000000000000# LTT 9491 3300 14.085 50 3350 14.047 50 3400 14.042 50 3450 14.064 50 3500 14.047 50 3550 14.035 50 3600 14.021 50 3650 14.007 50 3700 14.007 50 3750 14.005 50 3800 14.003 50 3850 13.994 50 3900 14.007 50 3950 13.999 50 4000 14.003 50 4050 13.981 50 4100 13.986 50 4150 13.993 50 4200 13.993 50 4250 13.997 50 4300 14.001 50 4350 14.013 50 4400 14.018 50 4450 14.037 50 4500 14.027 50 4550 14.022 50 4600 14.026 50 4650 14.036 50 4700 14.038 50 4750 14.046 50 4800 14.049 50 4850 14.052 50 4900 14.051 50 4950 14.049 50 5000 14.052 50 5050 14.055 50 5100 14.057 50 5150 14.056 50 5200 14.061 50 5250 14.068 50 5300 14.079 50 5350 14.078 50 5400 14.083 50 5450 14.092 50 5500 14.097 50 5550 14.104 50 5600 14.106 50 5650 14.122 50 5700 14.135 50 5750 14.143 50 5800 14.148 50 5850 14.179 50 5900 14.185 50 5950 14.162 50 6000 14.164 50 6050 14.170 50 6100 14.172 50 6150 14.180 50 6200 14.186 50 6250 14.193 50 6300 14.211 50 6350 14.195 50 6400 14.208 50 6450 14.208 50 6500 14.212 50 6550 14.250 50 6600 14.230 50 6650 14.236 50 6700 14.244 50 6750 14.236 50 6800 14.255 50 6850 14.303 50 6900 14.369 50 6950 14.297 50 7000 14.293 50 7050 14.300 50 7100 14.297 50 7150 14.310 50 7200 14.375 50 7250 14.380 50 7300 14.369 50 7350 14.358 50 7400 14.355 50 7450 14.361 50 7500 14.371 50 7550 14.382 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/l9491red.dat000066400000000000000000000022351331023215600231030ustar00rootroot00000000000000# LTT 9491 6100 14.180 50 6150 14.183 50 6200 14.197 50 6250 14.214 50 6300 14.226 50 6350 14.219 50 6400 14.215 50 6450 14.218 50 6500 14.225 50 6550 14.254 50 6600 14.241 50 6650 14.250 50 6700 14.257 50 6750 14.252 50 6800 14.264 50 6850 14.319 50 6900 14.373 50 6950 14.300 50 7000 14.305 50 7050 14.314 50 7100 14.322 50 7150 14.334 50 7200 14.392 50 7250 14.400 50 7300 14.387 50 7350 14.360 50 7400 14.361 50 7450 14.359 50 7500 14.366 50 7550 14.390 50 7600 14.847 50 7650 14.747 50 7700 14.423 50 7750 14.399 50 7800 14.414 50 7850 14.424 50 7900 14.434 50 7950 14.431 50 8000 14.441 50 8050 14.452 50 8100 14.459 50 8150 14.520 50 8200 14.517 50 8250 14.524 50 8300 14.535 50 8350 14.519 50 8400 14.518 50 8450 14.511 50 8500 14.529 50 8550 14.531 50 8600 14.560 50 8650 14.554 50 8700 14.555 50 8750 14.585 50 8800 14.609 50 8850 14.640 50 8900 14.640 50 8950 14.681 50 9000 14.730 50 9050 14.687 50 9100 14.739 50 9150 14.752 50 9200 14.741 50 9250 14.740 50 9300 14.900 50 9350 15.166 50 9400 14.960 50 9450 15.033 50 9500 14.980 50 9550 14.949 50 9600 14.878 50 9650 14.810 50 9700 14.760 50 9750 14.888 50 9800 14.858 50 9850 14.823 50 9900 14.737 50 9950 14.876 50 sptable-1.0.pre20180612/lib/onedstds/ctionewcal/standards.men000066400000000000000000000017701331023215600236230ustar00rootroot00000000000000Standard stars in onedstds$ctionewcal/: Combined red and blue 3300A-10000A: cd32 f56 l2415 l4364 l7987 eg21 h600 l3218 l4816 l9239 eg274 l1020 l377 l6248 l9491 f110 l1788 l3864 l7379 l745 Blue 3300A-7550A: cd32blue f56blue l2415blue l4364blue l7987blue eg21blue h600blue l3218blue l4816blue l9239blue eg274blue l1020blue l377blue l6248blue l9491blue f110blue l1788blue l3864blue l7379blue Red 6050A-10000A: cd32red f56red l2415red l4364red l7987red eg21red h600red l3218red l4816red l9239red eg274red l1020red l377red l6248red l9491red f110red l1788red l3864red l7379red l745red sptable-1.0.pre20180612/lib/onedstds/iidscal/000077500000000000000000000000001331023215600204125ustar00rootroot00000000000000sptable-1.0.pre20180612/lib/onedstds/iidscal/40erib.dat000066400000000000000000000006561331023215600222000ustar00rootroot00000000000000# 40 ERI B 3350. 9.539 49. 3400. 9.565 49. 3450. 9.568 49. 3500. 9.568 49. 3571. 9.574 49. 3636. 9.603 49. 3704. 9.627 49. 3862. 9.663 49. 4036. 9.361 49. 4167. 9.33 49. 4255. 9.295 49. 4464. 9.247 49. 4566. 9.258 49. 4785. 9.469 49. 5000. 9.413 49. 5263. 9.464 49. 5556. 9.548 98. 5840. 9.688 98. 6056. 9.658 98. 6436. 9.818 98. 6790. 9.841 98. 7100. 9.871 98. 7550. 10.024 98. 7780. 10.036 98. 8090. 10.036 98. 8370. 10.061 98. sptable-1.0.pre20180612/lib/onedstds/iidscal/bd253941.dat000066400000000000000000000007301331023215600221610ustar00rootroot00000000000000# BD+25 3941 3200. 12.11 49. 3250. 12.05 49. 3300. 11.98 49. 3350. 11.91 49. 3400. 11.85 49. 3450. 11.82 49. 3500. 11.77 49. 3571. 11.73 49. 3636. 11.7 49. 3704. 11.63 49. 3862. 11.26 49. 4036. 11.16 49. 4167. 11.09 49. 4255. 11.04 49. 4464. 10.96 49. 4566. 10.87 49. 4785. 10.79 49. 5000. 10.69 49. 5263. 10.49 49. 5556. 10.36 98. 5840. 10.31 98. 6056. 10.27 98. 6436. 10.2 98. 6790. 10.12 98. 7100. 10.07 98. 7550. 10.01 98. 7780. 9.98 98. 8090. 9.96 98. 8370. 9.97 98. sptable-1.0.pre20180612/lib/onedstds/iidscal/bd284211.dat000066400000000000000000000007201331023215600221520ustar00rootroot00000000000000# BD+28 4211 3200. 9.62 49. 3250. 9.59 49. 3300. 9.56 49. 3350. 9.58 49. 3400. 9.59 49. 3450. 9.64 49. 3500. 9.66 49. 3571. 9.71 49. 3636. 9.74 49. 3704. 9.77 49. 3862. 9.83 49. 4036. 9.93 49. 4167. 9.99 49. 4255. 10.05 49. 4464. 10.11 49. 4566. 10.19 49. 4785. 10.27 49. 5000. 10.37 49. 5263. 10.44 49. 5556. 10.56 98. 5840. 10.67 98. 6056. 10.73 98. 6436. 10.85 98. 6790. 10.93 98. 7100. 11.02 98. 7550. 11.13 98. 7780. 11.16 98. 8090. 11.22 98. 8370. 11.27 98. sptable-1.0.pre20180612/lib/onedstds/iidscal/bd332642.dat000066400000000000000000000007311331023215600221560ustar00rootroot00000000000000# BD+33 2642 3200. 10.71 49. 3250. 10.66 49. 3300. 10.63 49. 3350. 10.63 49. 3400. 10.65 49. 3450. 10.67 49. 3500. 10.65 49. 3571. 10.69 49. 3636. 10.7 49. 3704. 10.67 49. 3862. 10.43 49. 4036. 10.47 49. 4167. 10.52 49. 4255. 10.54 49. 4464. 10.59 49. 4566. 10.62 49. 4785. 10.67 49. 5000. 10.77 49. 5263. 10.81 49. 5556. 10.88 98. 5840. 10.95 98. 6056. 11. 98. 6436. 11.1 98. 6790. 11.15 98. 7100. 11.16 98. 7550. 11.25 98. 7780. 11.25 98. 8090. 11.31 98. 8370. 11.42 98. sptable-1.0.pre20180612/lib/onedstds/iidscal/bd404032.dat000066400000000000000000000007271331023215600221540ustar00rootroot00000000000000# BD+40 4032 3200. 11.06 49. 3250. 11. 49. 3300. 10.92 49. 3350. 10.92 49. 3400. 10.9 49. 3450. 10.88 49. 3500. 10.87 49. 3571. 10.87 49. 3636. 10.87 49. 3704. 10.86 49. 3862. 10.6 49. 4036. 10.56 49. 4167. 10.53 49. 4255. 10.52 49. 4464. 10.5 49. 4566. 10.48 49. 4785. 10.48 49. 5000. 10.48 49. 5263. 10.43 49. 5556. 10.45 98. 5840. 10.47 98. 6056. 10.42 98. 6436. 10.43 98. 6790. 10.44 98. 7100. 10.41 98. 7550. 10.5 98. 7780. 10.48 98. 8090. 10.45 98. 8370. 10.56 98. sptable-1.0.pre20180612/lib/onedstds/iidscal/bd82015.dat000066400000000000000000000007271331023215600220770ustar00rootroot00000000000000# BD+8 2015 3200. 12.67 49. 3250. 12.63 49. 3300. 12.31 49. 3350. 12.37 49. 3400. 12.2 49. 3450. 12.26 49. 3500. 12.09 49. 3571. 12.16 49. 3636. 11.95 49. 3704. 11.83 49. 3862. 11.77 49. 4036. 11.2 49. 4167. 11.08 49. 4255. 11.12 49. 4464. 10.81 49. 4566. 10.71 49. 4785. 10.61 49. 5000. 10.6 49. 5263. 10.49 49. 5556. 10.39 98. 5840. 10.3 98. 6056. 10.26 98. 6436. 10.2 98. 6790. 10.16 98. 7100. 10.12 98. 7550. 10.09 98. 7780. 10.04 98. 8090. 10.04 98. 8370. 10.06 98. sptable-1.0.pre20180612/lib/onedstds/iidscal/feige110.dat000066400000000000000000000007321331023215600224070ustar00rootroot00000000000000# FEIGE 110 3200. 11.04 49. 3250. 10.99 49. 3300. 10.98 49. 3350. 11.01 49. 3400. 11.04 49. 3450. 11.07 49. 3500. 11.09 49. 3571. 11.13 49. 3636. 11.16 49. 3704. 11.21 49. 3862. 11.23 49. 4036. 11.29 49. 4167. 11.34 49. 4255. 11.38 49. 4464. 11.47 49. 4566. 11.51 49. 4785. 11.6 49. 5000. 11.68 49. 5263. 11.77 49. 5556. 11.88 98. 5840. 11.96 98. 6056. 12.03 98. 6436. 12.16 98. 6790. 12.24 98. 7100. 12.31 98. 7550. 12.47 98. 7780. 12.5 98. 8090. 12.54 98. 8370. 12.59 98. sptable-1.0.pre20180612/lib/onedstds/iidscal/feige15.dat000066400000000000000000000007251331023215600223350ustar00rootroot00000000000000# FEIGE 15 3200. 11.7 49. 3250. 11.65 49. 3300. 11.55 49. 3350. 11.55 49. 3400. 11.53 49. 3450. 11.52 49. 3500. 11.5 49. 3571. 11.49 49. 3636. 11.46 49. 3704. 11.39 49. 3862. 10.46 49. 4036. 10.2 49. 4167. 10.2 49. 4255. 10.22 49. 4464. 10.23 49. 4566. 10.25 49. 4785. 10.28 49. 5000. 10.33 49. 5263. 10.36 49. 5556. 10.41 98. 5840. 10.43 98. 6056. 10.48 98. 6436. 10.55 98. 6790. 10.6 98. 7100. 10.63 98. 7550. 10.7 98. 7780. 10.73 98. 8090. 10.74 98. 8370. 10.76 98. sptable-1.0.pre20180612/lib/onedstds/iidscal/feige24.dat000066400000000000000000000006771331023215600223430ustar00rootroot00000000000000# FEIGE 24 3350. 11.701 49. 3400. 11.725 49. 3450. 11.746 49. 3500. 11.772 49. 3571. 11.782 49. 3636. 11.842 49. 3704. 11.9 49. 3862. 11.995 49. 4036. 12.018 49. 4167. 12.02 49. 4255. 12.056 49. 4464. 12.093 49. 4566. 12.138 49. 4785. 12.215 49. 5000. 12.293 49. 5263. 12.349 49. 5556. 12.424 98. 5840. 12.494 98. 6056. 12.493 98. 6436. 12.474 98. 6790. 12.553 98. 7100. 12.5 98. 7550. 12.345 98. 7780. 12.377 98. 8090. 12.31 98. 8370. 12.277 98. sptable-1.0.pre20180612/lib/onedstds/iidscal/feige25.dat000066400000000000000000000007301331023215600223320ustar00rootroot00000000000000# FEIGE 25 3200. 12.59 49. 3250. 12.6 49. 3300. 12.56 49. 3350. 12.55 49. 3400. 12.45 49. 3450. 12.5 49. 3500. 12.49 49. 3571. 12.52 49. 3636. 12.51 49. 3704. 12.49 49. 3862. 11.87 49. 4036. 11.74 49. 4167. 11.76 49. 4255. 11.78 49. 4464. 11.83 49. 4566. 11.83 49. 4785. 11.89 49. 5000. 11.95 49. 5263. 11.97 49. 5556. 12.01 98. 5840. 12.03 98. 6056. 12.09 98. 6436. 12.19 98. 6790. 12.21 98. 7100. 12.24 98. 7550. 12.35 98. 7780. 12.34 98. 8090. 12.36 98. 8370. 12.4 98. sptable-1.0.pre20180612/lib/onedstds/iidscal/feige34.dat000066400000000000000000000007321331023215600223340ustar00rootroot00000000000000# FEIGE 34 3200. 10.28 49. 3250. 10.26 49. 3300. 10.23 49. 3350. 10.26 49. 3400. 10.28 49. 3450. 10.31 49. 3500. 10.32 49. 3571. 10.39 49. 3636. 10.41 49. 3704. 10.45 49. 3862. 10.51 49. 4036. 10.57 49. 4167. 10.64 49. 4255. 10.7 49. 4464. 10.76 49. 4566. 10.83 49. 4785. 10.94 49. 5000. 11.02 49. 5263. 11.13 49. 5556. 11.24 98. 5840. 11.34 98. 6056. 11.42 98. 6436. 11.57 98. 6790. 11.66 98. 7100. 11.73 98. 7550. 11.85 98. 7780. 11.83 98. 8090. 11.94 98. 8370. 11.93 98. sptable-1.0.pre20180612/lib/onedstds/iidscal/feige56.dat000066400000000000000000000007321331023215600223400ustar00rootroot00000000000000# FEIGE 56 3200. 11.39 49. 3250. 11.32 49. 3300. 11.3 49. 3350. 11.28 49. 3400. 11.26 49. 3450. 11.28 49. 3500. 11.26 49. 3571. 11.29 49. 3636. 11.29 49. 3704. 11.27 49. 3862. 10.78 49. 4036. 10.71 49. 4167. 10.75 49. 4255. 10.79 49. 4464. 10.83 49. 4566. 10.85 49. 4785. 10.91 49. 5000. 10.98 49. 5263. 11.04 49. 5556. 11.11 98. 5840. 11.16 98. 6056. 11.22 98. 6436. 11.31 98. 6790. 11.38 98. 7100. 11.43 98. 7550. 11.54 98. 7780. 11.59 98. 8090. 11.62 98. 8370. 11.62 98. sptable-1.0.pre20180612/lib/onedstds/iidscal/feige92.dat000066400000000000000000000007321331023215600223400ustar00rootroot00000000000000# FEIGE 92 3200. 11.73 49. 3250. 11.73 49. 3300. 11.64 49. 3350. 11.67 49. 3400. 11.67 49. 3450. 11.67 49. 3500. 11.69 49. 3571. 11.67 49. 3636. 11.7 49. 3704. 11.68 49. 3862. 11.26 49. 4036. 11.19 49. 4167. 11.19 49. 4255. 11.22 49. 4464. 11.26 49. 4566. 11.29 49. 4785. 11.36 49. 5000. 11.43 49. 5263. 11.55 49. 5556. 11.62 98. 5840. 11.69 98. 6056. 11.75 98. 6436. 11.85 98. 6790. 11.92 98. 7100. 11.95 98. 7550. 12.09 98. 7780. 12.09 98. 8090. 12.13 98. 8370. 12.19 98. sptable-1.0.pre20180612/lib/onedstds/iidscal/feige98.dat000066400000000000000000000007311331023215600223450ustar00rootroot00000000000000# FEIGE 98 3200. 13.01 49. 3250. 12.97 49. 3300. 12.93 49. 3350. 12.89 49. 3400. 12.86 49. 3450. 12.89 49. 3500. 12.86 49. 3571. 12.84 49. 3636. 12.81 49. 3704. 12.69 49. 3862. 11.72 49. 4036. 11.54 49. 4167. 11.56 49. 4255. 11.6 49. 4464. 11.61 49. 4566. 11.65 49. 4785. 11.69 49. 5000. 11.77 49. 5263. 11.78 49. 5556. 11.84 98. 5840. 11.89 98. 6056. 11.95 98. 6436. 12.01 98. 6790. 12.05 98. 7100. 12.08 98. 7550. 12.17 98. 7780. 12.2 98. 8090. 12.26 98. 8370. 12.36 98. sptable-1.0.pre20180612/lib/onedstds/iidscal/g191b2b.dat000066400000000000000000000007011331023215600221510ustar00rootroot00000000000000# G 191B2B 3350. 10.912 49. 3400. 10.945 49. 3450. 10.966 49. 3500. 10.983 49. 3571. 11.005 49. 3636. 11.043 49. 3704. 11.099 49. 3862. 11.22 49. 4036. 11.198 49. 4167. 11.23 49. 4255. 11.273 49. 4464. 11.362 49. 4566. 11.414 49. 4785. 11.508 49. 5000. 11.603 49. 5263. 11.697 49. 5556. 11.807 98. 5840. 11.933 98. 6056. 11.999 98. 6436. 12.111 98. 6790. 12.23 98. 7100. 12.32 98. 7550. 12.498 98. 7780. 12.509 98. 8090. 12.534 98. 8370. 12.582 98. sptable-1.0.pre20180612/lib/onedstds/iidscal/g4718.dat000066400000000000000000000007031331023215600216560ustar00rootroot00000000000000# G47 -18 3350. 15.079 49. 3400. 15.075 49. 3450. 15.082 49. 3500. 15.052 49. 3571. 15.122 49. 3636. 15.078 49. 3704. 15.027 49. 3862. 15.039 49. 4036. 15.028 49. 4167. 14.94 49. 4255. 15.032 49. 4464. 15.011 49. 4566. 15.128 49. 4785. 15.114 49. 5000. 15.134 49. 5263. 15.042 49. 5556. 15.179 98. 5840. 15.122 98. 6056. 15.147 98. 6436. 15.142 98. 6790. 15.197 98. 7100. 15.426 98. 7550. 15.318 98. 7780. 15.333 98. 8090. 15.396 98. 8370. 15.391 98. sptable-1.0.pre20180612/lib/onedstds/iidscal/g9937.dat000066400000000000000000000007031331023215600216660ustar00rootroot00000000000000# G99 -37 3350. 15.484 49. 3400. 15.435 49. 3450. 15.369 49. 3500. 15.305 49. 3571. 15.239 49. 3636. 15.245 49. 3704. 15.219 49. 3862. 15.187 49. 4036. 14.965 49. 4167. 14.929 49. 4255. 15.061 49. 4464. 14.75 49. 4566. 14.698 49. 4785. 14.588 49. 5000. 14.603 49. 5263. 14.471 49. 5556. 14.507 98. 5840. 14.438 98. 6056. 14.398 98. 6436. 14.318 98. 6790. 14.342 98. 7100. 14.334 98. 7550. 14.373 98. 7780. 14.365 98. 8090. 14.337 98. 8370. 14.288 98. sptable-1.0.pre20180612/lib/onedstds/iidscal/gd140.dat000066400000000000000000000007621331023215600217300ustar00rootroot00000000000000# GD 140 3200. 11.92 49. 3250. 11.973 49. 3300. 12.025 49. 3350. 12.051 49. 3400. 12.093 49. 3450. 12.101 49. 3500. 12.11 49. 3571. 12.125 49. 3636. 12.148 49. 3704. 12.192 49. 3862. 12.259 49. 4036. 12.204 49. 4167. 12.144 49. 4255. 12.146 49. 4464. 12.139 49. 4566. 12.103 49. 4785. 12.299 49. 5000. 12.31 49. 5263. 12.299 49. 5556. 12.413 98. 5840. 12.508 98. 6056. 12.584 98. 6436. 12.762 98. 6790. 12.833 98. 7100. 12.899 98. 7550. 13.068 98. 7780. 13.132 98. 8090. 13.16 98. 8370. 13.156 98. sptable-1.0.pre20180612/lib/onedstds/iidscal/gd190.dat000066400000000000000000000007631331023215600217360ustar00rootroot00000000000000# GD 190 3200. 14.271 49. 3250. 14.235 49. 3300. 14.282 49. 3350. 14.266 49. 3400. 14.285 49. 3450. 14.294 49. 3500. 14.29 49. 3571. 14.326 49. 3636. 14.351 49. 3704. 14.376 49. 3862. 14.443 49. 4036. 14.478 49. 4167. 14.36 49. 4255. 14.302 49. 4464. 14.648 49. 4566. 14.455 49. 4785. 14.425 49. 5000. 14.663 49. 5263. 14.585 49. 5556. 14.663 98. 5840. 14.892 98. 6056. 14.882 98. 6436. 14.902 98. 6790. 15.21 98. 7100. 15.058 98. 7550. 15.223 98. 7780. 15.235 98. 8090. 15.304 98. 8370. 15.308 98. sptable-1.0.pre20180612/lib/onedstds/iidscal/grw705824.dat000066400000000000000000000007671331023215600224070ustar00rootroot00000000000000# GRW +70 5824 3200. 12.359 49. 3250. 12.404 49. 3300. 12.439 49. 3350. 12.503 49. 3400. 12.521 49. 3450. 12.545 49. 3500. 12.562 49. 3571. 12.585 49. 3636. 12.579 49. 3704. 12.625 49. 3862. 12.756 49. 4036. 12.448 49. 4167. 12.445 49. 4255. 12.494 49. 4464. 12.455 49. 4566. 12.49 49. 4785. 12.62 49. 5000. 12.668 49. 5263. 12.717 49. 5556. 12.869 98. 5840. 12.894 98. 6056. 12.988 98. 6436. 13.062 98. 6790. 13.143 98. 7100. 13.247 98. 7550. 13.356 98. 7780. 13.4 98. 8090. 13.44 98. 8370. 13.408 98. sptable-1.0.pre20180612/lib/onedstds/iidscal/grw708247.dat000066400000000000000000000007041331023215600224000ustar00rootroot00000000000000# GRW +70 8247 3350. 13.114 49. 3400. 13.12 49. 3450. 13.088 49. 3500. 13.077 49. 3571. 13.074 49. 3636. 13.121 49. 3704. 13.136 49. 3862. 13.141 49. 4036. 13.07 49. 4167. 13.115 49. 4255. 13.052 49. 4464. 13.076 49. 4566. 13.087 49. 4785. 13.041 49. 5000. 13.088 49. 5263. 13.092 49. 5556. 13.121 98. 5840. 13.306 98. 6056. 13.3 98. 6436. 13.292 98. 6790. 13.343 98. 7100. 13.475 98. 7550. 13.453 98. 7780. 13.484 98. 8090. 13.48 98. 8370. 13.564 98. sptable-1.0.pre20180612/lib/onedstds/iidscal/grw738031.dat000066400000000000000000000007071331023215600223750ustar00rootroot00000000000000# GRW +73 8031 3350. 12.891 49. 3400. 12.89 49. 3450. 12.872 49. 3500. 12.899 49. 3571. 12.878 49. 3636. 12.893 49. 3704. 12.934 49. 3862. 12.962 49. 4036. 12.668 49. 4167. 12.585 49. 4255. 12.494 49. 4464. 12.487 49. 4566. 12.484 49. 4785. 12.66 49. 5000. 12.628 49. 5263. 12.671 49. 5556. 12.752 98. 5840. 12.832 98. 6056. 12.936 98. 6436. 13.035 98. 6790. 13.063 98. 7100. 13.094 98. 7550. 13.234 98. 7780. 13.265 98. 8090. 13.252 98. 8370. 13.265 98. sptable-1.0.pre20180612/lib/onedstds/iidscal/he3.dat000066400000000000000000000006771331023215600215750ustar00rootroot00000000000000# HE 3 3350. 11.724 49. 3400. 11.75 49. 3450. 11.752 49. 3500. 11.764 49. 3571. 11.775 49. 3636. 11.819 49. 3704. 11.858 49. 3862. 11.937 49. 4036. 11.757 49. 4167. 11.695 49. 4255. 11.672 49. 4464. 11.692 49. 4566. 11.721 49. 4785. 11.88 49. 5000. 11.893 49. 5263. 11.955 49. 5556. 12.054 98. 5840. 12.155 98. 6056. 12.226 98. 6436. 12.354 98. 6790. 12.435 98. 7100. 12.518 98. 7550. 12.658 98. 7780. 12.653 98. 8090. 12.706 98. 8370. 12.782 98. sptable-1.0.pre20180612/lib/onedstds/iidscal/hiltner102.dat000066400000000000000000000007301331023215600227740ustar00rootroot00000000000000# HILTNER 102 3200. 11.98 49. 3250. 11.92 49. 3300. 11.8 49. 3350. 11.78 49. 3400. 11.73 49. 3450. 11.71 49. 3500. 11.66 49. 3571. 11.63 49. 3636. 11.59 49. 3704. 11.55 49. 3862. 11.31 49. 4036. 11.24 49. 4167. 11.16 49. 4255. 11.13 49. 4464. 11.03 49. 4566. 10.95 49. 4785. 10.87 49. 5000. 10.73 49. 5263. 10.53 49. 5556. 10.35 98. 5840. 10.28 98. 6056. 10.22 98. 6436. 10.13 98. 6790. 10.01 98. 7100. 9.93 98. 7550. 9.86 98. 7780. 9.81 98. 8090. 9.74 98. 8370. 9.72 98. sptable-1.0.pre20180612/lib/onedstds/iidscal/hiltner600.dat000066400000000000000000000007341331023215600230030ustar00rootroot00000000000000# HILTNER 600 3200. 10.98 49. 3250. 10.92 49. 3300. 10.86 49. 3350. 10.84 49. 3400. 10.84 49. 3450. 10.83 49. 3500. 10.81 49. 3571. 10.82 49. 3636. 10.8 49. 3704. 10.79 49. 3862. 10.51 49. 4036. 10.47 49. 4167. 10.46 49. 4255. 10.46 49. 4464. 10.47 49. 4566. 10.45 49. 4785. 10.45 49. 5000. 10.45 49. 5263. 10.43 49. 5556. 10.42 98. 5840. 10.43 98. 6056. 10.45 98. 6436. 10.49 98. 6790. 10.5 98. 7100. 10.52 98. 7550. 10.56 98. 7780. 10.58 98. 8090. 10.59 98. 8370. 10.64 98. sptable-1.0.pre20180612/lib/onedstds/iidscal/hz14.dat000066400000000000000000000006361331023215600216770ustar00rootroot00000000000000# HZ 14 3250. 13.191 49. 3300. 13.324 49. 3350. 13.325 49. 3400. 13.385 49. 3450. 13.376 49. 3500. 13.395 49. 3571. 13.402 49. 3636. 13.469 49. 3704. 13.485 49. 3862. 13.596 49. 4036. 13.412 49. 4167. 13.46 49. 4255. 13.531 49. 4464. 13.501 49. 4566. 13.543 49. 4785. 13.665 49. 5000. 13.74 49. 5263. 13.807 49. 5556. 13.936 98. 5840. 14.009 98. 6056. 14.136 98. 6436. 14.235 98. 6790. 14.307 98. 7100. 14.426 98. sptable-1.0.pre20180612/lib/onedstds/iidscal/hz15.dat000066400000000000000000000007251331023215600216770ustar00rootroot00000000000000# HZ 15 3200. 12.68 49. 3250. 12.64 49. 3300. 12.63 49. 3350. 12.58 49. 3400. 12.59 49. 3450. 12.6 49. 3500. 12.6 49. 3571. 12.63 49. 3636. 12.62 49. 3704. 12.63 49. 3862. 12.38 49. 4036. 12.39 49. 4167. 12.39 49. 4255. 12.42 49. 4464. 12.46 49. 4566. 12.44 49. 4785. 12.46 49. 5000. 12.58 49. 5263. 12.53 49. 5556. 12.59 98. 5840. 12.64 98. 6056. 12.68 98. 6436. 12.76 98. 6790. 12.8 98. 7100. 12.84 98. 7550. 12.92 98. 7780. 12.93 98. 8090. 13.01 98. 8370. 13.08 98. sptable-1.0.pre20180612/lib/onedstds/iidscal/hz2.dat000066400000000000000000000006561331023215600216160ustar00rootroot00000000000000# HZ 2 3200. 13.655 49. 3250. 13.701 49. 3300. 13.824 49. 3350. 13.803 49. 3400. 13.851 49. 3450. 13.838 49. 3500. 13.854 49. 3571. 13.831 49. 3636. 13.898 49. 3704. 13.918 49. 3862. 13.979 49. 4036. 13.724 49. 4167. 13.698 49. 4255. 13.747 49. 4464. 13.717 49. 4566. 13.743 49. 4785. 13.89 49. 5000. 13.92 49. 5263. 13.981 49. 5556. 14.073 98. 5840. 14.175 98. 6056. 14.236 98. 6436. 14.348 98. 6790. 14.413 98. 7100. 14.509 98. sptable-1.0.pre20180612/lib/onedstds/iidscal/hz29.dat000066400000000000000000000006771331023215600217120ustar00rootroot00000000000000# HZ 29 3350. 13.783 49. 3400. 13.815 49. 3450. 13.795 49. 3500. 13.799 49. 3571. 13.744 49. 3636. 13.456 49. 3704. 13.816 49. 3862. 13.832 49. 4036. 13.863 49. 4167. 13.8 49. 4255. 13.76 49. 4464. 13.911 49. 4566. 13.858 49. 4785. 13.953 49. 5000. 14.033 49. 5263. 14.102 49. 5556. 14.164 98. 5840. 14.284 98. 6056. 14.306 98. 6436. 14.377 98. 6790. 14.479 98. 7100. 14.532 98. 7550. 14.591 98. 7780. 14.706 98. 8090. 14.774 98. 8370. 14.685 98. sptable-1.0.pre20180612/lib/onedstds/iidscal/hz4.dat000066400000000000000000000006531331023215600216150ustar00rootroot00000000000000# HZ 4 3200. 14.727 49. 3250. 14.726 49. 3300. 14.691 49. 3350. 14.749 49. 3400. 14.798 49. 3450. 14.735 49. 3500. 14.785 49. 3571. 14.8 49. 3636. 14.77 49. 3704. 14.836 49. 3862. 14.851 49. 4036. 14.527 49. 4167. 14.436 49. 4255. 14.418 49. 4464. 14.334 49. 4566. 14.3 49. 4785. 14.563 49. 5000. 14.555 49. 5263. 14.495 49. 5556. 14.565 98. 5840. 14.676 98. 6056. 14.708 98. 6436. 14.856 98. 6790. 14.893 98. 7100. 14.934 98. sptable-1.0.pre20180612/lib/onedstds/iidscal/hz43.dat000066400000000000000000000006761331023215600217050ustar00rootroot00000000000000# HZ 43 3350. 12.181 49. 3400. 12.195 49. 3450. 12.248 49. 3500. 12.278 49. 3571. 12.282 49. 3636. 12.304 49. 3704. 12.351 49. 3862. 12.477 49. 4036. 12.422 49. 4167. 12.556 49. 4255. 12.541 49. 4464. 12.61 49. 4566. 12.628 49. 4785. 12.772 49. 5000. 12.813 49. 5263. 12.884 49. 5556. 13.019 98. 5840. 13.078 98. 6056. 13.14 98. 6436. 13.252 98. 6790. 13.417 98. 7100. 13.484 98. 7550. 13.645 98. 7780. 13.635 98. 8090. 13.69 98. 8370. 13.72 98. sptable-1.0.pre20180612/lib/onedstds/iidscal/hz44.dat000066400000000000000000000007001331023215600216720ustar00rootroot00000000000000# HZ 44 3350. 10.887 49. 3400. 10.895 49. 3450. 10.916 49. 3500. 10.933 49. 3571. 10.955 49. 3636. 10.993 49. 3704. 11.049 49. 3862. 11.134 49. 4036. 11.139 49. 4167. 11.167 49. 4255. 11.214 49. 4464. 11.316 49. 4566. 11.371 49. 4785. 11.419 49. 5000. 11.503 49. 5263. 11.554 49. 5556. 11.674 98. 5840. 11.758 98. 6056. 11.818 98. 6436. 11.91 98. 6790. 12.083 98. 7100. 12.158 98. 7550. 12.352 98. 7780. 12.386 98. 8090. 12.45 98. 8370. 12.476 98. sptable-1.0.pre20180612/lib/onedstds/iidscal/hz7.dat000066400000000000000000000006571331023215600216240ustar00rootroot00000000000000# HZ 7 3200. 13.835 49. 3250. 13.917 49. 3300. 13.973 49. 3350. 14.017 49. 3400. 14.041 49. 3450. 14.029 49. 3500. 14.056 49. 3571. 14.079 49. 3636. 14.089 49. 3704. 14.102 49. 3862. 14.201 49. 4036. 13.946 49. 4167. 13.943 49. 4255. 13.973 49. 4464. 13.934 49. 4566. 13.981 49. 4785. 14.128 49. 5000. 14.145 49. 5263. 14.209 49. 5556. 14.303 98. 5840. 14.404 98. 6056. 14.491 98. 6436. 14.59 98. 6790. 14.708 98. 7100. 14.734 98. sptable-1.0.pre20180612/lib/onedstds/iidscal/kopff27.dat000066400000000000000000000007261331023215600223670ustar00rootroot00000000000000# KOPFF 27 3200. 12.14 49. 3250. 12.14 49. 3300. 12. 49. 3350. 11.97 49. 3400. 11.91 49. 3450. 11.89 49. 3500. 11.85 49. 3571. 11.8 49. 3636. 11.75 49. 3704. 11.69 49. 3862. 10.88 49. 4036. 10.42 49. 4167. 10.39 49. 4255. 10.38 49. 4464. 10.34 49. 4566. 10.36 49. 4785. 10.33 49. 5000. 10.34 49. 5263. 10.33 49. 5556. 10.31 98. 5840. 10.31 98. 6056. 10.33 98. 6436. 10.35 98. 6790. 10.34 98. 7100. 10.35 98. 7550. 10.4 98. 7780. 10.4 98. 8090. 10.42 98. 8370. 10.45 98. sptable-1.0.pre20180612/lib/onedstds/iidscal/l13633.dat000066400000000000000000000007011331023215600217350ustar00rootroot00000000000000# L1363 -3 3350. 13.599 49. 3400. 13.575 49. 3450. 13.559 49. 3500. 13.533 49. 3571. 13.489 49. 3636. 13.495 49. 3704. 13.509 49. 3862. 13.486 49. 4036. 13.361 49. 4167. 13.3 49. 4255. 13.309 49. 4464. 13.279 49. 4566. 13.306 49. 4785. 13.26 49. 5000. 13.263 49. 5263. 13.254 49. 5556. 13.276 98. 5840. 13.278 98. 6056. 13.27 98. 6436. 13.257 98. 6790. 13.319 98. 7100. 13.329 98. 7550. 13.414 98. 7780. 13.412 98. 8090. 13.408 98. 8370. 13.401 98. sptable-1.0.pre20180612/lib/onedstds/iidscal/l151234b.dat000066400000000000000000000007721331023215600221670ustar00rootroot00000000000000# L1512 -34B 3200. 13.207 49. 3250. 13.225 49. 3300. 13.244 49. 3350. 13.256 49. 3400. 13.288 49. 3450. 13.245 49. 3500. 13.243 49. 3571. 13.264 49. 3636. 13.227 49. 3704. 13.266 49. 3862. 13.302 49. 4036. 12.905 49. 4167. 12.819 49. 4255. 12.817 49. 4464. 12.704 49. 4566. 12.711 49. 4785. 12.897 49. 5000. 12.885 49. 5263. 12.866 49. 5556. 12.922 98. 5840. 13.033 98. 6056. 13.058 98. 6436. 13.199 98. 6790. 13.205 98. 7100. 13.153 98. 7550. 13.383 98. 7780. 13.384 98. 8090. 13.418 98. 8370. 13.426 98. sptable-1.0.pre20180612/lib/onedstds/iidscal/l74546a.dat000066400000000000000000000007051331023215600221140ustar00rootroot00000000000000# L745 -46A 3350. 13.529 49. 3400. 13.455 49. 3450. 13.408 49. 3500. 13.368 49. 3571. 13.333 49. 3636. 13.297 49. 3704. 13.277 49. 3862. 13.232 49. 4036. 13.167 49. 4167. 13.09 49. 4255. 13.092 49. 4464. 13.003 49. 4566. 13.016 49. 4785. 12.984 49. 5000. 12.963 49. 5263. 12.941 49. 5556. 12.906 98. 5840. 12.948 98. 6056. 12.901 98. 6436. 12.881 98. 6790. 12.916 98. 7100. 12.915 98. 7550. 12.978 98. 7780. 12.991 98. 8090. 12.974 98. 8370. 12.978 98. sptable-1.0.pre20180612/lib/onedstds/iidscal/l8702.dat000066400000000000000000000006601331023215600216620ustar00rootroot00000000000000# L 870-2 3200. 13.631 49. 3250. 13.599 49. 3300. 13.596 49. 3350. 13.576 49. 3400. 13.548 49. 3450. 13.463 49. 3500. 13.458 49. 3571. 13.447 49. 3636. 13.394 49. 3704. 13.34 49. 3862. 13.297 49. 4036. 13.112 49. 4167. 13.071 49. 4255. 13.072 49. 4464. 12.983 49. 4566. 12.952 49. 4785. 12.905 49. 5000. 12.9 49. 5263. 12.854 49. 5556. 12.823 98. 5840. 12.814 98. 6056. 12.803 98. 6436. 12.776 98. 6790. 12.753 98. 7100. 12.769 98. sptable-1.0.pre20180612/lib/onedstds/iidscal/l93080.dat000066400000000000000000000007041331023215600217440ustar00rootroot00000000000000# L930 -80 3350. 14.541 49. 3400. 14.555 49. 3450. 14.558 49. 3500. 14.55 49. 3571. 14.535 49. 3636. 14.573 49. 3704. 14.605 49. 3862. 14.652 49. 4036. 14.674 49. 4167. 14.544 49. 4255. 14.549 49. 4464. 14.732 49. 4566. 14.662 49. 4785. 14.643 49. 5000. 14.793 49. 5263. 14.777 49. 5556. 14.872 98. 5840. 15.038 98. 6056. 14.947 98. 6436. 14.987 98. 6790. 15.136 98. 7100. 15.169 98. 7550. 15.291 98. 7780. 15.286 98. 8090. 15.355 98. 8370. 15.346 98. sptable-1.0.pre20180612/lib/onedstds/iidscal/l97030.dat000066400000000000000000000007641331023215600217510ustar00rootroot00000000000000# L970 -30 3200. 13.05 49. 3250. 13.105 49. 3300. 13.112 49. 3350. 13.091 49. 3400. 13.102 49. 3450. 13.095 49. 3500. 13.095 49. 3571. 13.098 49. 3636. 13.102 49. 3704. 13.123 49. 3862. 13.149 49. 4036. 12.88 49. 4167. 12.835 49. 4255. 12.768 49. 4464. 12.682 49. 4566. 12.697 49. 4785. 12.918 49. 5000. 12.848 49. 5263. 12.884 49. 5556. 12.966 98. 5840. 13.145 98. 6056. 13.073 98. 6436. 13.278 98. 6790. 13.315 98. 7100. 13.348 98. 7550. 13.522 98. 7780. 13.53 98. 8090. 13.56 98. 8370. 13.556 98. sptable-1.0.pre20180612/lib/onedstds/iidscal/lb1240.dat000066400000000000000000000006611331023215600220130ustar00rootroot00000000000000# LB 1240 3200. 14.153 49. 3250. 14.18 49. 3300. 14.216 49. 3350. 14.269 49. 3400. 14.278 49. 3450. 14.269 49. 3500. 14.286 49. 3571. 14.234 49. 3636. 14.262 49. 3704. 14.266 49. 3862. 14.296 49. 4036. 13.919 49. 4167. 13.835 49. 4255. 13.847 49. 4464. 13.735 49. 4566. 13.742 49. 4785. 13.912 49. 5000. 13.917 49. 5263. 13.885 49. 5556. 13.936 98. 5840. 14.003 98. 6056. 14.076 98. 6436. 14.177 98. 6790. 14.22 98. 7100. 14.254 98. sptable-1.0.pre20180612/lib/onedstds/iidscal/lb227.dat000066400000000000000000000006561331023215600217430ustar00rootroot00000000000000# LB 227 3200. 15.248 49. 3250. 15.317 49. 3300. 15.403 49. 3350. 15.447 49. 3400. 15.415 49. 3450. 15.417 49. 3500. 15.462 49. 3571. 15.453 49. 3636. 15.446 49. 3704. 15.491 49. 3862. 15.56 49. 4036. 15.21 49. 4167. 15.148 49. 4255. 15.121 49. 4464. 15.06 49. 4566. 15.048 49. 4785. 15.267 49. 5000. 15.253 49. 5263. 15.244 49. 5556. 15.32 98. 5840. 15.417 98. 6056. 15.484 98. 6436. 15.647 98. 6790. 15.673 98. 7100. 15.738 98. sptable-1.0.pre20180612/lib/onedstds/iidscal/lds235b.dat000066400000000000000000000007051331023215600222640ustar00rootroot00000000000000# LDS 235B 3350. 15.445 49. 3400. 15.415 49. 3450. 15.399 49. 3500. 15.398 49. 3571. 15.427 49. 3636. 15.416 49. 3704. 15.437 49. 3862. 15.474 49. 4036. 15.537 49. 4167. 15.417 49. 4255. 15.395 49. 4464. 15.597 49. 4566. 15.498 49. 4785. 15.511 49. 5000. 15.623 49. 5263. 15.597 49. 5556. 15.656 98. 5840. 15.859 98. 6056. 15.762 98. 6436. 15.796 98. 6790. 15.926 98. 7100. 15.988 98. 7550. 16.102 98. 7780. 16.116 98. 8090. 16.135 98. 8370. 16.269 98. sptable-1.0.pre20180612/lib/onedstds/iidscal/lds749b.dat000066400000000000000000000007661331023215600223050ustar00rootroot00000000000000# LDS 749B 3200. 14.705 49. 3250. 14.446 49. 3300. 14.558 49. 3350. 14.525 49. 3400. 14.523 49. 3450. 14.531 49. 3500. 14.498 49. 3571. 14.506 49. 3636. 14.538 49. 3704. 14.544 49. 3862. 14.62 49. 4036. 14.513 49. 4167. 14.518 49. 4255. 14.504 49. 4464. 14.655 49. 4566. 14.546 49. 4785. 14.546 49. 5000. 14.685 49. 5263. 14.651 49. 5556. 14.703 98. 5840. 14.852 98. 6056. 14.828 98. 6436. 14.848 98. 6790. 14.948 98. 7100. 15.003 98. 7550. 15.106 98. 7780. 15.115 98. 8090. 15.16 98. 8370. 15.178 98. sptable-1.0.pre20180612/lib/onedstds/iidscal/names.men000066400000000000000000000015071331023215600222210ustar00rootroot00000000000000# Table of alternate names mapped to the names in this directory bd7781 40erib eg33 40erib sao131065 40erib eg158 feige110 eg20 feige24 eg71 feige34 eg247 g191b2b eg182 g4718 eg248 g9937 eg184 gd140 eg193 gd190 eg102 grw705824 eg129 grw708247 eg144 grw738031 eg50 he3 eg42 hz14 eg31 hz2 amcvn hz29 eg91 hz29 eg26 hz4 eg98 hz43 l14094 hz43 eg39 hz7 eg148 l13633 g12627 l13633 g14563 l13633 lft1655 l13633 eg162 l151234b eg54 l74546a eg11 l8702 eg149 l93080 g2631 l93080 ltt8702 l93080 eg76 l97030 g16350 l97030 ltt4099 l97030 eg28 lb1240 g88 lb1240 eg29 lb227 gh7112 lb227 lp414101 lb227 eg63 lds235b eg145 lds749b g2610 lds749b ltt16294 lds749b eg79 ross627 eg119 ross640 eg67 sa29130 eg77 ton573 gd128 ton573 l140349 ton573 ltt13002 ton573 eg139 wolf1346 bd73632 wolf485a eg99 wolf485a sptable-1.0.pre20180612/lib/onedstds/iidscal/ross627.dat000066400000000000000000000007571331023215600223420ustar00rootroot00000000000000# ROSS 627 3200. 14.887 49. 3250. 14.896 49. 3300. 14.85 49. 3350. 14.813 49. 3400. 14.802 49. 3450. 14.755 49. 3500. 14.725 49. 3571. 14.688 49. 3636. 14.656 49. 3704. 14.621 49. 3862. 14.57 49. 4036. 14.5 49. 4167. 14.393 49. 4255. 14.364 49. 4464. 14.333 49. 4566. 14.258 49. 4785. 14.217 49. 5000. 14.193 49. 5263. 14.14 49. 5556. 14.12 98. 5840. 14.082 98. 6056. 14.076 98. 6436. 14.082 98. 6790. 14.077 98. 7100. 14.039 98. 7550. 14.15 98. 7780. 14.11 98. 8090. 14.17 98. 8370. 14.026 98. sptable-1.0.pre20180612/lib/onedstds/iidscal/ross640.dat000066400000000000000000000007001331023215600223210ustar00rootroot00000000000000# ROSS 640 3350. 14.175 49. 3400. 14.145 49. 3450. 14.11 49. 3500. 14.073 49. 3571. 14.024 49. 3636. 13.997 49. 3704. 14.009 49. 3862. 14.138 49. 4036. 13.961 49. 4167. 13.83 49. 4255. 13.839 49. 4464. 13.81 49. 4566. 13.816 49. 4785. 13.8 49. 5000. 13.793 49. 5263. 13.791 49. 5556. 13.824 98. 5840. 13.868 98. 6056. 13.874 98. 6436. 13.896 98. 6790. 13.905 98. 7100. 13.941 98. 7550. 14.023 98. 7780. 14.024 98. 8090. 14.028 98. 8370. 14.024 98. sptable-1.0.pre20180612/lib/onedstds/iidscal/sa29130.dat000066400000000000000000000007671331023215600221200ustar00rootroot00000000000000# SA29 -130 3200. 13.459 49. 3250. 13.515 49. 3300. 13.505 49. 3350. 13.494 49. 3400. 13.493 49. 3450. 13.487 49. 3500. 13.459 49. 3571. 13.519 49. 3636. 13.49 49. 3704. 13.514 49. 3862. 13.564 49. 4036. 13.064 49. 4167. 12.974 49. 4255. 12.999 49. 4464. 12.941 49. 4566. 12.96 49. 4785. 13.144 49. 5000. 13.148 49. 5263. 13.139 49. 5556. 13.213 98. 5840. 13.305 98. 6056. 13.372 98. 6436. 13.482 98. 6790. 13.665 98. 7100. 13.603 98. 7550. 13.779 98. 7780. 13.796 98. 8090. 13.843 98. 8370. 13.834 98. sptable-1.0.pre20180612/lib/onedstds/iidscal/standards.men000066400000000000000000000024701331023215600231010ustar00rootroot00000000000000Standard stars in onedstds$iidscal/ 40erib eg50 eg149 g16350 hz4 lds235b amcvn eg54 eg158 g191b2b hz7 lds749b bd253941 eg63 eg162 g2610 hz14 lft1655 bd284211 eg67 eg182 g2631 hz15 lp414101 bd332642 eg71 eg184 g4718 hz29 ltt13002 bd404032 eg76 eg193 g88 hz43 ltt16294 bd73632 eg77 eg247 g9937 hz44 ltt4099 bd7781 eg79 eg248 gd128 kopff27 ltt8702 bd82015 eg91 feige15 gd140 l13633 ross627 eg11 eg98 feige24 gd190 l140349 ross640 eg20 eg99 feige25 gh7112 l14094 sa29130 eg26 eg102 feige34 grw705824 l151234b sao131065 eg28 eg119 feige56 grw708247 l74546a ton573 eg29 eg129 feige92 grw738031 l8702 wolf1346 eg31 eg139 feige98 he3 l93080 wolf485a eg33 eg144 feige110 hiltner102 l97030 eg39 eg145 g12627 hiltner600 lb1240 eg42 eg148 g14563 hz2 lb227 sptable-1.0.pre20180612/lib/onedstds/iidscal/ton573.dat000066400000000000000000000006621331023215600221470ustar00rootroot00000000000000# TON 573 3350. 15.763 49. 3400. 15.877 49. 3450. 15.859 49. 3500. 15.878 49. 3571. 15.774 49. 3636. 15.721 49. 3704. 15.824 49. 3862. 15.717 49. 4036. 15.843 49. 4167. 15.671 49. 4255. 15.636 49. 4464. 15.961 49. 4566. 15.672 49. 4785. 15.843 49. 5000. 15.899 49. 5263. 15.844 49. 5556. 15.865 98. 5840. 16.002 98. 6056. 16.103 98. 6436. 16.111 98. 6790. 16.15 98. 7100. 16.275 98. 7550. 16.251 98. 7780. 16.317 98. 8090. 16.488 98. sptable-1.0.pre20180612/lib/onedstds/iidscal/wolf1346.dat000066400000000000000000000007641331023215600224000ustar00rootroot00000000000000# WOLF 1346 3200. 11.209 49. 3250. 11.178 49. 3300. 11.238 49. 3350. 11.264 49. 3400. 11.269 49. 3450. 11.285 49. 3500. 11.299 49. 3571. 11.27 49. 3636. 11.342 49. 3704. 11.375 49. 3862. 11.439 49. 4036. 11.15 49. 4167. 11.194 49. 4255. 11.188 49. 4464. 11.168 49. 4566. 11.193 49. 4785. 11.324 49. 5000. 11.392 49. 5263. 11.442 49. 5556. 11.534 98. 5840. 11.607 98. 6056. 11.698 98. 6436. 11.806 98. 6790. 11.89 98. 7100. 11.937 98. 7550. 12.025 98. 7780. 12.1 98. 8090. 12.207 98. 8370. 12.198 98. sptable-1.0.pre20180612/lib/onedstds/iidscal/wolf485a.dat000066400000000000000000000007021331023215600224540ustar00rootroot00000000000000# WOLF 485A 3350. 12.497 49. 3400. 12.505 49. 3450. 12.495 49. 3500. 12.48 49. 3571. 12.459 49. 3636. 12.465 49. 3704. 12.479 49. 3862. 12.528 49. 4036. 12.284 49. 4167. 12.241 49. 4255. 12.171 49. 4464. 12.075 49. 4566. 12.052 49. 4785. 12.276 49. 5000. 12.183 49. 5263. 12.174 49. 5556. 12.224 98. 5840. 12.278 98. 6056. 12.267 98. 6436. 12.445 98. 6790. 12.484 98. 7100. 12.53 98. 7550. 12.68 98. 7780. 12.686 98. 8090. 12.688 98. 8370. 12.72 98. sptable-1.0.pre20180612/lib/onedstds/irscal/000077500000000000000000000000001331023215600202575ustar00rootroot00000000000000sptable-1.0.pre20180612/lib/onedstds/irscal/bd082015.dat000066400000000000000000000023421331023215600220170ustar00rootroot00000000000000# BD+08 2015 3200. 12.67 49. 3250. 12.63 49. 3300. 12.31 49. 3350. 12.37 49. 3400. 12.2 49. 3450. 12.26 49. 3500. 12.09 49. 3571. 12.16 49. 3636. 11.95 49. 3704. 11.83 49. 3760. 11.81 49. 3816. 11.78 49. 3862. 11.77 49. 3945. 11.5 49. 4000. 11.33 49. 4036. 11.2 49. 4065. 11.17 49. 4167. 11.08 49. 4190. 11.09 49. 4255. 11.12 49. 4290. 11.07 49. 4370. 10.96 49. 4464. 10.81 49. 4498. 10.78 49. 4566. 10.71 49. 4604. 10.69 49. 4678. 10.67 49. 4735. 10.64 49. 4785. 10.61 49. 4825. 10.61 49. 4914. 10.6 49. 5000. 10.6 49. 5067. 10.58 49. 5145. 10.55 49. 5206. 10.52 49. 5263. 10.49 49. 5341. 10.47 98. 5440. 10.43 98. 5504. 10.4 98. 5556. 10.39 98. 5630. 10.37 98. 5710. 10.34 98. 5775. 10.33 98. 5840. 10.3 98. 5910. 10.29 98. 5980. 10.28 98. 6056. 10.26 98. 6140. 10.25 98. 6220. 10.24 98. 6290. 10.23 98. 6365. 10.21 98. 6436. 10.2 98. 6473. 10.2 98. 6530. 10.19 98. 6600. 10.18 98. 6670. 10.18 98. 6740. 10.17 98. 6790. 10.16 98. 6850. 10.15 98. 6975. 10.14 98. 7055. 10.13 98. 7100. 10.12 98. 7150. 10.12 98. 7220. 10.11 98. 7270. 10.11 98. 7365. 10.1 98. 7460. 10.1 98. 7550. 10.09 98. 7580. 10.09 98. 7725. 10.05 98. 7780. 10.04 98. 7820. 10.04 98. 7910. 10.04 98. 8000. 10.04 98. 8090. 10.04 98. 8210. 10.06 98. 8260. 10.06 98. 8370. 10.06 98. sptable-1.0.pre20180612/lib/onedstds/irscal/bd174708.dat000066400000000000000000000023461331023215600220360ustar00rootroot00000000000000# BD+17 4708 3200. 10.815 49. 3250. 10.788 49. 3300. 10.746 49. 3350. 10.701 49. 3400. 10.652 49. 3450. 10.627 49. 3500. 10.587 49. 3571. 10.531 49. 3636. 10.488 49. 3704. 10.437 49. 3760. 10.307 49. 3816. 10.16 49. 3862. 10.135 49. 3945. 10.12 49. 4000. 9.89 49. 4036. 9.857 49. 4065. 9.87 49. 4167. 9.784 49. 4190. 9.767 49. 4255. 9.768 49. 4290. 9.815 49. 4370. 9.75 49. 4464. 9.667 49. 4498. 9.656 49. 4566. 9.63 49. 4604. 9.621 49. 4678. 9.595 49. 4735. 9.582 49. 4785. 9.567 49. 4825. 9.595 49. 4914. 9.56 49. 5000. 9.52 49. 5067. 9.506 49. 5145. 9.488 49. 5206. 9.482 49. 5263. 9.46 49. 5341. 9.446 98. 5440. 9.427 98. 5504. 9.416 98. 5556. 9.406 98. 5630. 9.393 98. 5710. 9.381 98. 5775. 9.369 98. 5840. 9.36 98. 5910. 9.351 98. 5980. 9.34 98. 6056. 9.331 98. 6140. 9.323 98. 6220. 9.315 98. 6290. 9.307 98. 6365. 9.3 98. 6436. 9.29 98. 6473. 9.29 98. 6530. 9.293 98. 6600. 9.288 98. 6670. 9.272 98. 6740. 9.265 98. 6790. 9.26 98. 6850. 9.257 98. 6975. 9.245 98. 7055. 9.24 98. 7100. 9.235 98. 7150. 9.232 98. 7220. 9.228 98. 7270. 9.227 98. 7365. 9.222 98. 7460. 9.216 98. 7550. 9.21 98. 7580. 9.21 98. 7725. 9.205 98. 7780. 9.206 98. 7820. 9.204 98. 7910. 9.203 98. 8000. 9.201 98. 8090. 9.2 98. 8210. 9.198 98. 8260. 9.197 98. 8370. 9.196 98. sptable-1.0.pre20180612/lib/onedstds/irscal/bd253941.dat000066400000000000000000000023341331023215600220300ustar00rootroot00000000000000# BD+25 3941 3200. 12.11 49. 3250. 12.05 49. 3300. 11.98 49. 3350. 11.91 49. 3400. 11.85 49. 3450. 11.82 49. 3500. 11.77 49. 3571. 11.73 49. 3636. 11.7 49. 3704. 11.63 49. 3760. 11.5 49. 3816. 11.35 49. 3862. 11.26 49. 3945. 11.22 49. 4000. 11.18 49. 4036. 11.16 49. 4065. 11.15 49. 4167. 11.09 49. 4190. 11.08 49. 4255. 11.04 49. 4290. 11.03 49. 4370. 11. 49. 4464. 10.96 49. 4498. 10.93 49. 4566. 10.87 49. 4604. 10.86 49. 4678. 10.83 49. 4735. 10.81 49. 4785. 10.79 49. 4825. 10.77 49. 4914. 10.73 49. 5000. 10.69 49. 5067. 10.64 49. 5145. 10.58 49. 5206. 10.53 49. 5263. 10.49 49. 5341. 10.46 98. 5440. 10.41 98. 5504. 10.38 98. 5556. 10.36 98. 5630. 10.35 98. 5710. 10.33 98. 5775. 10.32 98. 5840. 10.31 98. 5910. 10.3 98. 5980. 10.28 98. 6056. 10.27 98. 6140. 10.25 98. 6220. 10.24 98. 6290. 10.23 98. 6365. 10.21 98. 6436. 10.2 98. 6473. 10.19 98. 6530. 10.18 98. 6600. 10.16 98. 6670. 10.15 98. 6740. 10.13 98. 6790. 10.12 98. 6850. 10.11 98. 6975. 10.09 98. 7055. 10.08 98. 7100. 10.07 98. 7150. 10.07 98. 7220. 10.06 98. 7270. 10.05 98. 7365. 10.03 98. 7460. 10.02 98. 7550. 10.01 98. 7580. 10. 98. 7725. 9.99 98. 7780. 9.98 98. 7820. 9.98 98. 7910. 9.98 98. 8000. 9.97 98. 8090. 9.96 98. 8210. 9.96 98. 8260. 9.96 98. 8370. 9.97 98. sptable-1.0.pre20180612/lib/onedstds/irscal/bd262606.dat000066400000000000000000000022511331023215600220240ustar00rootroot00000000000000# BD+26 2606 3200. 11.04 49. 3250. 10.99 49. 3300. 10.95 49. 3350. 10.9 49. 3400. 10.87 49. 3450. 10.83 49. 3500. 10.79 49. 3571. 10.74 49. 3636. 10.7 49. 3704. 10.66 49. 3760. 10.54 49. 3816. 10.39 49. 3862. 10.37 49. 3945. 10.31 49. 4000. 10.14 49. 4036. 10.12 49. 4065. 10.11 49. 4167. 10.04 49. 4190. 10.02 49. 4255. 10. 49. 4290. 10. 49. 4370. 9.99 49. 4464. 9.94 49. 4498. 9.93 49. 4566. 9.91 49. 4604. 9.89 49. 4678. 9.87 49. 4735. 9.85 49. 4785. 9.83 49. 4825. 9.85 49. 4914. 9.82 49. 5000. 9.77 49. 5067. 9.75 49. 5145. 9.74 49. 5206. 9.73 49. 5263. 9.71 49. 5341. 9.7 98. 5440. 9.69 98. 5504. 9.68 98. 5556. 9.67 98. 5630. 9.65 98. 5710. 9.64 98. 5775. 9.63 98. 5840. 9.62 98. 5910. 9.61 98. 5980. 9.6 98. 6056. 9.59 98. 6140. 9.58 98. 6220. 9.57 98. 6290. 9.57 98. 6365. 9.56 98. 6436. 9.55 98. 6473. 9.55 98. 6530. 9.56 98. 6600. 9.55 98. 6670. 9.54 98. 6740. 9.53 98. 6790. 9.53 98. 6850. 9.52 98. 6975. 9.51 98. 7055. 9.51 98. 7100. 9.5 98. 7150. 9.5 98. 7220. 9.5 98. 7270. 9.49 98. 7365. 9.49 98. 7460. 9.49 98. 7550. 9.48 98. 7580. 9.48 98. 7725. 9.48 98. 7780. 9.47 98. 7820. 9.47 98. 7910. 9.47 98. 8000. 9.47 98. 8090. 9.46 98. 8210. 9.46 98. 8260. 9.46 98. 8370. 9.46 98. sptable-1.0.pre20180612/lib/onedstds/irscal/bd284211.dat000066400000000000000000000023271331023215600220240ustar00rootroot00000000000000# BD+28 4211 3200. 9.62 49. 3250. 9.59 49. 3300. 9.56 49. 3350. 9.58 49. 3400. 9.59 49. 3450. 9.64 49. 3500. 9.66 49. 3571. 9.71 49. 3636. 9.74 49. 3704. 9.77 49. 3760. 9.79 49. 3816. 9.82 49. 3862. 9.83 49. 3945. 9.87 49. 4000. 9.91 49. 4036. 9.93 49. 4065. 9.94 49. 4167. 9.99 49. 4190. 10. 49. 4255. 10.05 49. 4290. 10.06 49. 4370. 10.08 49. 4464. 10.11 49. 4498. 10.14 49. 4566. 10.19 49. 4604. 10.2 49. 4678. 10.23 49. 4735. 10.25 49. 4785. 10.27 49. 4825. 10.28 49. 4914. 10.33 49. 5000. 10.37 49. 5067. 10.38 49. 5145. 10.41 49. 5206. 10.43 49. 5263. 10.44 49. 5341. 10.47 98. 5440. 10.52 98. 5504. 10.55 98. 5556. 10.56 98. 5630. 10.58 98. 5710. 10.62 98. 5775. 10.64 98. 5840. 10.67 98. 5910. 10.69 98. 5980. 10.71 98. 6056. 10.73 98. 6140. 10.76 98. 6220. 10.78 98. 6290. 10.8 98. 6365. 10.83 98. 6436. 10.85 98. 6473. 10.86 98. 6530. 10.87 98. 6600. 10.88 98. 6670. 10.91 98. 6740. 10.92 98. 6790. 10.93 98. 6850. 10.95 98. 6975. 10.98 98. 7055. 11.01 98. 7100. 11.02 98. 7150. 11.03 98. 7220. 11.05 98. 7270. 11.06 98. 7365. 11.07 98. 7460. 11.11 98. 7550. 11.13 98. 7580. 11.14 98. 7725. 11.16 98. 7780. 11.16 98. 7820. 11.17 98. 7910. 11.19 98. 8000. 11.21 98. 8090. 11.22 98. 8210. 11.24 98. 8260. 11.25 98. 8370. 11.27 98. sptable-1.0.pre20180612/lib/onedstds/irscal/bd332642.dat000066400000000000000000000023461331023215600220270ustar00rootroot00000000000000# BD+33 2642 3200. 10.71 49. 3250. 10.66 49. 3300. 10.63 49. 3350. 10.63 49. 3400. 10.65 49. 3450. 10.67 49. 3500. 10.65 49. 3571. 10.69 49. 3636. 10.7 49. 3704. 10.67 49. 3760. 10.58 49. 3816. 10.48 49. 3862. 10.43 49. 3945. 10.45 49. 4000. 10.46 49. 4036. 10.47 49. 4065. 10.48 49. 4167. 10.52 49. 4190. 10.52 49. 4255. 10.54 49. 4290. 10.54 49. 4370. 10.57 49. 4464. 10.59 49. 4498. 10.6 49. 4566. 10.62 49. 4604. 10.63 49. 4678. 10.64 49. 4735. 10.66 49. 4785. 10.67 49. 4825. 10.69 49. 4914. 10.73 49. 5000. 10.77 49. 5067. 10.78 49. 5145. 10.79 49. 5206. 10.8 49. 5263. 10.81 49. 5341. 10.83 98. 5440. 10.85 98. 5504. 10.87 98. 5556. 10.88 98. 5630. 10.9 98. 5710. 10.92 98. 5775. 10.94 98. 5840. 10.95 98. 5910. 10.96 98. 5980. 10.98 98. 6056. 11. 98. 6140. 11.02 98. 6220. 11.04 98. 6290. 11.06 98. 6365. 11.08 98. 6436. 11.1 98. 6473. 11.11 98. 6530. 11.12 98. 6600. 11.12 98. 6670. 11.14 98. 6740. 11.14 98. 6790. 11.15 98. 6850. 11.15 98. 6975. 11.16 98. 7055. 11.16 98. 7100. 11.16 98. 7150. 11.17 98. 7220. 11.18 98. 7270. 11.19 98. 7365. 11.21 98. 7460. 11.23 98. 7550. 11.25 98. 7580. 11.25 98. 7725. 11.25 98. 7780. 11.25 98. 7820. 11.26 98. 7910. 11.28 98. 8000. 11.29 98. 8090. 11.31 98. 8210. 11.36 98. 8260. 11.38 98. 8370. 11.42 98. sptable-1.0.pre20180612/lib/onedstds/irscal/bd404032.dat000066400000000000000000000023451331023215600220170ustar00rootroot00000000000000# BD+40 4032 3200. 11.06 49. 3250. 11. 49. 3300. 10.92 49. 3350. 10.92 49. 3400. 10.9 49. 3450. 10.88 49. 3500. 10.87 49. 3571. 10.87 49. 3636. 10.87 49. 3704. 10.86 49. 3760. 10.76 49. 3816. 10.66 49. 3862. 10.6 49. 3945. 10.58 49. 4000. 10.57 49. 4036. 10.56 49. 4065. 10.55 49. 4167. 10.53 49. 4190. 10.53 49. 4255. 10.52 49. 4290. 10.52 49. 4370. 10.51 49. 4464. 10.5 49. 4498. 10.49 49. 4566. 10.48 49. 4604. 10.48 49. 4678. 10.48 49. 4735. 10.48 49. 4785. 10.48 49. 4825. 10.48 49. 4914. 10.48 49. 5000. 10.48 49. 5067. 10.47 49. 5145. 10.45 49. 5206. 10.44 49. 5263. 10.43 49. 5341. 10.44 98. 5440. 10.44 98. 5504. 10.45 98. 5556. 10.45 98. 5630. 10.46 98. 5710. 10.46 98. 5775. 10.46 98. 5840. 10.47 98. 5910. 10.45 98. 5980. 10.44 98. 6056. 10.42 98. 6140. 10.42 98. 6220. 10.42 98. 6290. 10.43 98. 6365. 10.43 98. 6436. 10.43 98. 6473. 10.43 98. 6530. 10.43 98. 6600. 10.44 98. 6670. 10.44 98. 6740. 10.44 98. 6790. 10.44 98. 6850. 10.43 98. 6975. 10.42 98. 7055. 10.42 98. 7100. 10.41 98. 7150. 10.42 98. 7220. 10.44 98. 7270. 10.44 98. 7365. 10.46 98. 7460. 10.48 98. 7550. 10.5 98. 7580. 10.5 98. 7725. 10.48 98. 7780. 10.48 98. 7820. 10.48 98. 7910. 10.47 98. 8000. 10.46 98. 8090. 10.45 98. 8210. 10.5 98. 8260. 10.52 98. 8370. 10.56 98. sptable-1.0.pre20180612/lib/onedstds/irscal/feige110.dat000066400000000000000000000023431331023215600222540ustar00rootroot00000000000000# FEIGE 110 3200. 11.04 49. 3250. 10.99 49. 3300. 10.98 49. 3350. 11.01 49. 3400. 11.04 49. 3450. 11.07 49. 3500. 11.09 49. 3571. 11.13 49. 3636. 11.16 49. 3704. 11.21 49. 3760. 11.22 49. 3816. 11.22 49. 3862. 11.23 49. 3945. 11.26 49. 4000. 11.27 49. 4036. 11.29 49. 4065. 11.3 49. 4167. 11.34 49. 4190. 11.35 49. 4255. 11.38 49. 4290. 11.39 49. 4370. 11.43 49. 4464. 11.47 49. 4498. 11.48 49. 4566. 11.51 49. 4604. 11.53 49. 4678. 11.56 49. 4735. 11.58 49. 4785. 11.6 49. 4825. 11.62 49. 4914. 11.65 49. 5000. 11.68 49. 5067. 11.7 49. 5145. 11.73 49. 5206. 11.76 49. 5263. 11.77 49. 5341. 11.8 98. 5440. 11.83 98. 5504. 11.86 98. 5556. 11.88 98. 5630. 11.9 98. 5710. 11.93 98. 5775. 11.94 98. 5840. 11.96 98. 5910. 11.98 98. 5980. 12.01 98. 6056. 12.03 98. 6140. 12.06 98. 6220. 12.08 98. 6290. 12.11 98. 6365. 12.14 98. 6436. 12.16 98. 6473. 12.17 98. 6530. 12.18 98. 6600. 12.2 98. 6670. 12.21 98. 6740. 12.23 98. 6790. 12.24 98. 6850. 12.25 98. 6975. 12.28 98. 7055. 12.3 98. 7100. 12.31 98. 7150. 12.33 98. 7220. 12.35 98. 7270. 12.37 98. 7365. 12.4 98. 7460. 12.44 98. 7550. 12.47 98. 7580. 12.47 98. 7725. 12.49 98. 7780. 12.5 98. 7820. 12.51 98. 7910. 12.52 98. 8000. 12.53 98. 8090. 12.54 98. 8210. 12.56 98. 8260. 12.57 98. 8370. 12.59 98. sptable-1.0.pre20180612/lib/onedstds/irscal/feige15.dat000066400000000000000000000024211331023215600221750ustar00rootroot00000000000000# FEIGE 15 3200. 11.7 49. 3250. 11.65 49. 3300. 11.55 49. 3350. 11.55 49. 3400. 11.53 49. 3450. 11.52 49. 3500. 11.5 49. 3571. 11.49 49. 3636. 11.46 49. 3704. 11.39 49. 3760. 10.261 49. 3816. 10.788 49. 3862. 10.385 49. 3945. 10.675 49. 4000. 10.345 49. 4036. 10.2 49. 4065. 10.233 49. 4167. 10.2 49. 4190. 10.213 49. 4255. 10.22 49. 4290. 10.223 49. 4370. 10.358 49. 4464. 10.23 49. 4498. 10.235 49. 4566. 10.25 49. 4604. 10.256 49. 4678. 10.266 49. 4735. 10.273 49. 4785. 10.28 49. 4825. 10.357 49. 4914. 10.31 49. 5000. 10.33 49. 5067. 10.338 49. 5145. 10.346 49. 5206. 10.351 49. 5263. 10.36 49. 5341. 10.372 98. 5440. 10.39 98. 5504. 10.4 98. 5556. 10.41 98. 5630. 10.415 98. 5710. 10.421 98. 5775. 10.427 98. 5840. 10.43 98. 5910. 10.448 98. 5980. 10.464 98. 6056. 10.48 98. 6140. 10.497 98. 6220. 10.511 98. 6290. 10.524 98. 6365. 10.538 98. 6436. 10.55 98. 6473. 10.554 98. 6530. 10.62 98. 6600. 10.698 98. 6670. 10.574 98. 6740. 10.594 98. 6790. 10.6 98. 6850. 10.606 98. 6975. 10.618 98. 7055. 10.624 98. 7100. 10.63 98. 7150. 10.638 98. 7220. 10.648 98. 7270. 10.656 98. 7365. 10.67 98. 7460. 10.684 98. 7550. 10.7 98. 7580. 10.703 98. 7725. 10.726 98. 7780. 10.73 98. 7820. 10.733 98. 7910. 10.736 98. 8000. 10.739 98. 8090. 10.74 98. 8210. 10.751 98. 8260. 10.756 98. 8370. 10.76 98. sptable-1.0.pre20180612/lib/onedstds/irscal/feige25.dat000066400000000000000000000024211331023215600221760ustar00rootroot00000000000000# FEIGE 25 3200. 12.59 49. 3250. 12.6 49. 3300. 12.56 49. 3350. 12.55 49. 3400. 12.45 49. 3450. 12.5 49. 3500. 12.49 49. 3571. 12.52 49. 3636. 12.51 49. 3704. 12.49 49. 3760. 12.237 49. 3816. 11.9 49. 3862. 11.736 49. 3945. 11.82 49. 4000. 11.767 49. 4036. 11.74 49. 4065. 11.739 49. 4167. 11.76 49. 4190. 11.767 49. 4255. 11.78 49. 4290. 11.789 49. 4370. 11.831 49. 4464. 11.83 49. 4498. 11.83 49. 4566. 11.83 49. 4604. 11.843 49. 4678. 11.862 49. 4735. 11.878 49. 4785. 11.89 49. 4825. 11.912 49. 4914. 11.932 49. 5000. 11.95 49. 5067. 11.955 49. 5145. 11.961 49. 5206. 11.966 49. 5263. 11.97 49. 5341. 11.98 98. 5440. 11.994 98. 5504. 12.002 98. 5556. 12.01 98. 5630. 12.017 98. 5710. 12.022 98. 5775. 12.028 98. 5840. 12.03 98. 5910. 12.049 98. 5980. 12.067 98. 6056. 12.09 98. 6140. 12.11 98. 6220. 12.131 98. 6290. 12.149 98. 6365. 12.169 98. 6436. 12.19 98. 6473. 12.191 98. 6530. 12.2 98. 6600. 12.253 98. 6670. 12.203 98. 6740. 12.209 98. 6790. 12.21 98. 6850. 12.229 98. 6975. 12.23 98. 7055. 12.236 98. 7100. 12.24 98. 7150. 12.252 98. 7220. 12.271 98. 7270. 12.284 98. 7365. 12.308 98. 7460. 12.331 98. 7550. 12.35 98. 7580. 12.351 98. 7725. 12.342 98. 7780. 12.34 98. 7820. 12.343 98. 7910. 12.349 98. 8000. 12.353 98. 8090. 12.36 98. 8210. 12.378 98. 8260. 12.385 98. 8370. 12.4 98. sptable-1.0.pre20180612/lib/onedstds/irscal/feige34.dat000066400000000000000000000023441331023215600222020ustar00rootroot00000000000000# FEIGE 34 3200. 10.28 49. 3250. 10.26 49. 3300. 10.23 49. 3350. 10.26 49. 3400. 10.28 49. 3450. 10.31 49. 3500. 10.32 49. 3571. 10.39 49. 3636. 10.41 49. 3704. 10.45 49. 3760. 10.47 49. 3816. 10.5 49. 3862. 10.51 49. 3945. 10.54 49. 4000. 10.56 49. 4036. 10.57 49. 4065. 10.58 49. 4167. 10.64 49. 4190. 10.65 49. 4255. 10.7 49. 4290. 10.71 49. 4370. 10.74 49. 4464. 10.76 49. 4498. 10.78 49. 4566. 10.83 49. 4604. 10.85 49. 4678. 10.88 49. 4735. 10.92 49. 4785. 10.94 49. 4825. 10.95 49. 4914. 10.99 49. 5000. 11.02 49. 5067. 11.04 49. 5145. 11.08 49. 5206. 11.11 49. 5263. 11.13 49. 5341. 11.17 98. 5440. 11.2 98. 5504. 11.22 98. 5556. 11.24 98. 5630. 11.27 98. 5710. 11.3 98. 5775. 11.32 98. 5840. 11.34 98. 5910. 11.37 98. 5980. 11.39 98. 6056. 11.42 98. 6140. 11.45 98. 6220. 11.48 98. 6290. 11.51 98. 6365. 11.54 98. 6436. 11.57 98. 6473. 11.58 98. 6530. 11.6 98. 6600. 11.62 98. 6670. 11.63 98. 6740. 11.65 98. 6790. 11.66 98. 6850. 11.67 98. 6975. 11.7 98. 7055. 11.72 98. 7100. 11.73 98. 7150. 11.75 98. 7220. 11.77 98. 7270. 11.78 98. 7365. 11.8 98. 7460. 11.83 98. 7550. 11.85 98. 7580. 11.85 98. 7725. 11.84 98. 7780. 11.83 98. 7820. 11.85 98. 7910. 11.88 98. 8000. 11.91 98. 8090. 11.94 98. 8210. 11.94 98. 8260. 11.94 98. 8370. 11.93 98. sptable-1.0.pre20180612/lib/onedstds/irscal/feige56.dat000066400000000000000000000024251331023215600222060ustar00rootroot00000000000000# FEIGE 56 3200. 11.39 49. 3250. 11.32 49. 3300. 11.3 49. 3350. 11.28 49. 3400. 11.26 49. 3450. 11.28 49. 3500. 11.26 49. 3571. 11.29 49. 3636. 11.29 49. 3704. 11.27 49. 3760. 11.159 49. 3816. 10.858 49. 3862. 10.691 49. 3945. 10.776 49. 4000. 10.737 49. 4036. 10.71 49. 4065. 10.71 49. 4167. 10.75 49. 4190. 10.76 49. 4255. 10.79 49. 4290. 10.799 49. 4370. 10.834 49. 4464. 10.83 49. 4498. 10.836 49. 4566. 10.85 49. 4604. 10.86 49. 4678. 10.882 49. 4735. 10.9 49. 4785. 10.91 49. 4825. 10.938 49. 4914. 10.956 49. 5000. 10.98 49. 5067. 10.995 49. 5145. 11.013 49. 5206. 11.028 49. 5263. 11.04 49. 5341. 11.058 98. 5440. 11.082 98. 5504. 11.099 98. 5556. 11.11 98. 5630. 11.123 98. 5710. 11.138 98. 5775. 11.149 98. 5840. 11.16 98. 5910. 11.18 98. 5980. 11.197 98. 6056. 11.22 98. 6140. 11.238 98. 6220. 11.257 98. 6290. 11.276 98. 6365. 11.293 98. 6436. 11.31 98. 6473. 11.319 98. 6530. 11.356 98. 6600. 11.411 98. 6670. 11.358 98. 6740. 11.37 98. 6790. 11.38 98. 6850. 11.39 98. 6975. 11.411 98. 7055. 11.425 98. 7100. 11.43 98. 7150. 11.444 98. 7220. 11.461 98. 7270. 11.472 98. 7365. 11.496 98. 7460. 11.518 98. 7550. 11.54 98. 7580. 11.548 98. 7725. 11.577 98. 7780. 11.59 98. 7820. 11.597 98. 7910. 11.616 98. 8000. 11.633 98. 8090. 11.651 98. 8210. 11.677 98. 8260. 11.686 98. 8370. 11.71 98. sptable-1.0.pre20180612/lib/onedstds/irscal/feige92.dat000066400000000000000000000024221331023215600222030ustar00rootroot00000000000000# FEIGE 92 3200. 11.73 49. 3250. 11.73 49. 3300. 11.64 49. 3350. 11.67 49. 3400. 11.67 49. 3450. 11.67 49. 3500. 11.69 49. 3571. 11.67 49. 3636. 11.7 49. 3704. 11.68 49. 3760. 11.596 49. 3816. 11.321 49. 3862. 11.163 49. 3945. 11.25 49. 4000. 11.212 49. 4036. 11.19 49. 4065. 11.188 49. 4167. 11.19 49. 4190. 11.2 49. 4255. 11.22 49. 4290. 11.232 49. 4370. 11.258 49. 4464. 11.26 49. 4498. 11.269 49. 4566. 11.29 49. 4604. 11.302 49. 4678. 11.326 49. 4735. 11.343 49. 4785. 11.36 49. 4825. 11.387 49. 4914. 11.401 49. 5000. 11.43 49. 5067. 11.457 49. 5145. 11.494 49. 5206. 11.521 49. 5263. 11.55 49. 5341. 11.567 98. 5440. 11.591 98. 5504. 11.607 98. 5556. 11.62 98. 5630. 11.64 98. 5710. 11.66 98. 5775. 11.674 98. 5840. 11.69 98. 5910. 11.71 98. 5980. 11.73 98. 6056. 11.75 98. 6140. 11.774 98. 6220. 11.793 98. 6290. 11.812 98. 6365. 11.832 98. 6436. 11.85 98. 6473. 11.858 98. 6530. 11.877 98. 6600. 11.925 98. 6670. 11.894 98. 6740. 11.908 98. 6790. 11.92 98. 6850. 11.926 98. 6975. 11.939 98. 7055. 11.947 98. 7100. 11.95 98. 7150. 11.968 98. 7220. 11.994 98. 7270. 12.001 98. 7365. 12.03 98. 7460. 12.058 98. 7550. 12.09 98. 7580. 12.09 98. 7725. 12.09 98. 7780. 12.09 98. 7820. 12.096 98. 7910. 12.109 98. 8000. 12.119 98. 8090. 12.13 98. 8210. 12.156 98. 8260. 12.166 98. 8370. 12.19 98. sptable-1.0.pre20180612/lib/onedstds/irscal/feige98.dat000066400000000000000000000024241331023215600222130ustar00rootroot00000000000000# FEIGE 98 3200. 13.01 49. 3250. 12.97 49. 3300. 12.93 49. 3350. 12.89 49. 3400. 12.86 49. 3450. 12.89 49. 3500. 12.86 49. 3571. 12.84 49. 3636. 12.81 49. 3704. 12.69 49. 3760. 12.324 49. 3816. 11.819 49. 3862. 11.565 49. 3945. 11.694 49. 4000. 11.602 49. 4036. 11.54 49. 4065. 11.553 49. 4167. 11.56 49. 4190. 11.57 49. 4255. 11.6 49. 4290. 11.602 49. 4370. 11.649 49. 4464. 11.61 49. 4498. 11.623 49. 4566. 11.65 49. 4604. 11.66 49. 4678. 11.672 49. 4735. 11.68 49. 4785. 11.69 49. 4825. 11.72 49. 4914. 11.738 49. 5000. 11.77 49. 5067. 11.772 49. 5145. 11.776 49. 5206. 11.779 49. 5263. 11.78 49. 5341. 11.798 98. 5440. 11.818 98. 5504. 11.831 98. 5556. 11.84 98. 5630. 11.854 98. 5710. 11.869 98. 5775. 11.88 98. 5840. 11.89 98. 5910. 11.912 98. 5980. 11.93 98. 6056. 11.95 98. 6140. 11.964 98. 6220. 11.977 98. 6290. 11.987 98. 6365. 11.998 98. 6436. 12.01 98. 6473. 12.016 98. 6530. 12.046 98. 6600. 12.116 98. 6670. 12.038 98. 6740. 12.046 98. 6790. 12.05 98. 6850. 12.058 98. 6975. 12.069 98. 7055. 12.076 98. 7100. 12.08 98. 7150. 12.091 98. 7220. 12.105 98. 7270. 12.117 98. 7365. 12.136 98. 7460. 12.154 98. 7550. 12.17 98. 7580. 12.176 98. 7725. 12.195 98. 7780. 12.2 98. 7820. 12.21 98. 7910. 12.227 98. 8000. 12.243 98. 8090. 12.26 98. 8210. 12.304 98. 8260. 12.322 98. 8370. 12.36 98. sptable-1.0.pre20180612/lib/onedstds/irscal/g191b2b.dat000066400000000000000000000023371331023215600220250ustar00rootroot00000000000000# G191B2B 3200. 10.82 49. 3250. 10.84 49. 3300. 10.85 49. 3350. 10.88 49. 3400. 10.92 49. 3450. 10.95 49. 3500. 10.96 49. 3571. 10.98 49. 3636. 11.02 49. 3704. 11.08 49. 3760. 11.15 49. 3816. 11.19 49. 3862. 11.2 49. 3945. 11.18 49. 4000. 11.17 49. 4036. 11.17 49. 4065. 11.18 49. 4167. 11.2 49. 4190. 11.2 49. 4255. 11.25 49. 4290. 11.27 49. 4370. 11.35 49. 4464. 11.34 49. 4498. 11.35 49. 4566. 11.39 49. 4604. 11.4 49. 4678. 11.43 49. 4735. 11.45 49. 4785. 11.49 49. 4825. 11.53 49. 4914. 11.54 49. 5000. 11.58 49. 5067. 11.62 49. 5145. 11.61 49. 5206. 11.64 49. 5263. 11.67 49. 5341. 11.7 98. 5440. 11.74 98. 5504. 11.77 98. 5556. 11.78 98. 5630. 11.83 98. 5710. 11.86 98. 5775. 11.88 98. 5840. 11.91 98. 5910. 11.94 98. 5980. 11.96 98. 6056. 11.98 98. 6140. 12. 98. 6220. 12.03 98. 6290. 12.04 98. 6365. 12.06 98. 6436. 12.09 98. 6473. 12.1 98. 6530. 12.11 98. 6600. 12.14 98. 6670. 12.16 98. 6740. 12.18 98. 6790. 12.21 98. 6850. 12.23 98. 6975. 12.27 98. 7055. 12.28 98. 7100. 12.3 98. 7150. 12.31 98. 7220. 12.34 98. 7270. 12.36 98. 7365. 12.38 98. 7460. 12.42 98. 7550. 12.48 98. 7580. 12.5 98. 7725. 12.51 98. 7780. 12.49 98. 7820. 12.48 98. 7910. 12.5 98. 8000. 12.51 98. 8090. 12.51 98. 8210. 12.51 98. 8260. 12.52 98. 8370. 12.56 98. sptable-1.0.pre20180612/lib/onedstds/irscal/hd109995.dat000066400000000000000000000023411331023215600220450ustar00rootroot00000000000000# HD109995 3200. 9.132 49. 3250. 9.108 49. 3300. 9.084 49. 3350. 9.06 49. 3400. 9.036 49. 3450. 9.012 49. 3500. 8.982 49. 3571. 8.969 49. 3636. 8.918 49. 3704. 8.706 49. 3760. 8.21 49. 3816. 7.88 49. 3862. 7.534 49. 3945. 7.645 49. 4000. 7.513 49. 4036. 7.391 49. 4065. 7.42 49. 4167. 7.414 49. 4190. 7.415 49. 4255. 7.424 49. 4290. 7.429 49. 4370. 7.553 49. 4464. 7.449 49. 4498. 7.457 49. 4566. 7.458 49. 4604. 7.472 49. 4678. 7.479 49. 4735. 7.49 49. 4785. 7.501 49. 4825. 7.561 49. 4914. 7.514 49. 5000. 7.53 49. 5067. 7.535 49. 5145. 7.546 49. 5206. 7.554 49. 5263. 7.562 49. 5341. 7.573 98. 5440. 7.586 98. 5504. 7.595 98. 5556. 7.605 98. 5630. 7.612 98. 5710. 7.623 98. 5775. 7.632 98. 5840. 7.633 98. 5910. 7.65 98. 5980. 7.66 98. 6056. 7.684 98. 6140. 7.682 98. 6220. 7.693 98. 6290. 7.702 98. 6365. 7.712 98. 6436. 7.716 98. 6473. 7.727 98. 6530. 7.77 98. 6600. 7.833 98. 6670. 7.746 98. 6740. 7.764 98. 6790. 7.764 98. 6850. 7.779 98. 6975. 7.796 98. 7055. 7.807 98. 7100. 7.813 98. 7150. 7.82 98. 7220. 7.829 98. 7270. 7.836 98. 7365. 7.849 98. 7460. 7.862 98. 7550. 7.874 98. 7580. 7.879 98. 7725. 7.898 98. 7780. 7.906 98. 7820. 7.911 98. 7910. 7.924 98. 8000. 7.936 98. 8090. 7.948 98. 8210. 7.915 98. 8260. 7.972 98. 8370. 7.987 98. sptable-1.0.pre20180612/lib/onedstds/irscal/hd117880.dat000066400000000000000000000023431331023215600220370ustar00rootroot00000000000000# HD117880 3200. 10.53 49. 3250. 10.51 49. 3300. 10.49 49. 3350. 10.47 49. 3400. 10.45 49. 3450. 10.426 49. 3500. 10.393 49. 3571. 10.387 49. 3636. 10.351 49. 3704. 10.214 49. 3760. 9.692 49. 3816. 9.374 49. 3862. 9.04 49. 3945. 9.147 49. 4000. 9.02 49. 4036. 8.902 49. 4065. 8.93 49. 4167. 8.922 49. 4190. 8.927 49. 4255. 8.935 49. 4290. 8.939 49. 4370. 9.053 49. 4464. 8.953 49. 4498. 8.962 49. 4566. 8.952 49. 4604. 8.975 49. 4678. 8.987 49. 4735. 8.99 49. 4785. 8.998 49. 4825. 9.056 49. 4914. 9.01 49. 5000. 9.03 49. 5067. 9.03 49. 5145. 9.041 49. 5206. 9.049 49. 5263. 9.052 49. 5341. 9.068 98. 5440. 9.081 98. 5504. 9.09 98. 5556. 9.092 98. 5630. 9.107 98. 5710. 9.118 98. 5775. 9.127 98. 5840. 9.122 98. 5910. 9.145 98. 5980. 9.155 98. 6056. 9.175 98. 6140. 9.177 98. 6220. 9.187 98. 6290. 9.197 98. 6365. 9.207 98. 6436. 9.214 98. 6473. 9.222 98. 6530. 9.271 98. 6600. 9.332 98. 6670. 9.248 98. 6740. 9.258 98. 6790. 9.263 98. 6850. 9.273 98. 6975. 9.29 98. 7055. 9.301 98. 7100. 9.307 98. 7150. 9.314 98. 7220. 9.324 98. 7270. 9.331 98. 7365. 9.343 98. 7460. 9.356 98. 7550. 9.369 98. 7580. 9.373 98. 7725. 9.393 98. 7780. 9.4 98. 7820. 9.405 98. 7910. 9.418 98. 8000. 9.43 98. 8090. 9.442 98. 8210. 9.459 98. 8260. 9.465 98. 8370. 9.48 98. sptable-1.0.pre20180612/lib/onedstds/irscal/hd161817.dat000066400000000000000000000023371331023215600220410ustar00rootroot00000000000000# HD161817 3200. 8.66 49. 3250. 8.633 49. 3300. 8.61 49. 3350. 8.583 49. 3400. 8.56 49. 3450. 8.534 49. 3500. 8.491 49. 3571. 8.472 49. 3636. 8.403 49. 3704. 8.096 49. 3760. 7.796 49. 3816. 7.338 49. 3862. 7.072 49. 3945. 7.221 49. 4000. 7.038 49. 4036. 6.955 49. 4065. 6.969 49. 4167. 6.963 49. 4190. 6.963 49. 4255. 6.972 49. 4290. 6.965 49. 4370. 7.033 49. 4464. 6.965 49. 4498. 6.97 49. 4566. 6.955 49. 4604. 6.972 49. 4678. 6.965 49. 4735. 6.973 49. 4785. 6.968 49. 4825. 6.998 49. 4914. 6.978 49. 5000. 6.99 49. 5067. 6.969 49. 5145. 6.973 49. 5206. 6.977 49. 5263. 6.968 49. 5341. 6.984 98. 5440. 6.99 98. 5504. 6.994 98. 5556. 7.008 98. 5630. 7.001 98. 5710. 7.005 98. 5775. 7.009 98. 5840. 7.012 98. 5910. 7.017 98. 5980. 7.021 98. 6056. 7.036 98. 6140. 7.03 98. 6220. 7.035 98. 6290. 7.039 98. 6365. 7.043 98. 6436. 7.047 98. 6473. 7.049 98. 6530. 7.079 98. 6600. 7.137 98. 6670. 7.055 98. 6740. 7.064 98. 6790. 7.066 98. 6850. 7.07 98. 6975. 7.078 98. 7055. 7.082 98. 7100. 7.085 98. 7150. 7.088 98. 7220. 7.092 98. 7270. 7.094 98. 7365. 7.1 98. 7460. 7.105 98. 7550. 7.11 98. 7580. 7.112 98. 7725. 7.12 98. 7780. 7.123 98. 7820. 7.126 98. 7910. 7.131 98. 8000. 7.136 98. 8090. 7.141 98. 8210. 7.148 98. 8260. 7.151 98. 8370. 7.157 98. sptable-1.0.pre20180612/lib/onedstds/irscal/hd17520.dat000066400000000000000000000022311331023215600217410ustar00rootroot00000000000000# HD 17520 3200. 8.82 49. 3250. 8.81 49. 3300. 8.8 49. 3350. 8.78 49. 3400. 8.76 49. 3450. 8.75 49. 3500. 8.72 49. 3571. 8.71 49. 3636. 8.64 49. 3704. 8.6 49. 3760. 8.59 49. 3816. 8.59 49. 3862. 8.58 49. 3945. 8.55 49. 4000. 8.53 49. 4036. 8.52 49. 4065. 8.51 49. 4167. 8.48 49. 4190. 8.48 49. 4255. 8.46 49. 4290. 8.46 49. 4370. 8.46 49. 4464. 8.46 49. 4498. 8.45 49. 4566. 8.43 49. 4604. 8.43 49. 4678. 8.42 49. 4735. 8.42 49. 4785. 8.42 49. 4825. 8.41 49. 4914. 8.39 49. 5000. 8.37 49. 5067. 8.36 49. 5145. 8.34 49. 5206. 8.32 49. 5263. 8.31 49. 5341. 8.29 98. 5440. 8.27 98. 5504. 8.26 98. 5556. 8.25 98. 5630. 8.26 98. 5710. 8.26 98. 5775. 8.27 98. 5840. 8.27 98. 5910. 8.27 98. 5980. 8.26 98. 6056. 8.26 98. 6140. 8.26 98. 6220. 8.27 98. 6290. 8.27 98. 6365. 8.28 98. 6436. 8.28 98. 6473. 8.28 98. 6530. 8.27 98. 6600. 8.27 98. 6670. 8.27 98. 6740. 8.26 98. 6790. 8.26 98. 6850. 8.26 98. 6975. 8.25 98. 7055. 8.25 98. 7100. 8.25 98. 7150. 8.25 98. 7220. 8.26 98. 7270. 8.26 98. 7365. 8.27 98. 7460. 8.28 98. 7550. 8.28 98. 7580. 8.28 98. 7725. 8.29 98. 7780. 8.29 98. 7820. 8.29 98. 7910. 8.3 98. 8000. 8.3 98. 8090. 8.31 98. 8210. 8.32 98. 8260. 8.32 98. 8370. 8.33 98. sptable-1.0.pre20180612/lib/onedstds/irscal/hd192281.dat000066400000000000000000000022241331023215600220330ustar00rootroot00000000000000# HD192281 3200. 8.26 49. 3250. 8.23 49. 3300. 8.21 49. 3350. 8.19 49. 3400. 8.17 49. 3450. 8.14 49. 3500. 8.12 49. 3571. 8.09 49. 3636. 8.06 49. 3704. 8.02 49. 3760. 8.01 49. 3816. 8. 49. 3862. 7.99 49. 3945. 7.96 49. 4000. 7.93 49. 4036. 7.91 49. 4065. 7.9 49. 4167. 7.86 49. 4190. 7.86 49. 4255. 7.86 49. 4290. 7.85 49. 4370. 7.82 49. 4464. 7.78 49. 4498. 7.78 49. 4566. 7.77 49. 4604. 7.76 49. 4678. 7.74 49. 4735. 7.73 49. 4785. 7.71 49. 4825. 7.7 49. 4914. 7.68 49. 5000. 7.65 49. 5067. 7.64 49. 5145. 7.62 49. 5206. 7.6 49. 5263. 7.59 49. 5341. 7.58 98. 5440. 7.56 98. 5504. 7.55 98. 5556. 7.54 98. 5630. 7.54 98. 5710. 7.53 98. 5775. 7.53 98. 5840. 7.52 98. 5910. 7.52 98. 5980. 7.52 98. 6056. 7.52 98. 6140. 7.52 98. 6220. 7.51 98. 6290. 7.5 98. 6365. 7.5 98. 6436. 7.49 98. 6473. 7.49 98. 6530. 7.48 98. 6600. 7.48 98. 6670. 7.48 98. 6740. 7.47 98. 6790. 7.47 98. 6850. 7.47 98. 6975. 7.46 98. 7055. 7.46 98. 7100. 7.46 98. 7150. 7.46 98. 7220. 7.46 98. 7270. 7.47 98. 7365. 7.47 98. 7460. 7.48 98. 7550. 7.48 98. 7580. 7.48 98. 7725. 7.49 98. 7780. 7.49 98. 7820. 7.49 98. 7910. 7.5 98. 8000. 7.5 98. 8090. 7.51 98. 8210. 7.52 98. 8260. 7.52 98. 8370. 7.52 98. sptable-1.0.pre20180612/lib/onedstds/irscal/hd19445.dat000066400000000000000000000022251331023215600217540ustar00rootroot00000000000000# HD 19445 3200. 9.34 49. 3250. 9.3 49. 3300. 9.25 49. 3350. 9.21 49. 3400. 9.17 49. 3450. 9.12 49. 3500. 9.09 49. 3571. 9.03 49. 3636. 8.98 49. 3704. 8.93 49. 3760. 8.85 49. 3816. 8.74 49. 3862. 8.72 49. 3945. 8.6 49. 4000. 8.5 49. 4036. 8.49 49. 4065. 8.48 49. 4167. 8.4 49. 4190. 8.39 49. 4255. 8.39 49. 4290. 8.41 49. 4370. 8.36 49. 4464. 8.27 49. 4498. 8.26 49. 4566. 8.23 49. 4604. 8.23 49. 4678. 8.21 49. 4735. 8.19 49. 4785. 8.16 49. 4825. 8.19 49. 4914. 8.16 49. 5000. 8.12 49. 5067. 8.1 49. 5145. 8.08 49. 5206. 8.06 49. 5263. 8.04 49. 5341. 8.03 98. 5440. 8.01 98. 5504. 7.99 98. 5556. 7.98 98. 5630. 7.97 98. 5710. 7.96 98. 5775. 7.94 98. 5840. 7.93 98. 5910. 7.92 98. 5980. 7.91 98. 6056. 7.9 98. 6140. 7.89 98. 6220. 7.88 98. 6290. 7.88 98. 6365. 7.87 98. 6436. 7.86 98. 6473. 7.86 98. 6530. 7.85 98. 6600. 7.85 98. 6670. 7.84 98. 6740. 7.84 98. 6790. 7.84 98. 6850. 7.83 98. 6975. 7.82 98. 7055. 7.82 98. 7100. 7.81 98. 7150. 7.81 98. 7220. 7.81 98. 7270. 7.8 98. 7365. 7.8 98. 7460. 7.79 98. 7550. 7.79 98. 7580. 7.79 98. 7725. 7.78 98. 7780. 7.78 98. 7820. 7.78 98. 7910. 7.77 98. 8000. 7.77 98. 8090. 7.76 98. 8210. 7.76 98. 8260. 7.76 98. 8370. 7.76 98. sptable-1.0.pre20180612/lib/onedstds/irscal/hd217086.dat000066400000000000000000000022121331023215600220310ustar00rootroot00000000000000# HD217086 3200. 8.73 49. 3250. 8.7 49. 3300. 8.67 49. 3350. 8.65 49. 3400. 8.62 49. 3450. 8.6 49. 3500. 8.57 49. 3571. 8.53 49. 3636. 8.48 49. 3704. 8.38 49. 3760. 8.36 49. 3816. 8.34 49. 3862. 8.32 49. 3945. 8.26 49. 4000. 8.22 49. 4036. 8.19 49. 4065. 8.18 49. 4167. 8.15 49. 4190. 8.14 49. 4255. 8.11 49. 4290. 8.1 49. 4370. 8.06 49. 4464. 8.02 49. 4498. 8.01 49. 4566. 7.97 49. 4604. 7.96 49. 4678. 7.94 49. 4735. 7.92 49. 4785. 7.9 49. 4825. 7.88 49. 4914. 7.82 49. 5000. 7.76 49. 5067. 7.72 49. 5145. 7.68 49. 5206. 7.64 49. 5263. 7.61 49. 5341. 7.58 98. 5440. 7.54 98. 5504. 7.52 98. 5556. 7.5 98. 5630. 7.48 98. 5710. 7.47 98. 5775. 7.46 98. 5840. 7.45 98. 5910. 7.44 98. 5980. 7.43 98. 6056. 7.42 98. 6140. 7.4 98. 6220. 7.38 98. 6290. 7.37 98. 6365. 7.36 98. 6436. 7.34 98. 6473. 7.33 98. 6530. 7.32 98. 6600. 7.3 98. 6670. 7.28 98. 6740. 7.27 98. 6790. 7.26 98. 6850. 7.25 98. 6975. 7.24 98. 7055. 7.23 98. 7100. 7.22 98. 7150. 7.22 98. 7220. 7.22 98. 7270. 7.21 98. 7365. 7.21 98. 7460. 7.2 98. 7550. 7.2 98. 7580. 7.2 98. 7725. 7.2 98. 7780. 7.2 98. 7820. 7.2 98. 7910. 7.2 98. 8000. 7.2 98. 8090. 7.2 98. 8210. 7.2 98. 8260. 7.2 98. 8370. 7.2 98. sptable-1.0.pre20180612/lib/onedstds/irscal/hd2857.dat000066400000000000000000000023521331023215600216740ustar00rootroot00000000000000# HD 2857 3200. 11.625 49. 3250. 11.596 49. 3300. 11.565 49. 3350. 11.537 49. 3400. 11.51 49. 3450. 11.481 49. 3500. 11.446 49. 3571. 11.402 49. 3636. 11.33 49. 3704. 11.078 49. 3760. 10.723 49. 3816. 10.269 49. 3862. 10.004 49. 3945. 10.142 49. 4000. 9.956 49. 4036. 9.872 49. 4065. 9.886 49. 4167. 9.875 49. 4190. 9.872 49. 4255. 9.885 49. 4290. 9.875 49. 4370. 9.939 49. 4464. 9.872 49. 4498. 9.88 49. 4566. 9.879 49. 4604. 9.88 49. 4678. 9.881 49. 4735. 9.883 49. 4785. 9.884 49. 4825. 9.913 49. 4914. 9.889 49. 5000. 9.9 49. 5067. 9.892 49. 5145. 9.897 49. 5206. 9.9 49. 5263. 9.901 49. 5341. 9.903 98. 5440. 9.905 98. 5504. 9.907 98. 5556. 9.902 98. 5630. 9.91 98. 5710. 9.912 98. 5775. 9.914 98. 5840. 9.911 98. 5910. 9.92 98. 5980. 9.922 98. 6056. 9.928 98. 6140. 9.928 98. 6220. 9.93 98. 6290. 9.931 98. 6365. 9.934 98. 6436. 9.941 98. 6473. 9.939 98. 6530. 9.97 98. 6600. 10.026 98. 6670. 9.946 98. 6740. 9.942 98. 6790. 9.936 98. 6850. 9.95 98. 6975. 9.952 98. 7055. 9.956 98. 7100. 9.958 98. 7150. 9.959 98. 7220. 9.96 98. 7270. 9.961 98. 7365. 9.963 98. 7460. 9.967 98. 7550. 9.969 98. 7580. 9.97 98. 7725. 9.973 98. 7780. 9.976 98. 7820. 9.978 98. 7910. 9.979 98. 8000. 9.982 98. 8090. 9.985 98. 8210. 9.99 98. 8260. 9.992 98. 8370. 9.996 98. sptable-1.0.pre20180612/lib/onedstds/irscal/hd60778.dat000066400000000000000000000023511331023215600217610ustar00rootroot00000000000000# HD 60778 3200. 10.795 49. 3250. 10.763 49. 3300. 10.735 49. 3350. 10.702 49. 3400. 10.672 49. 3450. 10.645 49. 3500. 10.6 49. 3571. 10.579 49. 3636. 10.523 49. 3704. 10.331 49. 3760. 9.891 49. 3816. 9.376 49. 3862. 9.064 49. 3945. 9.191 49. 4000. 9.046 49. 4036. 8.948 49. 4065. 8.971 49. 4167. 8.964 49. 4190. 8.96 49. 4255. 8.98 49. 4290. 8.967 49. 4370. 9.063 49. 4464. 8.983 49. 4498. 8.982 49. 4566. 8.967 49. 4604. 8.99 49. 4678. 8.998 49. 4735. 9.002 49. 4785. 9.004 49. 4825. 9.047 49. 4914. 9.016 49. 5000. 9.03 49. 5067. 9.035 49. 5145. 9.042 49. 5206. 9.048 49. 5263. 9.056 49. 5341. 9.06 98. 5440. 9.071 98. 5504. 9.078 98. 5556. 9.085 98. 5630. 9.091 98. 5710. 9.099 98. 5775. 9.106 98. 5840. 9.096 98. 5910. 9.12 98. 5980. 9.127 98. 6056. 9.15 98. 6140. 9.142 98. 6220. 9.15 98. 6290. 9.159 98. 6365. 9.165 98. 6436. 9.167 98. 6473. 9.177 98. 6530. 9.221 98. 6600. 9.284 98. 6670. 9.197 98. 6740. 9.204 98. 6790. 9.208 98. 6850. 9.216 98. 6975. 9.228 98. 7055. 9.236 98. 7100. 9.24 98. 7150. 9.246 98. 7220. 9.251 98. 7270. 9.258 98. 7365. 9.269 98. 7460. 9.278 98. 7550. 9.287 98. 7580. 9.289 98. 7725. 9.304 98. 7780. 9.309 98. 7820. 9.313 98. 7910. 9.322 98. 8000. 9.331 98. 8090. 9.34 98. 8210. 9.352 98. 8260. 9.357 98. 8370. 9.368 98. sptable-1.0.pre20180612/lib/onedstds/irscal/hd74721.dat000066400000000000000000000023411331023215600217510ustar00rootroot00000000000000# HD 74721 3200. 10.105 49. 3250. 10.082 49. 3300. 10.063 49. 3350. 10.04 49. 3400. 10.024 49. 3450. 10.003 49. 3500. 9.975 49. 3571. 9.958 49. 3636. 9.922 49. 3704. 9.771 49. 3760. 9.235 49. 3816. 8.905 49. 3862. 8.559 49. 3945. 8.67 49. 4000. 8.538 49. 4036. 8.416 49. 4065. 8.445 49. 4167. 8.447 49. 4190. 8.448 49. 4255. 8.455 49. 4290. 8.464 49. 4370. 8.599 49. 4464. 8.495 49. 4498. 8.498 49. 4566. 8.498 49. 4604. 8.513 49. 4678. 8.524 49. 4735. 8.533 49. 4785. 8.546 49. 4825. 8.606 49. 4914. 8.562 49. 5000. 8.59 49. 5067. 8.587 49. 5145. 8.6 49. 5206. 8.61 49. 5263. 8.606 49. 5341. 8.63 98. 5440. 8.646 98. 5504. 8.657 98. 5556. 8.668 98. 5630. 8.678 98. 5710. 8.69 98. 5775. 8.7 98. 5840. 8.711 98. 5910. 8.721 98. 5980. 8.733 98. 6056. 8.763 98. 6140. 8.759 98. 6220. 8.771 98. 6290. 8.782 98. 6365. 8.794 98. 6436. 8.799 98. 6473. 8.812 98. 6530. 8.845 98. 6600. 8.908 98. 6670. 8.821 98. 6740. 8.854 98. 6790. 8.83 98. 6850. 8.87 98. 6975. 8.89 98. 7055. 8.902 98. 7100. 8.91 98. 7150. 8.919 98. 7220. 8.93 98. 7270. 8.938 98. 7365. 8.952 98. 7460. 8.967 98. 7550. 8.982 98. 7580. 8.987 98. 7725. 9.002 98. 7780. 9.018 98. 7820. 9.024 98. 7910. 9.039 98. 8000. 9.052 98. 8090. 9.066 98. 8210. 9.07 98. 8260. 9.078 98. 8370. 9.095 98. sptable-1.0.pre20180612/lib/onedstds/irscal/hd84937.dat000066400000000000000000000022301331023215600217600ustar00rootroot00000000000000# HD 84937 3200. 9.57 49. 3250. 9.53 49. 3300. 9.49 49. 3350. 9.46 49. 3400. 9.42 49. 3450. 9.39 49. 3500. 9.36 49. 3571. 9.31 49. 3636. 9.27 49. 3704. 9.22 49. 3760. 9.1 49. 3816. 8.93 49. 3862. 8.9 49. 3945. 8.84 49. 4000. 8.67 49. 4036. 8.64 49. 4065. 8.65 49. 4167. 8.57 49. 4190. 8.56 49. 4255. 8.55 49. 4290. 8.59 49. 4370. 8.59 49. 4464. 8.47 49. 4498. 8.47 49. 4566. 8.45 49. 4604. 8.44 49. 4678. 8.42 49. 4735. 8.4 49. 4785. 8.4 49. 4825. 8.43 49. 4914. 8.41 49. 5000. 8.35 49. 5067. 8.34 49. 5145. 8.33 49. 5206. 8.32 49. 5263. 8.31 49. 5341. 8.3 98. 5440. 8.28 98. 5504. 8.27 98. 5556. 8.26 98. 5630. 8.25 98. 5710. 8.24 98. 5775. 8.23 98. 5840. 8.22 98. 5910. 8.22 98. 5980. 8.21 98. 6056. 8.19 98. 6140. 8.19 98. 6220. 8.19 98. 6290. 8.18 98. 6365. 8.18 98. 6436. 8.17 98. 6473. 8.17 98. 6530. 8.19 98. 6600. 8.19 98. 6670. 8.17 98. 6740. 8.16 98. 6790. 8.15 98. 6850. 8.15 98. 6975. 8.14 98. 7055. 8.14 98. 7100. 8.13 98. 7150. 8.13 98. 7220. 8.13 98. 7270. 8.13 98. 7365. 8.12 98. 7460. 8.12 98. 7550. 8.12 98. 7580. 8.12 98. 7725. 8.12 98. 7780. 8.12 98. 7820. 8.12 98. 7910. 8.12 98. 8000. 8.12 98. 8090. 8.11 98. 8210. 8.11 98. 8260. 8.11 98. 8370. 8.11 98. sptable-1.0.pre20180612/lib/onedstds/irscal/hd86986.dat000066400000000000000000000023411331023215600217710ustar00rootroot00000000000000# HD 86986 3200. 9.551 49. 3250. 9.526 49. 3300. 9.501 49. 3350. 9.476 49. 3400. 9.451 49. 3450. 9.422 49. 3500. 9.383 49. 3571. 9.367 49. 3636. 9.322 49. 3704. 9.121 49. 3760. 8.743 49. 3816. 8.245 49. 3862. 7.935 49. 3945. 8.051 49. 4000. 7.905 49. 4036. 7.799 49. 4065. 7.825 49. 4167. 7.804 49. 4190. 7.802 49. 4255. 7.814 49. 4290. 7.812 49. 4370. 7.912 49. 4464. 7.824 49. 4498. 7.83 49. 4566. 7.828 49. 4604. 7.839 49. 4678. 7.84 49. 4735. 7.85 49. 4785. 7.849 49. 4825. 7.896 49. 4914. 7.863 49. 5000. 7.88 49. 5067. 7.878 49. 5145. 7.884 49. 5206. 7.89 49. 5263. 7.892 49. 5341. 7.901 98. 5440. 7.909 98. 5504. 7.915 98. 5556. 7.925 98. 5630. 7.925 98. 5710. 7.932 98. 5775. 7.938 98. 5840. 7.939 98. 5910. 7.949 98. 5980. 7.955 98. 6056. 7.967 98. 6140. 7.968 98. 6220. 7.975 98. 6290. 7.981 98. 6365. 7.987 98. 6436. 7.998 98. 6473. 7.996 98. 6530. 8.04 98. 6600. 8.102 98. 6670. 8.01 98. 6740. 8.019 98. 6790. 8.015 98. 6850. 8.028 98. 6975. 8.039 98. 7055. 8.045 98. 7100. 8.049 98. 7150. 8.053 98. 7220. 8.059 98. 7270. 8.063 98. 7365. 8.071 98. 7460. 8.08 98. 7550. 8.087 98. 7580. 8.09 98. 7725. 8.102 98. 7780. 8.106 98. 7820. 8.11 98. 7910. 8.117 98. 8000. 8.125 98. 8090. 8.133 98. 8210. 8.143 98. 8260. 8.147 98. 8370. 8.156 98. sptable-1.0.pre20180612/lib/onedstds/irscal/he3.dat000066400000000000000000000023401331023215600214270ustar00rootroot00000000000000# HE 3 3200. 11.64 49. 3250. 11.65 49. 3300. 11.67 49. 3350. 11.7 49. 3400. 11.73 49. 3450. 11.73 49. 3500. 11.74 49. 3571. 11.75 49. 3636. 11.8 49. 3704. 11.83 49. 3760. 11.89 49. 3816. 11.95 49. 3862. 11.91 49. 3945. 11.92 49. 4000. 11.83 49. 4036. 11.73 49. 4065. 11.71 49. 4167. 11.66 49. 4190. 11.62 49. 4255. 11.65 49. 4290. 11.76 49. 4370. 11.81 49. 4464. 11.67 49. 4498. 11.66 49. 4566. 11.7 49. 4604. 11.71 49. 4678. 11.72 49. 4735. 11.76 49. 4785. 11.84 49. 4825. 12.01 49. 4914. 11.97 49. 5000. 11.87 49. 5067. 11.88 49. 5145. 11.85 49. 5206. 11.9 49. 5263. 11.92 49. 5341. 11.96 98. 5440. 11.98 98. 5504. 12.02 98. 5556. 12.04 98. 5630. 12.05 98. 5710. 12.09 98. 5775. 12.11 98. 5840. 12.12 98. 5910. 12.16 98. 5980. 12.19 98. 6056. 12.2 98. 6140. 12.2 98. 6220. 12.22 98. 6290. 12.24 98. 6365. 12.28 98. 6436. 12.33 98. 6473. 12.36 98. 6530. 12.49 98. 6600. 12.49 98. 6670. 12.42 98. 6740. 12.41 98. 6790. 12.41 98. 6850. 12.42 98. 6975. 12.47 98. 7055. 12.5 98. 7100. 12.49 98. 7150. 12.49 98. 7220. 12.52 98. 7270. 12.56 98. 7365. 12.59 98. 7460. 12.58 98. 7550. 12.63 98. 7580. 12.66 98. 7725. 12.63 98. 7780. 12.63 98. 7820. 12.65 98. 7910. 12.68 98. 8000. 12.68 98. 8090. 12.68 98. 8210. 12.68 98. 8260. 12.69 98. 8370. 12.76 98. sptable-1.0.pre20180612/lib/onedstds/irscal/hiltner102.dat000066400000000000000000000023201331023215600226360ustar00rootroot00000000000000# HILTNER102 3200. 11.98 49. 3250. 11.92 49. 3300. 11.8 49. 3350. 11.78 49. 3400. 11.73 49. 3450. 11.71 49. 3500. 11.66 49. 3571. 11.63 49. 3636. 11.59 49. 3704. 11.55 49. 3760. 11.46 49. 3816. 11.37 49. 3862. 11.31 49. 3945. 11.28 49. 4000. 11.26 49. 4036. 11.24 49. 4065. 11.22 49. 4167. 11.16 49. 4190. 11.15 49. 4255. 11.13 49. 4290. 11.12 49. 4370. 11.09 49. 4464. 11.03 49. 4498. 11. 49. 4566. 10.95 49. 4604. 10.94 49. 4678. 10.92 49. 4735. 10.89 49. 4785. 10.87 49. 4825. 10.85 49. 4914. 10.79 49. 5000. 10.73 49. 5067. 10.68 49. 5145. 10.63 49. 5206. 10.57 49. 5263. 10.53 49. 5341. 10.48 98. 5440. 10.43 98. 5504. 10.38 98. 5556. 10.35 98. 5630. 10.34 98. 5710. 10.31 98. 5775. 10.3 98. 5840. 10.28 98. 5910. 10.27 98. 5980. 10.25 98. 6056. 10.22 98. 6140. 10.2 98. 6220. 10.18 98. 6290. 10.17 98. 6365. 10.16 98. 6436. 10.13 98. 6473. 10.12 98. 6530. 10.1 98. 6600. 10.08 98. 6670. 10.05 98. 6740. 10.03 98. 6790. 10.01 98. 6850. 10. 98. 6975. 9.97 98. 7055. 9.95 98. 7100. 9.93 98. 7150. 9.93 98. 7220. 9.91 98. 7270. 9.9 98. 7365. 9.89 98. 7460. 9.87 98. 7550. 9.86 98. 7580. 9.86 98. 7725. 9.83 98. 7780. 9.81 98. 7820. 9.8 98. 7910. 9.78 98. 8000. 9.76 98. 8090. 9.74 98. 8210. 9.74 98. 8260. 9.74 98. 8370. 9.72 98. sptable-1.0.pre20180612/lib/onedstds/irscal/hiltner600.dat000066400000000000000000000023471331023215600226520ustar00rootroot00000000000000# HILTNER600 3200. 10.98 49. 3250. 10.92 49. 3300. 10.86 49. 3350. 10.84 49. 3400. 10.84 49. 3450. 10.83 49. 3500. 10.81 49. 3571. 10.82 49. 3636. 10.8 49. 3704. 10.79 49. 3760. 10.68 49. 3816. 10.57 49. 3862. 10.51 49. 3945. 10.49 49. 4000. 10.48 49. 4036. 10.47 49. 4065. 10.47 49. 4167. 10.46 49. 4190. 10.46 49. 4255. 10.46 49. 4290. 10.46 49. 4370. 10.47 49. 4464. 10.47 49. 4498. 10.47 49. 4566. 10.45 49. 4604. 10.45 49. 4678. 10.45 49. 4735. 10.45 49. 4785. 10.45 49. 4825. 10.45 49. 4914. 10.45 49. 5000. 10.45 49. 5067. 10.45 49. 5145. 10.44 49. 5206. 10.43 49. 5263. 10.43 49. 5341. 10.43 98. 5440. 10.42 98. 5504. 10.42 98. 5556. 10.42 98. 5630. 10.42 98. 5710. 10.43 98. 5775. 10.43 98. 5840. 10.43 98. 5910. 10.44 98. 5980. 10.44 98. 6056. 10.45 98. 6140. 10.46 98. 6220. 10.47 98. 6290. 10.47 98. 6365. 10.48 98. 6436. 10.49 98. 6473. 10.49 98. 6530. 10.49 98. 6600. 10.5 98. 6670. 10.5 98. 6740. 10.5 98. 6790. 10.5 98. 6850. 10.5 98. 6975. 10.51 98. 7055. 10.52 98. 7100. 10.52 98. 7150. 10.52 98. 7220. 10.53 98. 7270. 10.54 98. 7365. 10.54 98. 7460. 10.55 98. 7550. 10.56 98. 7580. 10.56 98. 7725. 10.57 98. 7780. 10.58 98. 7820. 10.58 98. 7910. 10.58 98. 8000. 10.59 98. 8090. 10.59 98. 8210. 10.61 98. 8260. 10.62 98. 8370. 10.64 98. sptable-1.0.pre20180612/lib/onedstds/irscal/hr7001.dat000066400000000000000000000023671331023215600217020ustar00rootroot00000000000000# HR7001 3200. 1.296 49. 3250. 1.273 49. 3300. 1.215 49. 3350. 1.216 49. 3400. 1.187 49. 3450. 1.18 49. 3500. 1.169 49. 3571. 1.137 49. 3636. 1.107 49. 3704. 1.052 49. 3760. 0.775 49. 3816. 0.397 49. 3862. 0.119 49. 3945. -0.017 49. 4000. -0.156 49. 4036. -0.255 49. 4065. -0.165 49. 4167. -0.222 49. 4190. -0.22 49. 4255. -0.209 49. 4290. -0.143 49. 4370. -0.06 49. 4464. -0.164 49. 4498. -0.157 49. 4566. -0.125 49. 4604. -0.134 49. 4678. -0.118 49. 4735. -0.098 49. 4785. -0.082 49. 4825. -0.003 49. 4914. -0.03 49. 5000. -0.045 49. 5067. -0.03 49. 5145. -0.015 49. 5206. -0.003 49. 5263. 0.004 49. 5341. 0.012 98. 5440. 0.03 98. 5504. 0.044 98. 5556. 0.052 98. 5630. 0.068 98. 5710. 0.085 98. 5775. 0.098 98. 5840. 0.108 98. 5910. 0.127 98. 5980. 0.144 98. 6056. 0.16 98. 6140. 0.174 98. 6220. 0.194 98. 6290. 0.205 98. 6365. 0.213 98. 6436. 0.222 98. 6473. 0.232 98. 6530. 0.353 98. 6600. 0.344 98. 6670. 0.259 98. 6740. 0.266 98. 6790. 0.276 98. 6850. 0.293 98. 6975. 0.313 98. 7055. 0.325 98. 7100. 0.335 98. 7150. 0.349 98. 7220. 0.356 98. 7270. 0.365 98. 7365. 0.383 98. 7460. 0.395 98. 7550. 0.409 98. 7580. 0.417 98. 7725. 0.439 98. 7780. 0.449 98. 7820. 0.451 98. 7910. 0.462 98. 8000. 0.476 98. 8090. 0.485 98. 8210. 0.512 98. 8260. 0.52 98. 8370. 0.539 98. sptable-1.0.pre20180612/lib/onedstds/irscal/hz44.dat000066400000000000000000000023421331023215600215430ustar00rootroot00000000000000# HZ 44 3200. 10.86 49. 3250. 10.85 49. 3300. 10.85 49. 3350. 10.86 49. 3400. 10.87 49. 3450. 10.89 49. 3500. 10.9 49. 3571. 10.93 49. 3636. 10.97 49. 3704. 11.03 49. 3760. 11.08 49. 3816. 11.12 49. 3862. 11.11 49. 3945. 11.12 49. 4000. 11.12 49. 4036. 11.11 49. 4065. 11.12 49. 4167. 11.14 49. 4190. 11.12 49. 4255. 11.19 49. 4290. 11.22 49. 4370. 11.31 49. 4464. 11.29 49. 4498. 11.3 49. 4566. 11.35 49. 4604. 11.37 49. 4678. 11.42 49. 4735. 11.39 49. 4785. 11.4 49. 4825. 11.42 49. 4914. 11.45 49. 5000. 11.48 49. 5067. 11.52 49. 5145. 11.49 49. 5206. 11.51 49. 5263. 11.53 49. 5341. 11.56 98. 5440. 11.6 98. 5504. 11.62 98. 5556. 11.66 98. 5630. 11.69 98. 5710. 11.72 98. 5775. 11.73 98. 5840. 11.74 98. 5910. 11.75 98. 5980. 11.78 98. 6056. 11.79 98. 6140. 11.81 98. 6220. 11.83 98. 6290. 11.84 98. 6365. 11.85 98. 6436. 11.89 98. 6473. 11.9 98. 6530. 11.93 98. 6600. 11.97 98. 6670. 12.02 98. 6740. 12.04 98. 6790. 12.06 98. 6850. 12.08 98. 6975. 12.11 98. 7055. 12.13 98. 7100. 12.13 98. 7150. 12.14 98. 7220. 12.18 98. 7270. 12.2 98. 7365. 12.23 98. 7460. 12.27 98. 7550. 12.33 98. 7580. 12.36 98. 7725. 12.38 98. 7780. 12.37 98. 7820. 12.36 98. 7910. 12.39 98. 8000. 12.42 98. 8090. 12.43 98. 8210. 12.42 98. 8260. 12.42 98. 8370. 12.45 98. sptable-1.0.pre20180612/lib/onedstds/irscal/kopff27.dat000066400000000000000000000024161331023215600222320ustar00rootroot00000000000000# KOPFF 27 3200. 12.14 49. 3250. 12.14 49. 3300. 12. 49. 3350. 11.97 49. 3400. 11.91 49. 3450. 11.89 49. 3500. 11.85 49. 3571. 11.8 49. 3636. 11.75 49. 3704. 11.69 49. 3760. 11.419 49. 3816. 10.956 49. 3862. 10.62 49. 3945. 10.827 49. 4000. 10.533 49. 4036. 10.42 49. 4065. 10.444 49. 4167. 10.39 49. 4190. 10.387 49. 4255. 10.38 49. 4290. 10.372 49. 4370. 10.45 49. 4464. 10.34 49. 4498. 10.348 49. 4566. 10.36 49. 4604. 10.353 49. 4678. 10.343 49. 4735. 10.337 49. 4785. 10.33 49. 4825. 10.373 49. 4914. 10.336 49. 5000. 10.34 49. 5067. 10.339 49. 5145. 10.334 49. 5206. 10.331 49. 5263. 10.33 49. 5341. 10.323 98. 5440. 10.318 98. 5504. 10.315 98. 5556. 10.31 98. 5630. 10.31 98. 5710. 10.31 98. 5775. 10.31 98. 5840. 10.31 98. 5910. 10.317 98. 5980. 10.321 98. 6056. 10.33 98. 6140. 10.333 98. 6220. 10.338 98. 6290. 10.342 98. 6365. 10.346 98. 6436. 10.35 98. 6473. 10.348 98. 6530. 10.387 98. 6600. 10.455 98. 6670. 10.342 98. 6740. 10.341 98. 6790. 10.34 98. 6850. 10.341 98. 6975. 10.345 98. 7055. 10.348 98. 7100. 10.35 98. 7150. 10.353 98. 7220. 10.362 98. 7270. 10.368 98. 7365. 10.378 98. 7460. 10.39 98. 7550. 10.4 98. 7580. 10.4 98. 7725. 10.4 98. 7780. 10.4 98. 7820. 10.402 98. 7910. 10.408 98. 8000. 10.413 98. 8090. 10.42 98. 8210. 10.432 98. 8260. 10.438 98. 8370. 10.45 98. sptable-1.0.pre20180612/lib/onedstds/irscal/names.men000066400000000000000000000002111331023215600220550ustar00rootroot00000000000000# Table of alternate names mapped to the names in this directory eg50 he3 eg71 feige34 eg139 wolf1346 eg158 feige110 eg247 g191b2b sptable-1.0.pre20180612/lib/onedstds/irscal/standards.men000066400000000000000000000010131331023215600227360ustar00rootroot00000000000000Standard stars in onedstds$irscal/ bd082015 eg50 feige34 hd117880 hd60778 hr7001 bd174708 eg71 feige56 hd161817 hd74721 hz44 bd253941 eg139 feige92 hd17520 hd84937 kopff27 bd262606 eg158 feige98 hd192281 hd86986 wolf1346 bd284211 eg247 feige110 hd19445 he3 bd332642 feige15 g191b2b hd217086 hiltner102 bd404032 feige25 hd109995 hd2857 hiltner600 sptable-1.0.pre20180612/lib/onedstds/irscal/wolf1346.dat000066400000000000000000000023421331023215600222370ustar00rootroot00000000000000# WOLF 1346 3200. 11.22 49. 3250. 11.15 49. 3300. 11.22 49. 3350. 11.24 49. 3400. 11.24 49. 3450. 11.26 49. 3500. 11.28 49. 3571. 11.24 49. 3636. 11.31 49. 3704. 11.35 49. 3760. 11.4 49. 3816. 11.44 49. 3862. 11.41 49. 3945. 11.34 49. 4000. 11.27 49. 4036. 11.1 49. 4065. 11.19 49. 4167. 11.18 49. 4190. 11.1 49. 4255. 11.17 49. 4290. 11.26 49. 4370. 11.38 49. 4464. 11.14 49. 4498. 11.14 49. 4566. 11.17 49. 4604. 11.2 49. 4678. 11.22 49. 4735. 11.24 49. 4785. 11.29 49. 4825. 11.44 49. 4914. 11.43 49. 5000. 11.36 49. 5067. 11.38 49. 5145. 11.36 49. 5206. 11.4 49. 5263. 11.42 49. 5341. 11.44 98. 5440. 11.47 98. 5504. 11.48 98. 5556. 11.52 98. 5630. 11.53 98. 5710. 11.54 98. 5775. 11.58 98. 5840. 11.58 98. 5910. 11.61 98. 5980. 11.66 98. 6056. 11.69 98. 6140. 11.68 98. 6220. 11.71 98. 6290. 11.74 98. 6365. 11.75 98. 6436. 11.78 98. 6473. 11.81 98. 6530. 11.93 98. 6600. 11.93 98. 6670. 11.88 98. 6740. 11.82 98. 6790. 11.81 98. 6850. 11.84 98. 6975. 11.91 98. 7055. 11.92 98. 7100. 11.9 98. 7150. 11.91 98. 7220. 11.93 98. 7270. 11.95 98. 7365. 12. 98. 7460. 12.03 98. 7550. 12.05 98. 7580. 12.06 98. 7725. 12.12 98. 7780. 12.1 98. 7820. 12.08 98. 7910. 12.07 98. 8000. 12.13 98. 8090. 12.2 98. 8210. 12.14 98. 8260. 12.14 98. 8370. 12.17 98. sptable-1.0.pre20180612/lib/onedstds/kpnoextinct.dat000066400000000000000000000020461331023215600220440ustar00rootroot000000000000003200. 1.017 3250. 0.881 3300. 0.787 3350. 0.731 3400. 0.683 3450. 0.639 3500. 0.6 3571. 0.556 3636. 0.518 3704. 0.484 3760. 0.457 3816. 0.433 3862. 0.414 3945. 0.383 4000. 0.365 4036. 0.353 4065. 0.344 4167. 0.315 4190. 0.31 4255. 0.293 4290. 0.284 4370. 0.268 4464. 0.25 4498. 0.243 4566. 0.231 4604. 0.225 4678. 0.215 4735. 0.206 4785. 0.202 4825. 0.197 4914. 0.186 5000. 0.18 5067. 0.174 5145. 0.167 5206. 0.163 5263. 0.161 5341. 0.158 5440. 0.153 5504. 0.15 5556. 0.148 5630. 0.147 5710. 0.146 5775. 0.144 5840. 0.137 5910. 0.133 5980. 0.133 6056. 0.132 6140. 0.125 6220. 0.119 6290. 0.114 6365. 0.109 6436. 0.104 6473. 0.101 6530. 0.097 6600. 0.093 6670. 0.09 6740. 0.085 6790. 0.083 6850. 0.081 6975. 0.075 7055. 0.073 7100. 0.072 7150. 0.07 7220. 0.068 7270. 0.066 7365. 0.065 7460. 0.063 7550. 0.061 7580. 0.058 7725. 0.056 7780. 0.055 7820. 0.055 7910. 0.054 8000. 0.052 8090. 0.051 8210. 0.05 8260. 0.049 8370. 0.048 8708. 0.030 9832. 0.053 10256. 0.023 10400. 0.024 # Last four extinction coefficients from CTIO list - no data available # for KPNO. sptable-1.0.pre20180612/lib/onedstds/names.men000066400000000000000000000016661331023215600206170ustar00rootroot00000000000000# Table of alternate names mapped to the names in this directory bd7781 40erib eg33 40erib sao131065 40erib eg158 feige110 eg20 feige24 eg71 feige34 eg247 g191b2b eg182 g4718 eg248 g9937 eg184 gd140 eg193 gd190 eg102 grw705824 eg129 grw708247 eg144 grw738031 eg50 he3 eg42 hz14 eg31 hz2 amcvn hz29 eg91 hz29 eg26 hz4 eg98 hz43 l14094 hz43 eg39 hz7 eg148 l13633 g12627 l13633 g14563 l13633 lft1655 l13633 eg162 l151234b eg54 l74546a eg11 l8702 eg149 l93080 g2631 l93080 ltt8702 l93080 eg76 l97030 g16350 l97030 ltt4099 l97030 eg28 lb1240 g88 lb1240 eg29 lb227 gh7112 lb227 lp414101 lb227 eg63 lds235b eg145 lds749b g2610 lds749b ltt16294 lds749b eg79 ross627 eg119 ross640 eg67 sa29130 eg77 ton573 gd128 ton573 l140349 ton573 ltt13002 ton573 eg139 wolf1346 bd73632 wolf485a eg99 wolf485a hd74280 hr3454 hd100889 hr4468 hd15318 hr718 hd188350 hr7596 hd198001 hr7950 hd214923 hr8634 hd224926 hr9087 sptable-1.0.pre20180612/lib/onedstds/oke1990/000077500000000000000000000000001331023215600201035ustar00rootroot00000000000000sptable-1.0.pre20180612/lib/onedstds/oke1990/bd284211.dat000066400000000000000000000021211331023215600216400ustar00rootroot00000000000000# BD+28 4211 3220. 9.41 1.0 3280. 9.45 1.0 3310. 9.47 1.0 3340. 9.49 1.0 3360. 9.50 1.0 3440. 9.56 1.0 3460. 9.57 1.0 3550. 9.63 1.0 3600. 9.66 1.0 3700. 9.74 1.0 3777. 9.80 1.0 3782. 9.81 1.0 3814. 9.78 1.0 3822. 9.77 1.0 3860. 9.78 1.0 3866. 9.78 1.0 3905. 9.81 1.0 3911. 9.81 1.0 3947. 9.84 1.0 3953. 9.85 1.0 3996. 9.84 1.0 4000. 9.84 1.0 4050. 9.85 1.0 4075. 9.87 1.0 4140. 9.91 1.0 4220. 9.94 1.0 4222. 9.94 1.0 4270. 9.97 1.0 4390. 10.03 1.0 4445. 10.05 1.0 4490. 10.09 1.0 4500. 10.10 1.0 4565. 10.13 1.0 4650. 10.15 1.0 4760. 10.17 1.0 4800. 10.19 1.0 4960. 10.27 1.0 5150. 10.34 1.0 5205. 10.36 1.0 5375. 10.45 1.0 5460. 10.47 1.0 5850. 10.61 1.0 5920. 10.63 1.0 6200. 10.73 1.0 6202. 10.73 1.0 6470. 10.80 1.0 6750. 10.89 1.0 6846. 10.91 1.0 6950. 10.93 1.0 7040. 10.97 1.0 7085. 10.98 1.0 7260. 11.02 1.0 7300. 11.02 1.0 7550. 11.09 1.0 7690. 11.13 1.0 8100. 11.23 1.0 8102. 11.23 1.0 8480. 11.31 1.0 8560. 11.33 1.0 8590. 11.35 1.0 8610. 11.35 1.0 8650. 11.36 1.0 8680. 11.37 1.0 8740. 11.38 1.0 8760. 11.38 1.0 8850. 11.40 1.0 8876. 11.42 1.0 8960. 11.46 1.0 9040. 11.48 1.0 9200. 11.50 1.0 sptable-1.0.pre20180612/lib/onedstds/oke1990/bd75325.dat000066400000000000000000000020731331023215600215720ustar00rootroot00000000000000# BD+75 325 3220. 8.45 1.0 3280. 8.50 1.0 3310. 8.52 1.0 3340. 8.54 1.0 3360. 8.55 1.0 3440. 8.61 1.0 3460. 8.62 1.0 3550. 8.69 1.0 3600. 8.72 1.0 3700. 8.80 1.0 3777. 8.82 1.0 3782. 8.82 1.0 3814. 8.84 1.0 3822. 8.84 1.0 3860. 8.83 1.0 3866. 8.83 1.0 3905. 8.85 1.0 3911. 8.85 1.0 3947. 8.87 1.0 3953. 8.87 1.0 3996. 8.90 1.0 4000. 8.90 1.0 4050. 8.92 1.0 4075. 8.92 1.0 4140. 8.97 1.0 4220. 9.00 1.0 4222. 9.00 1.0 4270. 9.01 1.0 4390. 9.08 1.0 4445. 9.10 1.0 4490. 9.14 1.0 4500. 9.15 1.0 4565. 9.17 1.0 4650. 9.20 1.0 4760. 9.25 1.0 4800. 9.27 1.0 4960. 9.31 1.0 5150. 9.39 1.0 5205. 9.41 1.0 5375. 9.48 1.0 5460. 9.52 1.0 5850. 9.64 1.0 5920. 9.67 1.0 6200. 9.75 1.0 6202. 9.75 1.0 6470. 9.83 1.0 6750. 9.92 1.0 6846. 9.94 1.0 6950. 9.97 1.0 7040. 10.01 1.0 7085. 10.02 1.0 7260. 10.06 1.0 7300. 10.08 1.0 7550. 10.14 1.0 7690. 10.17 1.0 8100. 10.26 1.0 8102. 10.26 1.0 8480. 10.35 1.0 8560. 10.37 1.0 8590. 10.38 1.0 8610. 10.40 1.0 8650. 10.41 1.0 8680. 10.41 1.0 8740. 10.42 1.0 8760. 10.43 1.0 8850. 10.44 1.0 8876. 10.45 1.0 8960. 10.49 1.0 9040. 10.54 1.0 9200. 10.55 1.0 sptable-1.0.pre20180612/lib/onedstds/oke1990/feige110.dat000066400000000000000000000021541331023215600221000ustar00rootroot00000000000000# Feige 110 3220. 10.87 1.0 3280. 10.91 1.0 3310. 10.93 1.0 3340. 10.94 1.0 3360. 10.95 1.0 3440. 11.01 1.0 3460. 11.03 1.0 3550. 11.08 1.0 3600. 11.10 1.0 3700. 11.18 1.0 3777. 11.25 1.0 3782. 11.26 1.0 3814. 11.20 1.0 3822. 11.20 1.0 3860. 11.18 1.0 3866. 11.18 1.0 3905. 11.20 1.0 3911. 11.20 1.0 3947. 11.20 1.0 3953. 11.20 1.0 3996. 11.23 1.0 4000. 11.22 1.0 4050. 11.22 1.0 4075. 11.24 1.0 4140. 11.29 1.0 4220. 11.30 1.0 4222. 11.30 1.0 4270. 11.32 1.0 4390. 11.38 1.0 4445. 11.40 1.0 4490. 11.42 1.0 4500. 11.43 1.0 4565. 11.45 1.0 4650. 11.51 1.0 4760. 11.53 1.0 4800. 11.54 1.0 4960. 11.61 1.0 5150. 11.68 1.0 5205. 11.69 1.0 5375. 11.77 1.0 5460. 11.81 1.0 5850. 11.94 1.0 5920. 11.97 1.0 6200. 12.05 1.0 6202. 12.05 1.0 6470. 12.13 1.0 6750. 12.21 1.0 6846. 12.24 1.0 6950. 12.26 1.0 7040. 12.30 1.0 7085. 12.31 1.0 7260. 12.37 1.0 7300. 12.38 1.0 7550. 12.42 1.0 7690. 12.46 1.0 8100. 12.47 1.0 8102. 12.57 1.0 8480. 12.64 1.0 8560. 12.65 1.0 8590. 12.66 1.0 8610. 12.67 1.0 8650. 12.69 1.0 8680. 12.70 1.0 8740. 12.72 1.0 8760. 12.72 1.0 8850. 12.74 1.0 8876. 12.76 1.0 8960. 12.80 1.0 9040. 12.84 1.0 9200. 12.80 1.0 sptable-1.0.pre20180612/lib/onedstds/oke1990/feige34.dat000066400000000000000000000021531331023215600220240ustar00rootroot00000000000000# Feige 34 3220. 10.06 1.0 3280. 10.10 1.0 3310. 10.12 1.0 3340. 10.14 1.0 3360. 10.15 1.0 3440. 10.21 1.0 3460. 10.22 1.0 3550. 10.29 1.0 3600. 10.32 1.0 3700. 10.40 1.0 3777. 10.44 1.0 3782. 10.44 1.0 3814. 10.43 1.0 3822. 10.43 1.0 3860. 10.42 1.0 3866. 10.42 1.0 3905. 10.43 1.0 3911. 10.43 1.0 3947. 10.45 1.0 3953. 10.45 1.0 3996. 10.48 1.0 4000. 10.48 1.0 4050. 10.50 1.0 4075. 10.51 1.0 4140. 10.56 1.0 4220. 10.60 1.0 4222. 10.60 1.0 4270. 10.62 1.0 4390. 10.67 1.0 4445. 10.71 1.0 4490. 10.73 1.0 4500. 10.74 1.0 4565. 10.77 1.0 4650. 10.81 1.0 4760. 10.86 1.0 4800. 10.88 1.0 4960. 10.94 1.0 5150. 11.01 1.0 5205. 11.03 1.0 5375. 11.10 1.0 5460. 11.13 1.0 5850. 11.26 1.0 5920. 11.28 1.0 6200. 11.37 1.0 6202. 11.37 1.0 6470. 11.45 1.0 6750. 11.53 1.0 6846. 11.56 1.0 6950. 11.58 1.0 7040. 11.60 1.0 7085. 11.62 1.0 7260. 11.65 1.0 7300. 11.66 1.0 7550. 11.71 1.0 7690. 11.75 1.0 8100. 11.82 1.0 8102. 11.82 1.0 8480. 11.90 1.0 8560. 11.92 1.0 8590. 11.93 1.0 8610. 11.93 1.0 8650. 11.94 1.0 8680. 11.94 1.0 8740. 11.97 1.0 8760. 11.97 1.0 8850. 11.98 1.0 8876. 12.00 1.0 8960. 12.03 1.0 9040. 12.07 1.0 9200. 12.06 1.0 sptable-1.0.pre20180612/lib/onedstds/oke1990/feige67.dat000066400000000000000000000021531331023215600220320ustar00rootroot00000000000000# Feige 67 3220. 10.70 1.0 3280. 10.75 1.0 3310. 10.77 1.0 3340. 10.79 1.0 3360. 10.80 1.0 3440. 10.87 1.0 3460. 10.88 1.0 3550. 10.95 1.0 3600. 10.98 1.0 3700. 11.06 1.0 3777. 11.08 1.0 3782. 11.08 1.0 3814. 11.09 1.0 3822. 11.09 1.0 3860. 11.08 1.0 3866. 11.08 1.0 3905. 11.09 1.0 3911. 11.09 1.0 3947. 11.10 1.0 3953. 11.10 1.0 3996. 11.14 1.0 4000. 11.14 1.0 4050. 11.16 1.0 4075. 11.17 1.0 4140. 11.22 1.0 4220. 11.25 1.0 4222. 11.25 1.0 4270. 11.27 1.0 4390. 11.33 1.0 4445. 11.36 1.0 4490. 11.39 1.0 4500. 11.40 1.0 4565. 11.42 1.0 4650. 11.47 1.0 4760. 11.53 1.0 4800. 11.54 1.0 4960. 11.59 1.0 5150. 11.66 1.0 5205. 11.68 1.0 5375. 11.75 1.0 5460. 11.78 1.0 5850. 11.92 1.0 5920. 11.94 1.0 6200. 12.03 1.0 6202. 12.03 1.0 6470. 12.12 1.0 6750. 12.21 1.0 6846. 12.22 1.0 6950. 12.25 1.0 7040. 12.28 1.0 7085. 12.29 1.0 7260. 12.35 1.0 7300. 12.36 1.0 7550. 12.42 1.0 7690. 12.45 1.0 8100. 12.55 1.0 8102. 12.55 1.0 8480. 12.63 1.0 8560. 12.65 1.0 8590. 12.67 1.0 8610. 12.67 1.0 8650. 12.68 1.0 8680. 12.68 1.0 8740. 12.70 1.0 8760. 12.71 1.0 8850. 12.73 1.0 8876. 12.74 1.0 8960. 12.79 1.0 9040. 12.82 1.0 9200. 12.86 1.0 sptable-1.0.pre20180612/lib/onedstds/oke1990/g13831.dat000066400000000000000000000021521331023215600214230ustar00rootroot00000000000000# G138-31 3220. 17.08 1.0 3280. 17.03 1.0 3310. 17.00 1.0 3340. 16.98 1.0 3360. 16.97 1.0 3440. 16.90 1.0 3460. 16.89 1.0 3550. 16.83 1.0 3600. 16.79 1.0 3700. 16.73 1.0 3777. 16.68 1.0 3782. 16.67 1.0 3814. 16.63 1.0 3822. 16.63 1.0 3860. 16.57 1.0 3866. 16.57 1.0 3905. 16.57 1.0 3911. 16.57 1.0 3947. 16.52 1.0 3953. 16.52 1.0 3996. 16.51 1.0 4000. 16.51 1.0 4050. 16.48 1.0 4075. 16.46 1.0 4140. 16.43 1.0 4220. 16.40 1.0 4222. 16.40 1.0 4270. 16.38 1.0 4390. 16.34 1.0 4445. 16.33 1.0 4490. 16.33 1.0 4500. 16.32 1.0 4565. 16.30 1.0 4650. 16.28 1.0 4760. 16.26 1.0 4800. 16.24 1.0 4960. 16.17 1.0 5150. 16.12 1.0 5205. 16.10 1.0 5375. 16.08 1.0 5460. 16.07 1.0 5850. 16.02 1.0 5920. 16.02 1.0 6200. 15.99 1.0 6202. 15.99 1.0 6470. 15.98 1.0 6750. 15.97 1.0 6846. 15.97 1.0 6950. 15.97 1.0 7040. 15.97 1.0 7085. 15.96 1.0 7260. 15.97 1.0 7300. 15.97 1.0 7550. 15.96 1.0 7690. 15.96 1.0 8100. 15.97 1.0 8102. 15.97 1.0 8480. 15.98 1.0 8560. 15.98 1.0 8590. 15.99 1.0 8610. 16.00 1.0 8650. 16.00 1.0 8680. 16.00 1.0 8740. 16.02 1.0 8760. 16.02 1.0 8850. 16.03 1.0 8876. 16.03 1.0 8960. 16.06 1.0 9040. 16.08 1.0 9200. 16.10 1.0 sptable-1.0.pre20180612/lib/onedstds/oke1990/g191b2b.dat000066400000000000000000000021521331023215600216440ustar00rootroot00000000000000# G191B2B 3220. 10.74 1.0 3280. 10.78 1.0 3310. 10.80 1.0 3340. 10.82 1.0 3360. 10.83 1.0 3440. 10.88 1.0 3460. 10.89 1.0 3550. 10.95 1.0 3600. 10.98 1.0 3700. 11.07 1.0 3777. 11.10 1.0 3782. 11.11 1.0 3814. 11.12 1.0 3822. 11.12 1.0 3860. 11.10 1.0 3866. 11.10 1.0 3905. 11.12 1.0 3911. 11.12 1.0 3947. 11.13 1.0 3953. 11.15 1.0 3996. 11.15 1.0 4000. 11.15 1.0 4050. 11.16 1.0 4075. 11.17 1.0 4140. 11.22 1.0 4220. 11.22 1.0 4222. 11.22 1.0 4270. 11.25 1.0 4390. 11.31 1.0 4445. 11.33 1.0 4490. 11.36 1.0 4500. 11.36 1.0 4565. 11.38 1.0 4650. 11.41 1.0 4760. 11.47 1.0 4800. 11.48 1.0 4960. 11.54 1.0 5150. 11.60 1.0 5205. 11.62 1.0 5375. 11.68 1.0 5460. 11.72 1.0 5850. 11.86 1.0 5920. 11.87 1.0 6200. 11.97 1.0 6202. 11.97 1.0 6470. 12.06 1.0 6750. 12.14 1.0 6846. 12.17 1.0 6950. 12.19 1.0 7040. 12.22 1.0 7085. 12.23 1.0 7260. 12.28 1.0 7300. 12.30 1.0 7550. 12.36 1.0 7690. 12.40 1.0 8100. 12.49 1.0 8102. 12.49 1.0 8480. 12.59 1.0 8560. 12.59 1.0 8590. 12.62 1.0 8610. 12.62 1.0 8650. 12.63 1.0 8680. 12.64 1.0 8740. 12.66 1.0 8760. 12.67 1.0 8850. 12.69 1.0 8876. 12.69 1.0 8960. 12.76 1.0 9040. 12.79 1.0 9200. 12.80 1.0 sptable-1.0.pre20180612/lib/onedstds/oke1990/g19374.dat000066400000000000000000000021561331023215600214370ustar00rootroot00000000000000# G193-74.dat 3220. 16.24 1.0 3280. 16.21 1.0 3310. 16.19 1.0 3340. 16.17 1.0 3360. 16.16 1.0 3440. 16.11 1.0 3460. 16.09 1.0 3550. 16.05 1.0 3600. 16.01 1.0 3700. 15.97 1.0 3777. 15.94 1.0 3782. 15.93 1.0 3814. 15.91 1.0 3822. 15.91 1.0 3860. 15.89 1.0 3866. 15.89 1.0 3905. 15.86 1.0 3911. 15.86 1.0 3947. 15.86 1.0 3953. 15.86 1.0 3996. 15.84 1.0 4000. 15.84 1.0 4050. 15.82 1.0 4075. 15.81 1.0 4140. 15.80 1.0 4220. 15.78 1.0 4222. 15.78 1.0 4270. 15.76 1.0 4390. 15.72 1.0 4445. 15.72 1.0 4490. 15.73 1.0 4500. 15.72 1.0 4565. 15.70 1.0 4650. 15.71 1.0 4760. 15.69 1.0 4800. 15.68 1.0 4960. 15.64 1.0 5150. 15.61 1.0 5205. 15.60 1.0 5375. 15.59 1.0 5460. 15.58 1.0 5850. 15.56 1.0 5920. 15.55 1.0 6200. 15.55 1.0 6202. 15.55 1.0 6470. 15.55 1.0 6750. 15.55 1.0 6846. 15.55 1.0 6950. 15.55 1.0 7040. 15.55 1.0 7085. 15.55 1.0 7260. 15.56 1.0 7300. 15.56 1.0 7550. 15.57 1.0 7690. 15.58 1.0 8100. 15.59 1.0 8102. 15.59 1.0 8480. 15.62 1.0 8560. 15.62 1.0 8590. 16.62 1.0 8610. 15.62 1.0 8650. 15.63 1.0 8680. 15.63 1.0 8740. 15.64 1.0 8760. 15.64 1.0 8850. 15.66 1.0 8876. 15.66 1.0 8960. 15.68 1.0 9040. 15.72 1.0 9200. 15.73 1.0 sptable-1.0.pre20180612/lib/onedstds/oke1990/g249.dat000066400000000000000000000021501331023215600212600ustar00rootroot00000000000000# G24-9 3220. 16.77 1.0 3280. 16.72 1.0 3310. 16.69 1.0 3340. 16.66 1.0 3360. 16.65 1.0 3440. 16.58 1.0 3460. 16.57 1.0 3550. 16.49 1.0 3600. 16.43 1.0 3700. 16.41 1.0 3777. 16.38 1.0 3782. 16.38 1.0 3814. 16.32 1.0 3822. 16.32 1.0 3860. 16.29 1.0 3866. 16.28 1.0 3905. 16.24 1.0 3911. 16.23 1.0 3947. 16.22 1.0 3953. 16.21 1.0 3996. 16.20 1.0 4000. 16.18 1.0 4050. 16.15 1.0 4075. 16.14 1.0 4140. 16.12 1.0 4220. 16.08 1.0 4222. 16.08 1.0 4270. 16.06 1.0 4390. 16.01 1.0 4445. 15.99 1.0 4490. 15.98 1.0 4500. 15.99 1.0 4565. 15.96 1.0 4650. 15.93 1.0 4760. 15.90 1.0 4800. 15.88 1.0 4960. 15.86 1.0 5150. 15.81 1.0 5205. 15.80 1.0 5375. 15.78 1.0 5460. 15.77 1.0 5850. 15.72 1.0 5920. 15.72 1.0 6200. 15.69 1.0 6202. 15.69 1.0 6470. 15.66 1.0 6750. 15.65 1.0 6846. 15.64 1.0 6950. 15.64 1.0 7040. 15.64 1.0 7085. 15.63 1.0 7260. 15.63 1.0 7300. 15.63 1.0 7550. 15.63 1.0 7690. 15.63 1.0 8100. 15.64 1.0 8102. 15.64 1.0 8480. 15.64 1.0 8560. 15.64 1.0 8590. 15.65 1.0 8610. 15.65 1.0 8650. 15.65 1.0 8680. 15.66 1.0 8740. 15.67 1.0 8760. 15.67 1.0 8850. 15.68 1.0 8876. 15.69 1.0 8960. 15.71 1.0 9040. 15.73 1.0 9200. 15.77 1.0 sptable-1.0.pre20180612/lib/onedstds/oke1990/gd108.dat000066400000000000000000000021511331023215600214170ustar00rootroot00000000000000# GD 108 3220. 13.02 1.0 3280. 13.06 1.0 3310. 13.07 1.0 3340. 13.08 1.0 3360. 13.09 1.0 3440. 13.13 1.0 3460. 13.14 1.0 3550. 13.19 1.0 3600. 13.21 1.0 3700. 13.26 1.0 3777. 13.24 1.0 3782. 13.23 1.0 3814. 13.17 1.0 3822. 13.17 1.0 3860. 13.07 1.0 3866. 13.07 1.0 3905. 13.05 1.0 3911. 13.05 1.0 3947. 13.05 1.0 3953. 13.06 1.0 3996. 13.08 1.0 4000. 13.07 1.0 4050. 13.07 1.0 4075. 13.09 1.0 4140. 13.12 1.0 4220. 13.14 1.0 4222. 13.14 1.0 4270. 13.15 1.0 4390. 13.20 1.0 4445. 13.22 1.0 4490. 13.25 1.0 4500. 13.25 1.0 4565. 13.27 1.0 4650. 13.31 1.0 4760. 13.36 1.0 4800. 13.39 1.0 4960. 13.42 1.0 5150. 13.48 1.0 5205. 13.49 1.0 5375. 13.55 1.0 5460. 13.57 1.0 5850. 13.68 1.0 5920. 13.70 1.0 6200. 13.77 1.0 6202. 13.77 1.0 6470. 13.85 1.0 6750. 13.92 1.0 6846. 13.94 1.0 6950. 13.94 1.0 7040. 13.98 1.0 7085. 13.99 1.0 7260. 14.05 1.0 7300. 14.05 1.0 7550. 14.10 1.0 7690. 14.13 1.0 8100. 14.22 1.0 8102. 14.22 1.0 8480. 14.29 1.0 8560. 14.30 1.0 8590. 14.32 1.0 8610. 14.32 1.0 8650. 14.32 1.0 8680. 14.33 1.0 8740. 14.35 1.0 8760. 14.36 1.0 8850. 14.39 1.0 8876. 14.40 1.0 8960. 14.43 1.0 9040. 14.46 1.0 9200. 14.48 1.0 sptable-1.0.pre20180612/lib/onedstds/oke1990/gd248.dat000066400000000000000000000021511331023215600214240ustar00rootroot00000000000000# GD 248 3220. 15.21 1.0 3280. 15.20 1.0 3310. 15.19 1.0 3340. 15.19 1.0 3360. 15.18 1.0 3440. 15.17 1.0 3460. 15.16 1.0 3550. 15.15 1.0 3600. 15.14 1.0 3700. 15.14 1.0 3777. 15.17 1.0 3782. 15.18 1.0 3814. 15.13 1.0 3822. 15.12 1.0 3860. 15.11 1.0 3866. 15.10 1.0 3905. 15.08 1.0 3911. 15.08 1.0 3947. 15.07 1.0 3953. 15.07 1.0 3996. 15.06 1.0 4000. 15.04 1.0 4050. 15.05 1.0 4075. 15.05 1.0 4140. 15.05 1.0 4220. 15.05 1.0 4222. 15.05 1.0 4270. 15.05 1.0 4390. 15.05 1.0 4445. 15.05 1.0 4490. 15.06 1.0 4500. 15.07 1.0 4565. 15.06 1.0 4650. 15.09 1.0 4760. 15.08 1.0 4800. 15.07 1.0 4960. 15.07 1.0 5150. 15.07 1.0 5205. 15.06 1.0 5375. 15.07 1.0 5460. 15.08 1.0 5850. 15.12 1.0 5920. 15.13 1.0 6200. 15.14 1.0 6202. 15.14 1.0 6470. 15.17 1.0 6750. 15.20 1.0 6846. 15.21 1.0 6950. 15.22 1.0 7040. 15.22 1.0 7085. 15.23 1.0 7260. 15.25 1.0 7300. 15.26 1.0 7550. 15.29 1.0 7690. 15.30 1.0 8100. 15.37 1.0 8102. 15.37 1.0 8480. 15.43 1.0 8560. 15.44 1.0 8590. 15.45 1.0 8610. 15.46 1.0 8650. 15.47 1.0 8680. 15.47 1.0 8740. 15.49 1.0 8760. 15.51 1.0 8850. 15.53 1.0 8876. 15.54 1.0 8960. 15.57 1.0 9040. 15.59 1.0 9200. 15.63 1.0 sptable-1.0.pre20180612/lib/onedstds/oke1990/hz21.dat000066400000000000000000000021501331023215600213570ustar00rootroot00000000000000# HZ 21 3220. 13.62 1.0 3280. 13.66 1.0 3310. 13.68 1.0 3340. 13.70 1.0 3360. 13.71 1.0 3440. 13.77 1.0 3460. 13.78 1.0 3550. 13.84 1.0 3600. 13.86 1.0 3700. 13.93 1.0 3777. 13.96 1.0 3782. 13.96 1.0 3814. 13.98 1.0 3822. 13.98 1.0 3860. 13.96 1.0 3866. 13.96 1.0 3905. 13.97 1.0 3911. 13.97 1.0 3947. 14.00 1.0 3953. 14.01 1.0 3996. 14.04 1.0 4000. 14.04 1.0 4050. 14.06 1.0 4075. 14.06 1.0 4140. 14.11 1.0 4220. 14.14 1.0 4222. 14.14 1.0 4270. 14.16 1.0 4390. 14.22 1.0 4445. 14.25 1.0 4490. 14.29 1.0 4500. 14.29 1.0 4565. 14.32 1.0 4650. 14.37 1.0 4760. 14.40 1.0 4800. 14.42 1.0 4960. 14.47 1.0 5150. 14.53 1.0 5205. 14.55 1.0 5375. 14.64 1.0 5460. 14.67 1.0 5850. 14.79 1.0 5920. 14.81 1.0 6200. 14.89 1.0 6202. 14.89 1.0 6470. 14.98 1.0 6750. 15.07 1.0 6846. 15.09 1.0 6950. 15.12 1.0 7040. 15.14 1.0 7085. 15.16 1.0 7260. 15.21 1.0 7300. 15.23 1.0 7550. 15.28 1.0 7690. 15.32 1.0 8100. 15.42 1.0 8102. 15.42 1.0 8480. 15.52 1.0 8560. 15.52 1.0 8590. 15.53 1.0 8610. 15.55 1.0 8650. 15.56 1.0 8680. 15.56 1.0 8740. 15.59 1.0 8760. 15.59 1.0 8850. 15.62 1.0 8876. 15.63 1.0 8960. 15.68 1.0 9040. 15.71 1.0 9200. 15.68 1.0 sptable-1.0.pre20180612/lib/onedstds/oke1990/ltt9491.dat000066400000000000000000000021531331023215600217300ustar00rootroot00000000000000# LTT 9491 3220. 14.05 1.0 3280. 14.04 1.0 3310. 14.04 1.0 3340. 14.04 1.0 3360. 14.04 1.0 3440. 14.03 1.0 3460. 14.03 1.0 3550. 14.02 1.0 3600. 14.01 1.0 3700. 14.02 1.0 3777. 14.03 1.0 3782. 14.04 1.0 3814. 14.00 1.0 3822. 14.00 1.0 3860. 13.98 1.0 3866. 13.98 1.0 3905. 13.98 1.0 3911. 13.98 1.0 3947. 13.98 1.0 3953. 13.98 1.0 3996. 13.98 1.0 4000. 13.98 1.0 4050. 13.97 1.0 4075. 13.97 1.0 4140. 13.98 1.0 4220. 13.97 1.0 4222. 13.97 1.0 4270. 13.97 1.0 4390. 13.98 1.0 4445. 13.99 1.0 4490. 14.01 1.0 4500. 14.00 1.0 4565. 14.00 1.0 4650. 14.00 1.0 4760. 14.00 1.0 4800. 14.00 1.0 4960. 14.01 1.0 5150. 14.02 1.0 5205. 14.02 1.0 5375. 14.05 1.0 5460. 14.06 1.0 5850. 14.13 1.0 5920. 14.15 1.0 6200. 14.15 1.0 6202. 14.15 1.0 6470. 14.18 1.0 6750. 14.23 1.0 6846. 14.23 1.0 6950. 14.25 1.0 7040. 14.28 1.0 7085. 14.28 1.0 7260. 14.31 1.0 7300. 14.31 1.0 7550. 14.33 1.0 7690. 14.35 1.0 8100. 14.42 1.0 8102. 14.42 1.0 8480. 14.47 1.0 8560. 14.47 1.0 8590. 14.49 1.0 8610. 14.49 1.0 8650. 14.50 1.0 8680. 14.50 1.0 8740. 14.52 1.0 8760. 14.52 1.0 8850. 14.53 1.0 8876. 14.55 1.0 8960. 14.58 1.0 9040. 14.62 1.0 9200. 14.67 1.0 sptable-1.0.pre20180612/lib/onedstds/oke1990/names.men000066400000000000000000000001571331023215600217120ustar00rootroot00000000000000# Table of alternate names mapped to the names in this directory eg158 feige110 eg71 feige34 eg247 g191b2b sptable-1.0.pre20180612/lib/onedstds/oke1990/standards.men000066400000000000000000000002741331023215600225720ustar00rootroot00000000000000Standard stars in onedstds$oke1990/ bd284211 feige110 feige67 g191b2b g249 gd248 ltt9491 eg71 bd75325 feige34 g13831 g19374 gd108 hz21 eg158 eg247 sptable-1.0.pre20180612/lib/onedstds/redcal/000077500000000000000000000000001331023215600202345ustar00rootroot00000000000000sptable-1.0.pre20180612/lib/onedstds/redcal/40erib.dat000066400000000000000000000012551331023215600220160ustar00rootroot00000000000000# 40 ERI B 3350. 9.539 49. 3400. 9.565 49. 3450. 9.568 49. 3500. 9.568 49. 3571. 9.574 49. 3636. 9.603 49. 3704. 9.627 49. 3862. 9.663 49. 4036. 9.361 49. 4167. 9.33 49. 4255. 9.295 49. 4464. 9.247 49. 4566. 9.258 49. 4785. 9.469 49. 5000. 9.413 49. 5263. 9.464 49. 5556. 9.548 98. 5840. 9.688 98. 6056. 9.658 98. 6436. 9.818 98. 6790. 9.841 98. 7100. 9.871 98. 7550. 10.024 98. 7780. 10.036 98. 8090. 10.036 98. 8370. 10.061 98. 8440. 10.06 160. 8600. 10.06 160. 8760. 10.10 160. 8920. 10.15 160. 9080. 10.13 160. 9240. 10.14 160. 9400. 10.01 160. 9560. 10.13 160. 9720. 10.18 160. 9880. 10.23 160. # Fluxes redward of 8440A from Oke, ApJ Suppl. Series No. 236, Vol. 27, # 21, 1974. sptable-1.0.pre20180612/lib/onedstds/redcal/bd174708.dat000066400000000000000000000026561331023215600220170ustar00rootroot00000000000000# BD+17 4708 3200. 10.815 49. 3250. 10.788 49. 3300. 10.746 49. 3350. 10.701 49. 3400. 10.652 49. 3450. 10.627 49. 3500. 10.587 49. 3571. 10.531 49. 3636. 10.488 49. 3704. 10.437 49. 3760. 10.307 49. 3816. 10.16 49. 3862. 10.135 49. 3945. 10.12 49. 4000. 9.89 49. 4036. 9.857 49. 4065. 9.87 49. 4167. 9.784 49. 4190. 9.767 49. 4255. 9.768 49. 4290. 9.815 49. 4370. 9.75 49. 4464. 9.667 49. 4498. 9.656 49. 4566. 9.63 49. 4604. 9.621 49. 4678. 9.595 49. 4735. 9.582 49. 4785. 9.567 49. 4825. 9.595 49. 4914. 9.56 49. 5000. 9.52 49. 5067. 9.506 49. 5145. 9.488 49. 5206. 9.482 49. 5263. 9.46 49. 5341. 9.446 98. 5440. 9.427 98. 5504. 9.416 98. 5556. 9.406 98. 5630. 9.393 98. 5710. 9.381 98. 5775. 9.369 98. 5840. 9.36 98. 5910. 9.351 98. 5980. 9.34 98. 6056. 9.331 98. 6140. 9.323 98. 6220. 9.315 98. 6290. 9.307 98. 6365. 9.3 98. 6436. 9.29 98. 6473. 9.29 98. 6530. 9.293 98. 6600. 9.288 98. 6670. 9.272 98. 6740. 9.265 98. 6790. 9.26 98. 6850. 9.257 98. 6975. 9.245 98. 7055. 9.24 98. 7100. 9.235 98. 7150. 9.232 98. 7220. 9.228 98. 7270. 9.227 98. 7365. 9.222 98. 7460. 9.216 98. 7550. 9.21 98. 7580. 9.21 98. 7725. 9.205 98. 7780. 9.206 98. 7820. 9.204 98. 7910. 9.203 98. 8000. 9.201 98. 8090. 9.2 98. 8210. 9.198 98. 8260. 9.197 98. 8370. 9.196 98. 8780. 9.194 40. 9300. 9.195 40. 9700. 9.195 40. 9940. 9.198 40. 10260. 9.199 40. 10820. 9.205 40. 11140. 9.210 40. 12000. 9.225 40. # Wavelengths redward of 8780A from Oke & Gunn, ApJ 266, 713, 1983. sptable-1.0.pre20180612/lib/onedstds/redcal/bd262606.dat000066400000000000000000000025611331023215600220050ustar00rootroot00000000000000# BD+26 2606 3200. 11.04 49. 3250. 10.99 49. 3300. 10.95 49. 3350. 10.9 49. 3400. 10.87 49. 3450. 10.83 49. 3500. 10.79 49. 3571. 10.74 49. 3636. 10.7 49. 3704. 10.66 49. 3760. 10.54 49. 3816. 10.39 49. 3862. 10.37 49. 3945. 10.31 49. 4000. 10.14 49. 4036. 10.12 49. 4065. 10.11 49. 4167. 10.04 49. 4190. 10.02 49. 4255. 10. 49. 4290. 10. 49. 4370. 9.99 49. 4464. 9.94 49. 4498. 9.93 49. 4566. 9.91 49. 4604. 9.89 49. 4678. 9.87 49. 4735. 9.85 49. 4785. 9.83 49. 4825. 9.85 49. 4914. 9.82 49. 5000. 9.77 49. 5067. 9.75 49. 5145. 9.74 49. 5206. 9.73 49. 5263. 9.71 49. 5341. 9.7 98. 5440. 9.69 98. 5504. 9.68 98. 5556. 9.67 98. 5630. 9.65 98. 5710. 9.64 98. 5775. 9.63 98. 5840. 9.62 98. 5910. 9.61 98. 5980. 9.6 98. 6056. 9.59 98. 6140. 9.58 98. 6220. 9.57 98. 6290. 9.57 98. 6365. 9.56 98. 6436. 9.55 98. 6473. 9.55 98. 6530. 9.56 98. 6600. 9.55 98. 6670. 9.54 98. 6740. 9.53 98. 6790. 9.53 98. 6850. 9.52 98. 6975. 9.51 98. 7055. 9.51 98. 7100. 9.5 98. 7150. 9.5 98. 7220. 9.5 98. 7270. 9.49 98. 7365. 9.49 98. 7460. 9.49 98. 7550. 9.48 98. 7580. 9.48 98. 7725. 9.48 98. 7780. 9.47 98. 7820. 9.47 98. 7910. 9.47 98. 8000. 9.47 98. 8090. 9.46 98. 8210. 9.46 98. 8260. 9.46 98. 8370. 9.46 98. 8780. 9.457 40. 9300. 9.458 40. 9700. 9.458 40. 9940. 9.461 40. 10260. 9.462 40. 10820. 9.468 40. 11140. 9.473 40. 12000. 9.488 40. # Wavelengths redward of 8780A from Oke & Gunn, ApJ 266, 713, 1983. sptable-1.0.pre20180612/lib/onedstds/redcal/feige24.dat000066400000000000000000000013641331023215600221570ustar00rootroot00000000000000# FEIGE 24 3350. 11.701 49. 3400. 11.725 49. 3450. 11.746 49. 3500. 11.772 49. 3571. 11.782 49. 3636. 11.842 49. 3704. 11.9 49. 3862. 11.995 49. 4036. 12.018 49. 4167. 12.02 49. 4255. 12.056 49. 4464. 12.093 49. 4566. 12.138 49. 4785. 12.215 49. 5000. 12.293 49. 5263. 12.349 49. 5556. 12.424 98. 5840. 12.494 98. 6056. 12.493 98. 6436. 12.474 98. 6790. 12.553 98. 7100. 12.5 98. 7550. 12.345 98. 7780. 12.377 98. 8090. 12.31 98. 8370. 12.277 98. 8400. 12.25 80. 8480. 12.25 80. 8560. 12.19 80. 8640. 12.17 80. 8720. 12.24 80. 8800. 12.20 80. 8880. 12.22 80. 8960. 12.22 80. 9040. 12.18 80. 9120. 12.22 80. 9200. 12.15 80. 9280. 12.16 80. 9360. 12.15 80. 9440. 12.08 80. # Fluxes redward of 8400A from Oke, ApJ Suppl. Series No. 236, Vol. 27, # 21, 1974. sptable-1.0.pre20180612/lib/onedstds/redcal/g191b2b.dat000066400000000000000000000030461331023215600220000ustar00rootroot00000000000000# G191B2B 3200. 10.82 49. 3250. 10.84 49. 3300. 10.85 49. 3350. 10.88 49. 3400. 10.92 49. 3450. 10.95 49. 3500. 10.96 49. 3571. 10.98 49. 3636. 11.02 49. 3704. 11.08 49. 3760. 11.15 49. 3816. 11.19 49. 3862. 11.2 49. 3945. 11.18 49. 4000. 11.17 49. 4036. 11.17 49. 4065. 11.18 49. 4167. 11.2 49. 4190. 11.2 49. 4255. 11.25 49. 4290. 11.27 49. 4370. 11.35 49. 4464. 11.34 49. 4498. 11.35 49. 4566. 11.39 49. 4604. 11.4 49. 4678. 11.43 49. 4735. 11.45 49. 4785. 11.49 49. 4825. 11.53 49. 4914. 11.54 49. 5000. 11.58 49. 5067. 11.62 49. 5145. 11.61 49. 5206. 11.64 49. 5263. 11.67 49. 5341. 11.7 98. 5440. 11.74 98. 5504. 11.77 98. 5556. 11.78 98. 5630. 11.83 98. 5710. 11.86 98. 5775. 11.88 98. 5840. 11.91 98. 5910. 11.94 98. 5980. 11.96 98. 6056. 11.98 98. 6140. 12. 98. 6220. 12.03 98. 6290. 12.04 98. 6365. 12.06 98. 6436. 12.09 98. 6473. 12.1 98. 6530. 12.11 98. 6600. 12.14 98. 6670. 12.16 98. 6740. 12.18 98. 6790. 12.21 98. 6850. 12.23 98. 6975. 12.27 98. 7055. 12.28 98. 7100. 12.3 98. 7150. 12.31 98. 7220. 12.34 98. 7270. 12.36 98. 7365. 12.38 98. 7460. 12.42 98. 7550. 12.48 98. 7580. 12.5 98. 7725. 12.51 98. 7780. 12.49 98. 7820. 12.48 98. 7910. 12.5 98. 8000. 12.51 98. 8090. 12.51 98. 8210. 12.51 98. 8260. 12.52 98. 8370. 12.56 98. 8440. 12.59 160. 8600. 12.61 160. 8760. 12.68 160. 8920. 12.75 160. 9080. 12.76 160. 9240. 12.81 160. 9400. 12.75 160. 9560. 12.79 160. 9720. 12.86 160. 9880. 12.92 160. 10040. 12.95 160. 10200. 12.98 160. 10360. 12.97 160. 10520. 13.08 160. # Fluxes redward of 8440A from Oke, ApJ Suppl. Series No. 236, Vol. 27, # 21, 1974. sptable-1.0.pre20180612/lib/onedstds/redcal/g4718.dat000066400000000000000000000013301331023215600214750ustar00rootroot00000000000000# G47 -18 3350. 15.079 49. 3400. 15.075 49. 3450. 15.082 49. 3500. 15.052 49. 3571. 15.122 49. 3636. 15.078 49. 3704. 15.027 49. 3862. 15.039 49. 4036. 15.028 49. 4167. 14.94 49. 4255. 15.032 49. 4464. 15.011 49. 4566. 15.128 49. 4785. 15.114 49. 5000. 15.134 49. 5263. 15.042 49. 5556. 15.179 98. 5840. 15.122 98. 6056. 15.147 98. 6436. 15.142 98. 6790. 15.197 98. 7100. 15.426 98. 7550. 15.318 98. 7780. 15.333 98. 8090. 15.396 98. 8370. 15.391 98. 8400. 15.31 80. 8480. 15.40 80. 8560. 15.32 80. 8640. 15.44 80. 8720. 15.41 80. 8800. 15.42 80. 8880. 15.35 80. 8960. 15.57 80. 9040. 15.56 80. 9120. 15.63 80. 9200. 15.53 80. 9280. 15.47 80. # Fluxes redward of 8400A from Oke, ApJ Suppl. Series No. 236, Vol. 27, # 21, 1974. sptable-1.0.pre20180612/lib/onedstds/redcal/g9937.dat000066400000000000000000000013241331023215600215100ustar00rootroot00000000000000# G99 -37 3350. 15.484 49. 3400. 15.435 49. 3450. 15.369 49. 3500. 15.305 49. 3571. 15.239 49. 3636. 15.245 49. 3704. 15.219 49. 3862. 15.187 49. 4036. 14.965 49. 4167. 14.929 49. 4255. 15.061 49. 4464. 14.75 49. 4566. 14.698 49. 4785. 14.588 49. 5000. 14.603 49. 5263. 14.471 49. 5556. 14.507 98. 5840. 14.438 98. 6056. 14.398 98. 6436. 14.318 98. 6790. 14.342 98. 7100. 14.334 98. 7550. 14.373 98. 7780. 14.365 98. 8090. 14.337 98. 8370. 14.288 98. 8440. 14.27 160. 8600. 14.28 160. 8760. 14.33 160. 8920. 14.35 160. 9080. 14.34 160. 9240. 14.40 160. 9400. 14.32 160. 9560. 14.36 160. 9720. 14.37 160. 9880. 14.39 160. 10040. 14.36 160. # Fluxes redward of 8440A from Oke, ApJ Suppl. Series No. 236, Vol. 27, # 21, 1974. sptable-1.0.pre20180612/lib/onedstds/redcal/gd140.dat000066400000000000000000000014531331023215600215500ustar00rootroot00000000000000# GD 140 3200. 11.92 49. 3250. 11.973 49. 3300. 12.025 49. 3350. 12.051 49. 3400. 12.093 49. 3450. 12.101 49. 3500. 12.11 49. 3571. 12.125 49. 3636. 12.148 49. 3704. 12.192 49. 3862. 12.259 49. 4036. 12.204 49. 4167. 12.144 49. 4255. 12.146 49. 4464. 12.139 49. 4566. 12.103 49. 4785. 12.299 49. 5000. 12.31 49. 5263. 12.299 49. 5556. 12.413 98. 5840. 12.508 98. 6056. 12.584 98. 6436. 12.762 98. 6790. 12.833 98. 7100. 12.899 98. 7550. 13.068 98. 7780. 13.132 98. 8090. 13.16 98. 8370. 13.156 98. 8480. 13.17 80. 8640. 13.19 80. 8800. 13.24 80. 8960. 13.20 80. 9020. 13.25 80. 9280. 13.30 80. 9440. 13.17 80. 9600. 13.18 80. 9760. 13.23 80. 9920. 13.39 80. 10080. 13.55 80. 10240. 13.39 80. 10400. 13.52 80. 10560. 13.42 80. # Fluxes redward of 8480A from Oke, ApJ Suppl. Series No. 236, Vol. 27, # 21, 1974. sptable-1.0.pre20180612/lib/onedstds/redcal/gd190.dat000066400000000000000000000012521331023215600215520ustar00rootroot00000000000000# GD 190 3200. 14.271 49. 3250. 14.235 49. 3300. 14.282 49. 3350. 14.266 49. 3400. 14.285 49. 3450. 14.294 49. 3500. 14.29 49. 3571. 14.326 49. 3636. 14.351 49. 3704. 14.376 49. 3862. 14.443 49. 4036. 14.478 49. 4167. 14.36 49. 4255. 14.302 49. 4464. 14.648 49. 4566. 14.455 49. 4785. 14.425 49. 5000. 14.663 49. 5263. 14.585 49. 5556. 14.663 98. 5840. 14.892 98. 6056. 14.882 98. 6436. 14.902 98. 6790. 15.21 98. 7100. 15.058 98. 7550. 15.223 98. 7780. 15.235 98. 8090. 15.304 98. 8370. 15.308 98. 8660. 15.49 40. 9020. 15.43 40. 9380. 15.62 40. 9740. 15.47 40. 10100. 15.52 40. 10460. 15.65 40. # Fluxes redward of 8660A from Oke, ApJ Suppl. Series No. 236, Vol. 27, # 21, 1974. sptable-1.0.pre20180612/lib/onedstds/redcal/grw705824.dat000066400000000000000000000014161331023215600222210ustar00rootroot00000000000000# GRW +70 5824 3200. 12.359 49. 3250. 12.404 49. 3300. 12.439 49. 3350. 12.503 49. 3400. 12.521 49. 3450. 12.545 49. 3500. 12.562 49. 3571. 12.585 49. 3636. 12.579 49. 3704. 12.625 49. 3862. 12.756 49. 4036. 12.448 49. 4167. 12.445 49. 4255. 12.494 49. 4464. 12.455 49. 4566. 12.49 49. 4785. 12.62 49. 5000. 12.668 49. 5263. 12.717 49. 5556. 12.869 98. 5840. 12.894 98. 6056. 12.988 98. 6436. 13.062 98. 6790. 13.143 98. 7100. 13.247 98. 7550. 13.356 98. 7780. 13.4 98. 8090. 13.44 98. 8370. 13.408 98. 8440. 13.39 40. 8600. 13.45 40. 8760. 13.48 40. 8920. 13.57 40. 9080. 13.59 40. 9240. 13.64 40. 9400. 13.69 40. 9560. 13.59 40. 9720. 13.67 40. 9880. 13.76 40. 10040. 13.97 40. 10200. 13.82 40. # Fluxes redward of 8440A from Oke, ApJ Suppl. Series No. 236, Vol. 27, # 21, 1974. sptable-1.0.pre20180612/lib/onedstds/redcal/grw708247.dat000066400000000000000000000013111331023215600222150ustar00rootroot00000000000000# GRW +70 8247 3350. 13.114 49. 3400. 13.12 49. 3450. 13.088 49. 3500. 13.077 49. 3571. 13.074 49. 3636. 13.121 49. 3704. 13.136 49. 3862. 13.141 49. 4036. 13.07 49. 4167. 13.115 49. 4255. 13.052 49. 4464. 13.076 49. 4566. 13.087 49. 4785. 13.041 49. 5000. 13.088 49. 5263. 13.092 49. 5556. 13.121 98. 5840. 13.306 98. 6056. 13.3 98. 6436. 13.292 98. 6790. 13.343 98. 7100. 13.475 98. 7550. 13.453 98. 7780. 13.484 98. 8090. 13.48 98. 8370. 13.564 98. 8392. 13.58 80. 8472. 13.66 80. 8552. 13.64 80. 8632. 13.64 80. 8712. 13.64 80. 8792. 13.48 80. 8872. 13.64 80. 8952. 13.53 80. 9032. 13.56 80. 9112. 13.68 80. 9192. 13.58 80. # Fluxes redward of 8392. from Oke, ApJ Suppl. Series No. 236, Vol. 27, # 21, 1974. sptable-1.0.pre20180612/lib/onedstds/redcal/grw738031.dat000066400000000000000000000013731331023215600222170ustar00rootroot00000000000000# GRW +73 8031 3350. 12.891 49. 3400. 12.89 49. 3450. 12.872 49. 3500. 12.899 49. 3571. 12.878 49. 3636. 12.893 49. 3704. 12.934 49. 3862. 12.962 49. 4036. 12.668 49. 4167. 12.585 49. 4255. 12.494 49. 4464. 12.487 49. 4566. 12.484 49. 4785. 12.66 49. 5000. 12.628 49. 5263. 12.671 49. 5556. 12.752 98. 5840. 12.832 98. 6056. 12.936 98. 6436. 13.035 98. 6790. 13.063 98. 7100. 13.094 98. 7550. 13.234 98. 7780. 13.265 98. 8090. 13.252 98. 8370. 13.265 98. 8392. 13.25 80. 8472. 13.23 80. 8552. 13.32 80. 8632. 13.32 80. 8712. 13.44 80. 8792. 13.35 80. 8872. 13.36 80. 8952. 13.41 80. 9032. 13.35 80. 9112. 13.48 80. 9192. 13.46 80. 9272. 13.44 80. 9352. 13.58 80. 9432. 13.33 80. # Fluxes redward of 8472A from Oke, ApJ Suppl Series No. 236, Vol. 27, # 21, 1974. sptable-1.0.pre20180612/lib/onedstds/redcal/hd19445.dat000066400000000000000000000025351331023215600217350ustar00rootroot00000000000000# HD 19445 3200. 9.34 49. 3250. 9.3 49. 3300. 9.25 49. 3350. 9.21 49. 3400. 9.17 49. 3450. 9.12 49. 3500. 9.09 49. 3571. 9.03 49. 3636. 8.98 49. 3704. 8.93 49. 3760. 8.85 49. 3816. 8.74 49. 3862. 8.72 49. 3945. 8.6 49. 4000. 8.5 49. 4036. 8.49 49. 4065. 8.48 49. 4167. 8.4 49. 4190. 8.39 49. 4255. 8.39 49. 4290. 8.41 49. 4370. 8.36 49. 4464. 8.27 49. 4498. 8.26 49. 4566. 8.23 49. 4604. 8.23 49. 4678. 8.21 49. 4735. 8.19 49. 4785. 8.16 49. 4825. 8.19 49. 4914. 8.16 49. 5000. 8.12 49. 5067. 8.1 49. 5145. 8.08 49. 5206. 8.06 49. 5263. 8.04 49. 5341. 8.03 98. 5440. 8.01 98. 5504. 7.99 98. 5556. 7.98 98. 5630. 7.97 98. 5710. 7.96 98. 5775. 7.94 98. 5840. 7.93 98. 5910. 7.92 98. 5980. 7.91 98. 6056. 7.9 98. 6140. 7.89 98. 6220. 7.88 98. 6290. 7.88 98. 6365. 7.87 98. 6436. 7.86 98. 6473. 7.86 98. 6530. 7.85 98. 6600. 7.85 98. 6670. 7.84 98. 6740. 7.84 98. 6790. 7.84 98. 6850. 7.83 98. 6975. 7.82 98. 7055. 7.82 98. 7100. 7.81 98. 7150. 7.81 98. 7220. 7.81 98. 7270. 7.8 98. 7365. 7.8 98. 7460. 7.79 98. 7550. 7.79 98. 7580. 7.79 98. 7725. 7.78 98. 7780. 7.78 98. 7820. 7.78 98. 7910. 7.77 98. 8000. 7.77 98. 8090. 7.76 98. 8210. 7.76 98. 8260. 7.76 98. 8370. 7.76 98. 8780. 7.755 40. 9300. 7.752 40. 9700. 7.752 40. 9940. 7.752 40. 10260. 7.752 40. 10820. 7.760 40. 11140. 7.760 40. 12000. 7.763 40. # Wavelengths redward of 8780A from Oke & Gunn, ApJ 266, 713, 1983. sptable-1.0.pre20180612/lib/onedstds/redcal/hd84937.dat000066400000000000000000000025401331023215600217410ustar00rootroot00000000000000# HD 84937 3200. 9.57 49. 3250. 9.53 49. 3300. 9.49 49. 3350. 9.46 49. 3400. 9.42 49. 3450. 9.39 49. 3500. 9.36 49. 3571. 9.31 49. 3636. 9.27 49. 3704. 9.22 49. 3760. 9.1 49. 3816. 8.93 49. 3862. 8.9 49. 3945. 8.84 49. 4000. 8.67 49. 4036. 8.64 49. 4065. 8.65 49. 4167. 8.57 49. 4190. 8.56 49. 4255. 8.55 49. 4290. 8.59 49. 4370. 8.59 49. 4464. 8.47 49. 4498. 8.47 49. 4566. 8.45 49. 4604. 8.44 49. 4678. 8.42 49. 4735. 8.4 49. 4785. 8.4 49. 4825. 8.43 49. 4914. 8.41 49. 5000. 8.35 49. 5067. 8.34 49. 5145. 8.33 49. 5206. 8.32 49. 5263. 8.31 49. 5341. 8.3 98. 5440. 8.28 98. 5504. 8.27 98. 5556. 8.26 98. 5630. 8.25 98. 5710. 8.24 98. 5775. 8.23 98. 5840. 8.22 98. 5910. 8.22 98. 5980. 8.21 98. 6056. 8.19 98. 6140. 8.19 98. 6220. 8.19 98. 6290. 8.18 98. 6365. 8.18 98. 6436. 8.17 98. 6473. 8.17 98. 6530. 8.19 98. 6600. 8.19 98. 6670. 8.17 98. 6740. 8.16 98. 6790. 8.15 98. 6850. 8.15 98. 6975. 8.14 98. 7055. 8.14 98. 7100. 8.13 98. 7150. 8.13 98. 7220. 8.13 98. 7270. 8.13 98. 7365. 8.12 98. 7460. 8.12 98. 7550. 8.12 98. 7580. 8.12 98. 7725. 8.12 98. 7780. 8.12 98. 7820. 8.12 98. 7910. 8.12 98. 8000. 8.12 98. 8090. 8.11 98. 8210. 8.11 98. 8260. 8.11 98. 8370. 8.11 98. 8780. 8.115 40. 9300. 8.119 40. 9700. 8.123 40. 9940. 8.130 40. 10260. 8.137 40. 10820. 8.150 40. 11140. 8.160 40. 12000. 8.180 40. # Wavelengths redward of 8780A from Oke & Gunn, ApJ 266, 713, 1983. sptable-1.0.pre20180612/lib/onedstds/redcal/he3.dat000066400000000000000000000030251331023215600214050ustar00rootroot00000000000000# HE 3 3200. 11.64 49. 3250. 11.65 49. 3300. 11.67 49. 3350. 11.7 49. 3400. 11.73 49. 3450. 11.73 49. 3500. 11.74 49. 3571. 11.75 49. 3636. 11.8 49. 3704. 11.83 49. 3760. 11.89 49. 3816. 11.95 49. 3862. 11.91 49. 3945. 11.92 49. 4000. 11.83 49. 4036. 11.73 49. 4065. 11.71 49. 4167. 11.66 49. 4190. 11.62 49. 4255. 11.65 49. 4290. 11.76 49. 4370. 11.81 49. 4464. 11.67 49. 4498. 11.66 49. 4566. 11.7 49. 4604. 11.71 49. 4678. 11.72 49. 4735. 11.76 49. 4785. 11.84 49. 4825. 12.01 49. 4914. 11.97 49. 5000. 11.87 49. 5067. 11.88 49. 5145. 11.85 49. 5206. 11.9 49. 5263. 11.92 49. 5341. 11.96 98. 5440. 11.98 98. 5504. 12.02 98. 5556. 12.04 98. 5630. 12.05 98. 5710. 12.09 98. 5775. 12.11 98. 5840. 12.12 98. 5910. 12.16 98. 5980. 12.19 98. 6056. 12.2 98. 6140. 12.2 98. 6220. 12.22 98. 6290. 12.24 98. 6365. 12.28 98. 6436. 12.33 98. 6473. 12.36 98. 6530. 12.49 98. 6600. 12.49 98. 6670. 12.42 98. 6740. 12.41 98. 6790. 12.41 98. 6850. 12.42 98. 6975. 12.47 98. 7055. 12.5 98. 7100. 12.49 98. 7150. 12.49 98. 7220. 12.52 98. 7270. 12.56 98. 7365. 12.59 98. 7460. 12.58 98. 7550. 12.63 98. 7580. 12.66 98. 7725. 12.63 98. 7780. 12.63 98. 7820. 12.65 98. 7910. 12.68 98. 8000. 12.68 98. 8090. 12.68 98. 8210. 12.68 98. 8260. 12.69 98. 8370. 12.76 98. 8400. 12.79 80. 8480. 12.75 80. 8560. 12.74 80. 8640. 12.76 80. 8720. 12.84 80. 8800. 12.86 80. 8880. 12.83 80. 8960. 12.85 80. 9040. 12.88 80. 9120. 12.88 80. 9200. 12.88 80. 9280. 12.92 80. 9360. 12.80 80. 9440. 12.83 80. # Fluxes redward of 8400A from Oke, ApJ Suppl. Series No. 236, Vol. 27, # 21, 1974. sptable-1.0.pre20180612/lib/onedstds/redcal/hz29.dat000066400000000000000000000011441331023215600215220ustar00rootroot00000000000000# HZ 29 3350. 13.783 49. 3400. 13.815 49. 3450. 13.795 49. 3500. 13.799 49. 3571. 13.744 49. 3636. 13.456 49. 3704. 13.816 49. 3862. 13.832 49. 4036. 13.863 49. 4167. 13.8 49. 4255. 13.76 49. 4464. 13.911 49. 4566. 13.858 49. 4785. 13.953 49. 5000. 14.033 49. 5263. 14.102 49. 5556. 14.164 98. 5840. 14.284 98. 6056. 14.306 98. 6436. 14.377 98. 6790. 14.479 98. 7100. 14.532 98. 7550. 14.591 98. 7780. 14.706 98. 8090. 14.774 98. 8370. 14.685 98. 8400. 14.65 80. 8480. 14.78 80. 8560. 14.70 80. 8640. 14.76 80. 8720. 14.78 80. # Fluxes redward of 8400A from Oke, ApJ Suppl. Series No. 236, Vol. 27, # 21, 1974. sptable-1.0.pre20180612/lib/onedstds/redcal/hz43.dat000066400000000000000000000014051331023215600215160ustar00rootroot00000000000000# HZ 43 3350. 12.181 49. 3400. 12.195 49. 3450. 12.248 49. 3500. 12.278 49. 3571. 12.282 49. 3636. 12.304 49. 3704. 12.351 49. 3862. 12.477 49. 4036. 12.422 49. 4167. 12.556 49. 4255. 12.541 49. 4464. 12.61 49. 4566. 12.628 49. 4785. 12.772 49. 5000. 12.813 49. 5263. 12.884 49. 5556. 13.019 98. 5840. 13.078 98. 6056. 13.14 98. 6436. 13.252 98. 6790. 13.417 98. 7100. 13.484 98. 7550. 13.645 98. 7780. 13.635 98. 8090. 13.69 98. 8370. 13.72 98. 8432. 13.71 160. 8592. 13.69 160. 8752. 13.78 160. 8912. 13.76 160. 9072. 13.80 160. 9232. 13.79 160. 9392. 13.78 160. 9552. 13.84 160. 9712. 13.80 160. 9872. 13.97 160. 10032. 13.90 160. 10192. 14.01 160. 10360. 13.99 160. 10520. 14.00 160. # Fluxes redward of 8432A from Oke, ApJ Suppl. Series No. 236, Vol. 27, # 21, 1974. sptable-1.0.pre20180612/lib/onedstds/redcal/hz44.dat000066400000000000000000000030511331023215600215160ustar00rootroot00000000000000# HZ 44 3200. 10.86 49. 3250. 10.85 49. 3300. 10.85 49. 3350. 10.86 49. 3400. 10.87 49. 3450. 10.89 49. 3500. 10.9 49. 3571. 10.93 49. 3636. 10.97 49. 3704. 11.03 49. 3760. 11.08 49. 3816. 11.12 49. 3862. 11.11 49. 3945. 11.12 49. 4000. 11.12 49. 4036. 11.11 49. 4065. 11.12 49. 4167. 11.14 49. 4190. 11.12 49. 4255. 11.19 49. 4290. 11.22 49. 4370. 11.31 49. 4464. 11.29 49. 4498. 11.3 49. 4566. 11.35 49. 4604. 11.37 49. 4678. 11.42 49. 4735. 11.39 49. 4785. 11.4 49. 4825. 11.42 49. 4914. 11.45 49. 5000. 11.48 49. 5067. 11.52 49. 5145. 11.49 49. 5206. 11.51 49. 5263. 11.53 49. 5341. 11.56 98. 5440. 11.6 98. 5504. 11.62 98. 5556. 11.66 98. 5630. 11.69 98. 5710. 11.72 98. 5775. 11.73 98. 5840. 11.74 98. 5910. 11.75 98. 5980. 11.78 98. 6056. 11.79 98. 6140. 11.81 98. 6220. 11.83 98. 6290. 11.84 98. 6365. 11.85 98. 6436. 11.89 98. 6473. 11.9 98. 6530. 11.93 98. 6600. 11.97 98. 6670. 12.02 98. 6740. 12.04 98. 6790. 12.06 98. 6850. 12.08 98. 6975. 12.11 98. 7055. 12.13 98. 7100. 12.13 98. 7150. 12.14 98. 7220. 12.18 98. 7270. 12.2 98. 7365. 12.23 98. 7460. 12.27 98. 7550. 12.33 98. 7580. 12.36 98. 7725. 12.38 98. 7780. 12.37 98. 7820. 12.36 98. 7910. 12.39 98. 8000. 12.42 98. 8090. 12.43 98. 8210. 12.42 98. 8260. 12.42 98. 8370. 12.45 98. 8432. 12.48 160. 8592. 12.49 160. 8752. 12.57 160. 8912. 12.60 160. 9072. 12.57 160. 9232. 12.64 160. 9392. 12.68 160. 9552. 12.67 160. 9712. 12.68 160. 9872. 12.75 160. 10032. 12.83 160. 10192. 12.80 160. 10360. 12.84 160. 10520. 12.84 160. # Fluxes redward of 8432A from Oke, ApJ Suppl. Series No. 236, Vol. 27, # 21, 1974. sptable-1.0.pre20180612/lib/onedstds/redcal/l13633.dat000066400000000000000000000014101331023215600215550ustar00rootroot00000000000000# L1363 -3 3350. 13.599 49. 3400. 13.575 49. 3450. 13.559 49. 3500. 13.533 49. 3571. 13.489 49. 3636. 13.495 49. 3704. 13.509 49. 3862. 13.486 49. 4036. 13.361 49. 4167. 13.3 49. 4255. 13.309 49. 4464. 13.279 49. 4566. 13.306 49. 4785. 13.26 49. 5000. 13.263 49. 5263. 13.254 49. 5556. 13.276 98. 5840. 13.278 98. 6056. 13.27 98. 6436. 13.257 98. 6790. 13.319 98. 7100. 13.329 98. 7550. 13.414 98. 7780. 13.412 98. 8090. 13.408 98. 8370. 13.401 98. 8432. 13.37 160. 8592. 13.40 160. 8752. 13.48 160. 8912. 13.45 160. 9072. 13.48 160. 9232. 13.48 160. 9392. 13.63 160. 9552. 13.63 160. 9712. 13.51 160. 9872. 13.60 160. 10032. 13.60 160. 10192. 13.62 160. 10360. 13.56 160. 10520. 13.68 160. # Fluxes redward of 8432A from Oke, ApJ Suppl. Series No. 236, Vol. 27, # 21, 1974. sptable-1.0.pre20180612/lib/onedstds/redcal/l151234b.dat000066400000000000000000000014001331023215600217760ustar00rootroot00000000000000# L1512 -34B 3200. 13.207 49. 3250. 13.225 49. 3300. 13.244 49. 3350. 13.256 49. 3400. 13.288 49. 3450. 13.245 49. 3500. 13.243 49. 3571. 13.264 49. 3636. 13.227 49. 3704. 13.266 49. 3862. 13.302 49. 4036. 12.905 49. 4167. 12.819 49. 4255. 12.817 49. 4464. 12.704 49. 4566. 12.711 49. 4785. 12.897 49. 5000. 12.885 49. 5263. 12.866 49. 5556. 12.922 98. 5840. 13.033 98. 6056. 13.058 98. 6436. 13.199 98. 6790. 13.205 98. 7100. 13.153 98. 7550. 13.383 98. 7780. 13.384 98. 8090. 13.418 98. 8370. 13.426 98. 8440. 13.39 40. 8600. 13.44 40. 8760. 13.58 40. 8920. 13.56 40. 9080. 13.58 40. 9240. 13.57 40. 9400. 13.67 40. 9560. 13.70 40. 9720. 13.68 40. 9880. 13.67 40. 10040. 13.73 40. # Fluxes redward of 8440A from Oke, ApJ Suppl. Series No. 236, Vol. 27, # 21, 1974. sptable-1.0.pre20180612/lib/onedstds/redcal/l74546a.dat000066400000000000000000000014141331023215600217340ustar00rootroot00000000000000# L745 -46A 3350. 13.529 49. 3400. 13.455 49. 3450. 13.408 49. 3500. 13.368 49. 3571. 13.333 49. 3636. 13.297 49. 3704. 13.277 49. 3862. 13.232 49. 4036. 13.167 49. 4167. 13.09 49. 4255. 13.092 49. 4464. 13.003 49. 4566. 13.016 49. 4785. 12.984 49. 5000. 12.963 49. 5263. 12.941 49. 5556. 12.906 98. 5840. 12.948 98. 6056. 12.901 98. 6436. 12.881 98. 6790. 12.916 98. 7100. 12.915 98. 7550. 12.978 98. 7780. 12.991 98. 8090. 12.974 98. 8370. 12.978 98. 8440. 12.96 160. 8600. 12.95 160. 8760. 13.00 160. 8920. 13.00 160. 9080. 13.00 160. 9240. 12.91 160. 9400. 12.96 160. 9560. 12.95 160. 9720. 13.05 160. 9880. 13.07 160. 10040. 13.06 160. 10200. 13.05 160. 10360. 13.11 160. 10520. 13.10 160. # Fluxes redward of 8440A from Oke, ApJ Suppl. Series No. 236, Vol. 27, # 21, 1974. sptable-1.0.pre20180612/lib/onedstds/redcal/l93080.dat000066400000000000000000000011771331023215600215730ustar00rootroot00000000000000# L930 -80 3350. 14.541 49. 3400. 14.555 49. 3450. 14.558 49. 3500. 14.55 49. 3571. 14.535 49. 3636. 14.573 49. 3704. 14.605 49. 3862. 14.652 49. 4036. 14.674 49. 4167. 14.544 49. 4255. 14.549 49. 4464. 14.732 49. 4566. 14.662 49. 4785. 14.643 49. 5000. 14.793 49. 5263. 14.777 49. 5556. 14.872 98. 5840. 15.038 98. 6056. 14.947 98. 6436. 14.987 98. 6790. 15.136 98. 7100. 15.169 98. 7550. 15.291 98. 7780. 15.286 98. 8090. 15.355 98. 8370. 15.346 98. 8440. 15.28 160. 8600. 15.19 160. 8760. 15.42 160. 8920. 15.30 160. 9080. 15.43 160. 9240. 15.43 160. # Fluxes redward of 8440A from Oke, ApJ Suppl. Series No. 236, Vol. 27, # 21, 1974. sptable-1.0.pre20180612/lib/onedstds/redcal/l97030.dat000066400000000000000000000013421331023215600215640ustar00rootroot00000000000000# L970 -30 3200. 13.05 49. 3250. 13.105 49. 3300. 13.112 49. 3350. 13.091 49. 3400. 13.102 49. 3450. 13.095 49. 3500. 13.095 49. 3571. 13.098 49. 3636. 13.102 49. 3704. 13.123 49. 3862. 13.149 49. 4036. 12.88 49. 4167. 12.835 49. 4255. 12.768 49. 4464. 12.682 49. 4566. 12.697 49. 4785. 12.918 49. 5000. 12.848 49. 5263. 12.884 49. 5556. 12.966 98. 5840. 13.145 98. 6056. 13.073 98. 6436. 13.278 98. 6790. 13.315 98. 7100. 13.348 98. 7550. 13.522 98. 7780. 13.53 98. 8090. 13.56 98. 8370. 13.556 98. 8440. 13.52 160. 8600. 13.56 160. 8760. 13.57 160. 8920. 13.69 160. 9080. 13.73 160. 9240. 13.72 160. 9560. 13.81 160. 9720. 13.74 160. 9880. 13.76 160. # Fluxes redward of 8440A from Oke, ApJ Suppl. Series No. 236, Vol. 27, # 21, 1974. sptable-1.0.pre20180612/lib/onedstds/redcal/lds235b.dat000066400000000000000000000011361331023215600221050ustar00rootroot00000000000000# LDS 235B 3350. 15.445 49. 3400. 15.415 49. 3450. 15.399 49. 3500. 15.398 49. 3571. 15.427 49. 3636. 15.416 49. 3704. 15.437 49. 3862. 15.474 49. 4036. 15.537 49. 4167. 15.417 49. 4255. 15.395 49. 4464. 15.597 49. 4566. 15.498 49. 4785. 15.511 49. 5000. 15.623 49. 5263. 15.597 49. 5556. 15.656 98. 5840. 15.859 98. 6056. 15.762 98. 6436. 15.796 98. 6790. 15.926 98. 7100. 15.988 98. 7550. 16.102 98. 7780. 16.116 98. 8090. 16.135 98. 8370. 16.269 98. 8440. 16.29 160. 8600. 16.15 160. 8760. 16.10 160. 8920. 16.54 160. # Fluxes redward of 8440A from Oke, ApJ Suppl. Series No. 236, Vol. 27, # 21, 1974. sptable-1.0.pre20180612/lib/onedstds/redcal/lds749b.dat000066400000000000000000000014151331023215600221170ustar00rootroot00000000000000# LDS 749B 3200. 14.705 49. 3250. 14.446 49. 3300. 14.558 49. 3350. 14.525 49. 3400. 14.523 49. 3450. 14.531 49. 3500. 14.498 49. 3571. 14.506 49. 3636. 14.538 49. 3704. 14.544 49. 3862. 14.62 49. 4036. 14.513 49. 4167. 14.518 49. 4255. 14.504 49. 4464. 14.655 49. 4566. 14.546 49. 4785. 14.546 49. 5000. 14.685 49. 5263. 14.651 49. 5556. 14.703 98. 5840. 14.852 98. 6056. 14.828 98. 6436. 14.848 98. 6790. 14.948 98. 7100. 15.003 98. 7550. 15.106 98. 7780. 15.115 98. 8090. 15.16 98. 8370. 15.178 98. 8440. 15.16 40. 8600. 15.15 40. 8760. 15.25 40. 8920. 15.15 40. 9080. 15.29 40. 9240. 15.27 40. 9400. 15.47 40. 9560. 15.24 40. 9720. 15.41 40. 9880. 15.38 40. 10040. 15.36 40. 10200. 15.37 40. # Fluxes redward of 8440A from Oke, ApJ Suppl. Series No. 236, Vol. 27, # 21, 1974. sptable-1.0.pre20180612/lib/onedstds/redcal/names.men000066400000000000000000000011671331023215600220450ustar00rootroot00000000000000# Table of alternate names mapped to the names in this directory bd7781 40erib eg33 40erib sao131065 40erib eg20 feige24 eg247 g191b2b eg182 g4718 eg248 g9937 eg184 gd140 eg193 gd190 eg102 grw705824 eg129 grw708247 eg144 grw738031 eg50 he3 amcvn hz29 eg91 hz29 eg98 hz43 l14094 hz43 eg148 l13633 g12627 l13633 g14563 l13633 lft1655 l13633 eg162 l151234b eg54 l74546a eg149 l93080 g2631 l93080 ltt8702 l93080 eg76 l97030 g16350 l97030 ltt4099 l97030 eg63 lds235b eg145 lds749b g2610 lds749b ltt16294 lds749b eg79 ross627 eg119 ross640 eg67 sa29130 eg139 wolf1346 bd73632 wolf485a eg99 wolf485a sptable-1.0.pre20180612/lib/onedstds/redcal/ross627.dat000066400000000000000000000016251331023215600221570ustar00rootroot00000000000000# ROSS 627 3200. 14.887 49. 3250. 14.896 49. 3300. 14.85 49. 3350. 14.813 49. 3400. 14.802 49. 3450. 14.755 49. 3500. 14.725 49. 3571. 14.688 49. 3636. 14.656 49. 3704. 14.621 49. 3862. 14.57 49. 4036. 14.5 49. 4167. 14.393 49. 4255. 14.364 49. 4464. 14.333 49. 4566. 14.258 49. 4785. 14.217 49. 5000. 14.193 49. 5263. 14.14 49. 5556. 14.12 98. 5840. 14.082 98. 6056. 14.076 98. 6436. 14.082 98. 6790. 14.077 98. 7100. 14.039 98. 7550. 14.15 98. 7780. 14.11 98. 8090. 14.17 98. 8370. 14.026 98. 8440. 14.01 80. 8520. 14.06 80. 8600. 14.02 80. 8680. 14.12 80. 8760. 14.02 80. 8840. 14.00 80. 8920. 14.02 80. 9000. 14.02 80. 9080. 14.12 80. 9160. 14.09 80. 9240. 14.11 80. 9320. 14.01 80. 9400. 13.97 80. 9480. 14.08 80. 9560. 13.90 80. 9640. 13.99 80. 9720. 13.96 80. 9800. 14.01 80. 9880. 13.91 80. 9960. 14.02 80. 10040. 14.03 80. # Fluxes redward of 8440A from Oke, ApJ Suppl. Series No. 236, Vol. 27, # 21, 1974. sptable-1.0.pre20180612/lib/onedstds/redcal/ross640.dat000066400000000000000000000014071331023215600221500ustar00rootroot00000000000000# ROSS 640 3350. 14.175 49. 3400. 14.145 49. 3450. 14.11 49. 3500. 14.073 49. 3571. 14.024 49. 3636. 13.997 49. 3704. 14.009 49. 3862. 14.138 49. 4036. 13.961 49. 4167. 13.83 49. 4255. 13.839 49. 4464. 13.81 49. 4566. 13.816 49. 4785. 13.8 49. 5000. 13.793 49. 5263. 13.791 49. 5556. 13.824 98. 5840. 13.868 98. 6056. 13.874 98. 6436. 13.896 98. 6790. 13.905 98. 7100. 13.941 98. 7550. 14.023 98. 7780. 14.024 98. 8090. 14.028 98. 8370. 14.024 98. 8440. 14.01 160. 8600. 14.10 160. 8760. 14.08 160. 8920. 14.07 160. 9080. 14.09 160. 9240. 14.15 160. 9400. 14.09 160. 9560. 14.09 160. 9720. 14.17 160. 9880. 14.23 160. 10040. 14.23 160. 10200. 14.18 160. 10360. 14.19 160. 10520. 14.21 160. # Fluxes redward of 8440A from Oke, ApJ Suppl. Series No. 236, Vol. 27, # 21, 1974. sptable-1.0.pre20180612/lib/onedstds/redcal/sa29130.dat000066400000000000000000000014151331023215600217310ustar00rootroot00000000000000# SA29 -130 3200. 13.459 49. 3250. 13.515 49. 3300. 13.505 49. 3350. 13.494 49. 3400. 13.493 49. 3450. 13.487 49. 3500. 13.459 49. 3571. 13.519 49. 3636. 13.49 49. 3704. 13.514 49. 3862. 13.564 49. 4036. 13.064 49. 4167. 12.974 49. 4255. 12.999 49. 4464. 12.941 49. 4566. 12.96 49. 4785. 13.144 49. 5000. 13.148 49. 5263. 13.139 49. 5556. 13.213 98. 5840. 13.305 98. 6056. 13.372 98. 6436. 13.482 98. 6790. 13.665 98. 7100. 13.603 98. 7550. 13.779 98. 7780. 13.796 98. 8090. 13.843 98. 8370. 13.834 98. 8440. 13.82 40. 8600. 13.94 40. 8760. 13.89 40. 8920. 14.02 40. 9080. 14.01 40. 9240. 14.08 40. 9400. 14.15 40. 9560. 14.14 40. 9720. 14.10 40. 9880. 14.05 40. 10040. 14.12 40. 10200. 14.10 40. # Fluxes redward of 8440A from Oke, ApJ Suppl. Series No. 236, vol.27, # 21, 1974. sptable-1.0.pre20180612/lib/onedstds/redcal/standards.men000066400000000000000000000014061331023215600227210ustar00rootroot00000000000000Standard stars in onedstds$redcal/ 40erib eg63 eg139 eg248 gd140 hz44 ltt16294 amcvn eg67 eg144 feige24 gd190 l13633 ltt4099 bd7781 eg76 eg145 g12627 grw705824 l14094 ltt8702 bd73632 eg79 eg148 g14563 grw708247 l151234b ross627 bd174708 eg91 eg149 g16350 grw738031 l74546a ross640 bd262606 eg98 eg162 g191b2b hd19445 l93080 sa29130 eg20 eg99 eg182 g2610 hd84937 l97030 sao131065 eg33 eg102 eg184 g2631 he3 lds235b wolf1346 eg50 eg119 eg193 g4718 hz29 lds749b wolf485a eg54 eg129 eg247 g9937 hz43 lft1655 sptable-1.0.pre20180612/lib/onedstds/redcal/wolf1346.dat000066400000000000000000000034171331023215600222200ustar00rootroot00000000000000# WOLF 1346 3200. 11.22 49. 3250. 11.15 49. 3300. 11.22 49. 3350. 11.24 49. 3400. 11.24 49. 3450. 11.26 49. 3500. 11.28 49. 3571. 11.24 49. 3636. 11.31 49. 3704. 11.35 49. 3760. 11.4 49. 3816. 11.44 49. 3862. 11.41 49. 3945. 11.34 49. 4000. 11.27 49. 4036. 11.1 49. 4065. 11.19 49. 4167. 11.18 49. 4190. 11.1 49. 4255. 11.17 49. 4290. 11.26 49. 4370. 11.38 49. 4464. 11.14 49. 4498. 11.14 49. 4566. 11.17 49. 4604. 11.2 49. 4678. 11.22 49. 4735. 11.24 49. 4785. 11.29 49. 4825. 11.44 49. 4914. 11.43 49. 5000. 11.36 49. 5067. 11.38 49. 5145. 11.36 49. 5206. 11.4 49. 5263. 11.42 49. 5341. 11.44 98. 5440. 11.47 98. 5504. 11.48 98. 5556. 11.52 98. 5630. 11.53 98. 5710. 11.54 98. 5775. 11.58 98. 5840. 11.58 98. 5910. 11.61 98. 5980. 11.66 98. 6056. 11.69 98. 6140. 11.68 98. 6220. 11.71 98. 6290. 11.74 98. 6365. 11.75 98. 6436. 11.78 98. 6473. 11.81 98. 6530. 11.93 98. 6600. 11.93 98. 6670. 11.88 98. 6740. 11.82 98. 6790. 11.81 98. 6850. 11.84 98. 6975. 11.91 98. 7055. 11.92 98. 7100. 11.9 98. 7150. 11.91 98. 7220. 11.93 98. 7270. 11.95 98. 7365. 12. 98. 7460. 12.03 98. 7550. 12.05 98. 7580. 12.06 98. 7725. 12.12 98. 7780. 12.1 98. 7820. 12.08 98. 7910. 12.07 98. 8000. 12.13 98. 8090. 12.2 98. 8210. 12.14 98. 8260. 12.14 98. 8370. 12.17 98. 8400. 12.15 40. 8480. 12.21 40. 8560. 12.22 40. 8640. 12.20 40. 8720. 12.22 40. 8800. 12.34 40. 8880. 12.32 40. 8960. 12.31 40. 9040. 12.27 40. 9120. 12.30 40. 9200. 12.37 40. 9280. 12.40 40. 9360. 12.28 40. 9440. 12.41 40. 9520. 12.43 40. 9600. 12.41 40. 9680. 12.35 40. 9760. 12.35 40. 9840. 12.45 40. 9920. 12.50 40. 10000. 12.50 40. 10080. 12.50 40. 10160. 12.44 40. 10240. 12.52 40. 10320. 12.45 40. 10400. 12.41 40. 10480. 12.50 40. 10560. 12.56 40. 10640. 12.59 40. # Fluxes redward of 8400A from Oke, ApJ Suppl Series No. 236, Vol. 27, # 21, 1974. sptable-1.0.pre20180612/lib/onedstds/redcal/wolf485a.dat000066400000000000000000000013011331023215600222720ustar00rootroot00000000000000# WOLF 485A 3350. 12.497 49. 3400. 12.505 49. 3450. 12.495 49. 3500. 12.48 49. 3571. 12.459 49. 3636. 12.465 49. 3704. 12.479 49. 3862. 12.528 49. 4036. 12.284 49. 4167. 12.241 49. 4255. 12.171 49. 4464. 12.075 49. 4566. 12.052 49. 4785. 12.276 49. 5000. 12.183 49. 5263. 12.174 49. 5556. 12.224 98. 5840. 12.278 98. 6056. 12.267 98. 6436. 12.445 98. 6790. 12.484 98. 7100. 12.53 98. 7550. 12.68 98. 7780. 12.686 98. 8090. 12.688 98. 8370. 12.72 98. 8440. 12.71 160. 8600. 12.74 160. 8760. 12.79 160. 8920. 12.84 160. 9080. 12.85 160. 9240. 12.86 160. 9400. 12.99 160. 9560. 12.90 160. 9720. 12.92 160. 9880. 12.97 160. # Fluxes redward of 8440A from Oke, ApJ Suppl. Series No. 236, Vol. 27, # 21, 1974. sptable-1.0.pre20180612/lib/onedstds/spec16cal/000077500000000000000000000000001331023215600205635ustar00rootroot00000000000000sptable-1.0.pre20180612/lib/onedstds/spec16cal/hr1544.dat000066400000000000000000000142131331023215600222050ustar00rootroot00000000000000# HR 1544 3300 5.566 16 3316 5.557 16 3332 5.562 16 3348 5.549 16 3364 5.551 16 3380 5.543 16 3396 5.532 16 3412 5.525 16 3428 5.526 16 3444 5.529 16 3460 5.532 16 3476 5.524 16 3492 5.526 16 3508 5.513 16 3524 5.49 16 3540 5.481 16 3556 5.483 16 3572 5.479 16 3588 5.469 16 3604 5.456 16 3620 5.442 16 3636 5.426 16 3652 5.414 16 3668 5.406 16 3684 5.382 16 3700 5.322 16 3716 5.22 16 3732 5.106 16 3748 4.986 16 3764 4.859 16 3780 4.703 16 3796 4.696 16 3812 4.488 16 3828 4.645 16 3844 4.418 16 3860 4.263 16 3876 4.484 16 3892 4.525 16 3908 4.223 16 3924 4.181 16 3940 4.234 16 3956 4.452 16 3972 4.562 16 3988 4.224 16 4004 4.121 16 4020 4.101 16 4036 4.094 16 4052 4.106 16 4068 4.155 16 4084 4.355 16 4100 4.587 16 4116 4.303 16 4132 4.139 16 4148 4.1 16 4164 4.11 16 4180 4.116 16 4196 4.115 16 4212 4.121 16 4228 4.134 16 4244 4.14 16 4260 4.142 16 4276 4.154 16 4292 4.183 16 4308 4.238 16 4324 4.431 16 4340 4.653 16 4356 4.369 16 4372 4.215 16 4388 4.195 16 4404 4.184 16 4420 4.177 16 4436 4.178 16 4452 4.19 16 4468 4.198 16 4484 4.202 16 4500 4.189 16 4516 4.194 16 4532 4.198 16 4548 4.206 16 4564 4.201 16 4580 4.203 16 4596 4.199 16 4612 4.196 16 4628 4.201 16 4644 4.197 16 4660 4.202 16 4676 4.206 16 4692 4.206 16 4708 4.213 16 4724 4.213 16 4740 4.219 16 4756 4.225 16 4772 4.235 16 4788 4.231 16 4804 4.239 16 4820 4.259 16 4836 4.335 16 4852 4.595 16 4868 4.661 16 4884 4.372 16 4900 4.278 16 4916 4.263 16 4932 4.26 16 4948 4.255 16 4964 4.258 16 4980 4.265 16 4996 4.272 16 5012 4.287 16 5028 4.289 16 5044 4.292 16 5060 4.291 16 5076 4.294 16 5092 4.291 16 5108 4.291 16 5124 4.295 16 5140 4.299 16 5156 4.307 16 5172 4.321 16 5188 4.317 16 5204 4.312 16 5220 4.314 16 5236 4.32 16 5252 4.318 16 5268 4.329 16 5284 4.327 16 5300 4.318 16 5316 4.33 16 5332 4.334 16 5348 4.326 16 5364 4.325 16 5380 4.329 16 5396 4.331 16 5412 4.337 16 5428 4.342 16 5444 4.336 16 5460 4.337 16 5476 4.341 16 5492 4.343 16 5508 4.346 16 5524 4.352 16 5540 4.354 16 5556 4.353 16 5572 4.357 16 5588 4.361 16 5604 4.365 16 5620 4.367 16 5636 4.371 16 5652 4.375 16 5668 4.384 16 5684 4.386 16 5700 4.389 16 5716 4.394 16 5732 4.396 16 5748 4.4 16 5764 4.403 16 5780 4.402 16 5796 4.402 16 5812 4.399 16 5828 4.397 16 5844 4.396 16 5860 4.403 16 5876 4.411 16 5892 4.427 16 5908 4.426 16 5924 4.421 16 5940 4.429 16 5956 4.433 16 5972 4.432 16 5988 4.435 16 6004 4.438 16 6020 4.44 16 6036 4.443 16 6052 4.442 16 6068 4.444 16 6084 4.447 16 6100 4.449 16 6116 4.453 16 6132 4.455 16 6148 4.465 16 6164 4.469 16 6180 4.459 16 6196 4.462 16 6212 4.466 16 6228 4.475 16 6244 4.483 16 6260 4.482 16 6276 4.504 16 6292 4.507 16 6308 4.502 16 6324 4.497 16 6340 4.501 16 6356 4.501 16 6372 4.501 16 6388 4.498 16 6404 4.501 16 6420 4.506 16 6436 4.506 16 6452 4.514 16 6468 4.522 16 6484 4.527 16 6500 4.529 16 6516 4.539 16 6532 4.568 16 6548 4.680 16 6564 4.824 16 6580 4.671 16 6596 4.569 16 6612 4.543 16 6628 4.537 16 6644 4.535 16 6660 4.535 16 6676 4.538 16 6692 4.537 16 6708 4.538 16 6724 4.540 16 6740 4.541 16 6756 4.545 16 6772 4.546 16 6788 4.551 16 6804 4.554 16 6820 4.555 16 6836 4.559 16 6852 4.577 16 6868 4.720 16 6884 4.719 16 6900 4.677 16 6916 4.629 16 6932 4.608 16 6948 4.603 16 6964 4.594 16 6980 4.593 16 6996 4.605 16 7012 4.608 16 7028 4.606 16 7044 4.605 16 7060 4.608 16 7076 4.607 16 7092 4.611 16 7108 4.615 16 7124 4.619 16 7140 4.622 16 7156 4.635 16 7172 4.687 16 7188 4.730 16 7204 4.707 16 7220 4.668 16 7236 4.701 16 7252 4.707 16 7268 4.700 16 7284 4.699 16 7300 4.696 16 7316 4.685 16 7332 4.666 16 7348 4.664 16 7364 4.666 16 7380 4.662 16 7396 4.663 16 7412 4.663 16 7428 4.664 16 7444 4.666 16 7460 4.668 16 7476 4.671 16 7492 4.669 16 7508 4.668 16 7524 4.671 16 7540 4.673 16 7556 4.677 16 7572 4.686 16 7588 4.873 16 7604 5.585 16 7620 5.317 16 7636 5.269 16 7652 5.013 16 7668 4.818 16 7684 4.734 16 7700 4.706 16 7716 4.699 16 7732 4.697 16 7748 4.699 16 7764 4.714 16 7780 4.730 16 7796 4.708 16 7812 4.707 16 7828 4.709 16 7844 4.711 16 7860 4.715 16 7876 4.723 16 7892 4.732 16 7908 4.729 16 7924 4.729 16 7940 4.729 16 7956 4.735 16 7972 4.734 16 7988 4.735 16 8004 4.740 16 8020 4.743 16 8036 4.744 16 8052 4.744 16 8068 4.745 16 8084 4.748 16 8100 4.754 16 8116 4.766 16 8132 4.793 16 8148 4.826 16 8164 4.854 16 8180 4.849 16 8196 4.834 16 8212 4.818 16 8228 4.878 16 8244 4.830 16 8260 4.813 16 8276 4.828 16 8292 4.830 16 8308 4.820 16 8324 4.826 16 8340 4.815 16 8356 4.804 16 8372 4.802 16 8388 4.801 16 8404 4.800 16 8420 4.804 16 8436 4.812 16 8452 4.819 16 8468 4.815 16 8484 4.797 16 8500 4.830 16 8516 4.802 16 8532 4.805 16 8548 4.862 16 8564 4.787 16 8580 4.781 16 8596 4.874 16 8612 4.827 16 8628 4.746 16 8644 4.767 16 8660 4.896 16 8676 4.886 16 8692 4.764 16 8708 4.727 16 8724 4.753 16 8740 4.872 16 8756 4.950 16 8772 4.806 16 8788 4.725 16 8804 4.713 16 8820 4.721 16 8836 4.763 16 8852 4.893 16 8868 4.992 16 8884 4.841 16 8900 4.752 16 8916 4.737 16 8932 4.738 16 8948 4.759 16 8964 4.807 16 8980 4.863 16 8996 4.975 16 9012 5.117 16 9028 5.027 16 9044 4.844 16 9060 4.837 16 9076 4.868 16 9092 4.868 16 9108 4.844 16 9124 4.840 16 9140 4.850 16 9156 4.854 16 9172 4.857 16 9188 4.856 16 9204 4.889 16 9220 5.048 16 9236 5.115 16 9252 4.963 16 9268 4.898 16 9284 4.914 16 9300 4.994 16 9316 5.149 16 9332 5.278 16 9348 5.330 16 9364 5.274 16 9380 5.215 16 9396 5.026 16 9412 5.055 16 9428 5.153 16 9444 5.187 16 9460 5.164 16 9476 5.136 16 9492 5.152 16 9508 5.133 16 9524 5.225 16 9540 5.336 16 9556 5.366 16 9572 5.162 16 9588 5.114 16 9604 5.061 16 9620 5.038 16 9636 5.018 16 9652 4.996 16 9668 4.962 16 9684 4.903 16 9700 4.889 16 9716 4.895 16 9732 4.919 16 9748 4.936 16 9764 4.931 16 9780 4.912 16 9796 4.914 16 9812 4.886 16 9828 4.885 16 9844 4.877 16 9860 4.865 16 9876 4.854 16 9892 4.864 16 9908 4.853 16 9924 4.856 16 9940 4.862 16 9956 4.852 16 9972 4.865 16 9988 4.877 16 10004 4.890 16 10020 4.934 16 10036 5.033 16 10052 5.127 16 10068 5.006 16 10084 4.908 16 10100 4.891 16 10116 4.888 16 10132 4.874 16 10148 4.860 16 10164 4.866 16 10180 4.864 16 10196 4.877 16 10212 4.860 16 10228 4.875 16 10244 4.877 16 10260 4.874 16 10276 4.861 16 10292 4.871 16 10308 4.877 16 10324 4.929 16 10340 4.956 16 10356 4.946 16 10372 4.969 16 10388 4.931 16 10404 4.927 16 10420 4.974 16 10436 4.947 16 sptable-1.0.pre20180612/lib/onedstds/spec16cal/hr1544blue.dat000066400000000000000000000072441331023215600230630ustar00rootroot00000000000000# HR 1544 3300 5.577 16 3316 5.568 16 3332 5.573 16 3348 5.560 16 3364 5.562 16 3380 5.554 16 3396 5.543 16 3412 5.536 16 3428 5.537 16 3444 5.540 16 3460 5.543 16 3476 5.535 16 3492 5.537 16 3508 5.524 16 3524 5.501 16 3540 5.492 16 3556 5.494 16 3572 5.490 16 3588 5.480 16 3604 5.467 16 3620 5.453 16 3636 5.437 16 3652 5.425 16 3668 5.417 16 3684 5.393 16 3700 5.333 16 3716 5.231 16 3732 5.117 16 3748 4.997 16 3764 4.870 16 3780 4.714 16 3796 4.707 16 3812 4.499 16 3828 4.656 16 3844 4.429 16 3860 4.274 16 3876 4.495 16 3892 4.536 16 3908 4.234 16 3924 4.192 16 3940 4.245 16 3956 4.463 16 3972 4.573 16 3988 4.235 16 4004 4.132 16 4020 4.112 16 4036 4.105 16 4052 4.117 16 4068 4.166 16 4084 4.366 16 4100 4.598 16 4116 4.314 16 4132 4.150 16 4148 4.111 16 4164 4.121 16 4180 4.127 16 4196 4.126 16 4212 4.132 16 4228 4.145 16 4244 4.151 16 4260 4.153 16 4276 4.165 16 4292 4.194 16 4308 4.249 16 4324 4.442 16 4340 4.664 16 4356 4.380 16 4372 4.226 16 4388 4.206 16 4404 4.195 16 4420 4.188 16 4436 4.189 16 4452 4.201 16 4468 4.209 16 4484 4.213 16 4500 4.200 16 4516 4.205 16 4532 4.209 16 4548 4.217 16 4564 4.212 16 4580 4.214 16 4596 4.210 16 4612 4.207 16 4628 4.212 16 4644 4.208 16 4660 4.213 16 4676 4.217 16 4692 4.217 16 4708 4.224 16 4724 4.224 16 4740 4.230 16 4756 4.236 16 4772 4.246 16 4788 4.242 16 4804 4.250 16 4820 4.270 16 4836 4.346 16 4852 4.606 16 4868 4.672 16 4884 4.383 16 4900 4.289 16 4916 4.274 16 4932 4.271 16 4948 4.266 16 4964 4.269 16 4980 4.276 16 4996 4.283 16 5012 4.298 16 5028 4.300 16 5044 4.303 16 5060 4.302 16 5076 4.305 16 5092 4.302 16 5108 4.302 16 5124 4.306 16 5140 4.310 16 5156 4.318 16 5172 4.332 16 5188 4.328 16 5204 4.323 16 5220 4.325 16 5236 4.331 16 5252 4.329 16 5268 4.340 16 5284 4.338 16 5300 4.329 16 5316 4.341 16 5332 4.345 16 5348 4.337 16 5364 4.336 16 5380 4.340 16 5396 4.342 16 5412 4.348 16 5428 4.353 16 5444 4.347 16 5460 4.348 16 5476 4.352 16 5492 4.354 16 5508 4.357 16 5524 4.363 16 5540 4.365 16 5556 4.364 16 5572 4.368 16 5588 4.372 16 5604 4.376 16 5620 4.378 16 5636 4.382 16 5652 4.386 16 5668 4.395 16 5684 4.397 16 5700 4.400 16 5716 4.405 16 5732 4.407 16 5748 4.411 16 5764 4.414 16 5780 4.413 16 5796 4.413 16 5812 4.410 16 5828 4.408 16 5844 4.407 16 5860 4.414 16 5876 4.422 16 5892 4.438 16 5908 4.437 16 5924 4.432 16 5940 4.440 16 5956 4.444 16 5972 4.443 16 5988 4.446 16 6004 4.449 16 6020 4.451 16 6036 4.454 16 6052 4.453 16 6068 4.455 16 6084 4.458 16 6100 4.460 16 6116 4.464 16 6132 4.466 16 6148 4.476 16 6164 4.480 16 6180 4.470 16 6196 4.473 16 6212 4.477 16 6228 4.486 16 6244 4.494 16 6260 4.493 16 6276 4.515 16 6292 4.518 16 6308 4.513 16 6324 4.508 16 6340 4.512 16 6356 4.512 16 6372 4.512 16 6388 4.509 16 6404 4.512 16 6420 4.517 16 6436 4.517 16 6452 4.525 16 6468 4.533 16 6484 4.538 16 6500 4.539 16 6516 4.548 16 6532 4.575 16 6548 4.683 16 6564 4.837 16 6580 4.688 16 6596 4.581 16 6612 4.553 16 6628 4.548 16 6644 4.545 16 6660 4.546 16 6676 4.549 16 6692 4.548 16 6708 4.549 16 6724 4.550 16 6740 4.551 16 6756 4.556 16 6772 4.556 16 6788 4.562 16 6804 4.565 16 6820 4.566 16 6836 4.569 16 6852 4.584 16 6868 4.726 16 6884 4.731 16 6900 4.689 16 6916 4.641 16 6932 4.619 16 6948 4.614 16 6964 4.605 16 6980 4.602 16 6996 4.616 16 7012 4.619 16 7028 4.617 16 7044 4.614 16 7060 4.617 16 7076 4.615 16 7092 4.621 16 7108 4.622 16 7124 4.628 16 7140 4.631 16 7156 4.642 16 7172 4.701 16 7188 4.749 16 7204 4.726 16 7220 4.680 16 7236 4.716 16 7252 4.725 16 7268 4.715 16 7284 4.716 16 7300 4.712 16 7316 4.699 16 7332 4.679 16 7348 4.678 16 7364 4.679 16 7380 4.675 16 7396 4.676 16 7412 4.677 16 7428 4.678 16 7444 4.681 16 7460 4.682 16 7476 4.686 16 7492 4.682 16 7508 4.688 16 7524 4.685 16 7540 4.681 16 7556 4.687 16 sptable-1.0.pre20180612/lib/onedstds/spec16cal/hr1544red.dat000066400000000000000000000075141331023215600227060ustar00rootroot00000000000000# HR 1544 6020 4.441 16 6036 4.442 16 6052 4.446 16 6068 4.446 16 6084 4.447 16 6100 4.447 16 6116 4.454 16 6132 4.459 16 6148 4.471 16 6164 4.473 16 6180 4.469 16 6196 4.471 16 6212 4.473 16 6228 4.482 16 6244 4.489 16 6260 4.495 16 6276 4.511 16 6292 4.514 16 6308 4.508 16 6324 4.500 16 6340 4.502 16 6356 4.506 16 6372 4.507 16 6388 4.499 16 6404 4.509 16 6420 4.508 16 6436 4.511 16 6452 4.519 16 6468 4.522 16 6484 4.525 16 6500 4.529 16 6516 4.540 16 6532 4.571 16 6548 4.687 16 6564 4.821 16 6580 4.664 16 6596 4.568 16 6612 4.543 16 6628 4.537 16 6644 4.535 16 6660 4.535 16 6676 4.538 16 6692 4.536 16 6708 4.538 16 6724 4.541 16 6740 4.542 16 6756 4.545 16 6772 4.546 16 6788 4.550 16 6804 4.553 16 6820 4.554 16 6836 4.559 16 6852 4.580 16 6868 4.724 16 6884 4.717 16 6900 4.676 16 6916 4.628 16 6932 4.607 16 6948 4.602 16 6964 4.594 16 6980 4.594 16 6996 4.605 16 7012 4.607 16 7028 4.606 16 7044 4.606 16 7060 4.609 16 7076 4.609 16 7092 4.612 16 7108 4.618 16 7124 4.621 16 7140 4.623 16 7156 4.639 16 7172 4.684 16 7188 4.721 16 7204 4.698 16 7220 4.666 16 7236 4.697 16 7252 4.699 16 7268 4.695 16 7284 4.692 16 7300 4.690 16 7316 4.681 16 7332 4.664 16 7348 4.660 16 7364 4.663 16 7380 4.659 16 7396 4.660 16 7412 4.660 16 7428 4.661 16 7444 4.662 16 7460 4.664 16 7476 4.667 16 7492 4.667 16 7508 4.668 16 7524 4.671 16 7540 4.673 16 7556 4.677 16 7572 4.686 16 7588 4.873 16 7604 5.585 16 7620 5.317 16 7636 5.269 16 7652 5.013 16 7668 4.818 16 7684 4.734 16 7700 4.706 16 7716 4.699 16 7732 4.697 16 7748 4.699 16 7764 4.714 16 7780 4.730 16 7796 4.708 16 7812 4.707 16 7828 4.709 16 7844 4.711 16 7860 4.715 16 7876 4.723 16 7892 4.732 16 7908 4.729 16 7924 4.729 16 7940 4.729 16 7956 4.735 16 7972 4.734 16 7988 4.735 16 8004 4.740 16 8020 4.743 16 8036 4.744 16 8052 4.744 16 8068 4.745 16 8084 4.748 16 8100 4.754 16 8116 4.766 16 8132 4.793 16 8148 4.826 16 8164 4.854 16 8180 4.849 16 8196 4.834 16 8212 4.818 16 8228 4.878 16 8244 4.830 16 8260 4.813 16 8276 4.828 16 8292 4.830 16 8308 4.820 16 8324 4.826 16 8340 4.815 16 8356 4.804 16 8372 4.802 16 8388 4.801 16 8404 4.800 16 8420 4.804 16 8436 4.812 16 8452 4.819 16 8468 4.815 16 8484 4.797 16 8500 4.830 16 8516 4.802 16 8532 4.805 16 8548 4.862 16 8564 4.787 16 8580 4.781 16 8596 4.874 16 8612 4.827 16 8628 4.746 16 8644 4.767 16 8660 4.896 16 8676 4.886 16 8692 4.764 16 8708 4.727 16 8724 4.753 16 8740 4.872 16 8756 4.950 16 8772 4.806 16 8788 4.725 16 8804 4.713 16 8820 4.721 16 8836 4.763 16 8852 4.893 16 8868 4.992 16 8884 4.841 16 8900 4.752 16 8916 4.737 16 8932 4.738 16 8948 4.759 16 8964 4.807 16 8980 4.863 16 8996 4.975 16 9012 5.117 16 9028 5.027 16 9044 4.844 16 9060 4.837 16 9076 4.868 16 9092 4.868 16 9108 4.844 16 9124 4.840 16 9140 4.850 16 9156 4.854 16 9172 4.857 16 9188 4.856 16 9204 4.889 16 9220 5.048 16 9236 5.115 16 9252 4.963 16 9268 4.898 16 9284 4.914 16 9300 4.994 16 9316 5.149 16 9332 5.278 16 9348 5.330 16 9364 5.274 16 9380 5.215 16 9396 5.026 16 9412 5.055 16 9428 5.153 16 9444 5.187 16 9460 5.164 16 9476 5.136 16 9492 5.152 16 9508 5.133 16 9524 5.225 16 9540 5.336 16 9556 5.366 16 9572 5.162 16 9588 5.114 16 9604 5.061 16 9620 5.038 16 9636 5.018 16 9652 4.996 16 9668 4.962 16 9684 4.903 16 9700 4.889 16 9716 4.895 16 9732 4.919 16 9748 4.936 16 9764 4.931 16 9780 4.912 16 9796 4.914 16 9812 4.886 16 9828 4.885 16 9844 4.877 16 9860 4.865 16 9876 4.854 16 9892 4.864 16 9908 4.853 16 9924 4.856 16 9940 4.862 16 9956 4.852 16 9972 4.865 16 9988 4.877 16 10004 4.890 16 10020 4.934 16 10036 5.033 16 10052 5.127 16 10068 5.006 16 10084 4.908 16 10100 4.891 16 10116 4.888 16 10132 4.874 16 10148 4.860 16 10164 4.866 16 10180 4.864 16 10196 4.877 16 10212 4.860 16 10228 4.875 16 10244 4.877 16 10260 4.874 16 10276 4.861 16 10292 4.871 16 10308 4.877 16 10324 4.929 16 10340 4.956 16 10356 4.946 16 10372 4.969 16 10388 4.931 16 10404 4.927 16 10420 4.974 16 10436 4.947 16 sptable-1.0.pre20180612/lib/onedstds/spec16cal/hr3454.dat000066400000000000000000000140441331023215600222110ustar00rootroot00000000000000# HR 3454 3300 4.127 16 3316 4.126 16 3332 4.129 16 3348 4.133 16 3364 4.144 16 3380 4.142 16 3396 4.152 16 3412 4.156 16 3428 4.166 16 3444 4.174 16 3460 4.179 16 3476 4.186 16 3492 4.191 16 3508 4.194 16 3524 4.199 16 3540 4.196 16 3556 4.196 16 3572 4.196 16 3588 4.206 16 3604 4.194 16 3620 4.196 16 3636 4.193 16 3652 4.195 16 3668 4.194 16 3684 4.202 16 3700 4.205 16 3716 4.184 16 3732 4.144 16 3748 4.095 16 3764 4.056 16 3780 3.989 16 3796 4.02 16 3812 3.926 16 3828 4.006 16 3844 3.892 16 3860 3.82 16 3876 3.94 16 3892 3.963 16 3908 3.82 16 3924 3.811 16 3940 3.818 16 3956 3.939 16 3972 4.022 16 3988 3.859 16 4004 3.853 16 4020 3.88 16 4036 3.843 16 4052 3.833 16 4068 3.85 16 4084 3.94 16 4100 4.081 16 4116 3.931 16 4132 3.897 16 4148 3.889 16 4164 3.877 16 4180 3.879 16 4196 3.885 16 4212 3.889 16 4228 3.9 16 4244 3.909 16 4260 3.924 16 4276 3.927 16 4292 3.936 16 4308 3.955 16 4324 4.049 16 4340 4.185 16 4356 4.028 16 4372 3.986 16 4388 4 16 4404 3.979 16 4420 3.982 16 4436 3.995 16 4452 4.01 16 4468 4.058 16 4484 4.022 16 4500 4.009 16 4516 4.014 16 4532 4.016 16 4548 4.024 16 4564 4.031 16 4580 4.03 16 4596 4.04 16 4612 4.047 16 4628 4.055 16 4644 4.058 16 4660 4.059 16 4676 4.067 16 4692 4.074 16 4708 4.081 16 4724 4.081 16 4740 4.085 16 4756 4.091 16 4772 4.103 16 4788 4.108 16 4804 4.112 16 4820 4.111 16 4836 4.137 16 4852 4.278 16 4868 4.315 16 4884 4.155 16 4900 4.136 16 4916 4.157 16 4932 4.153 16 4948 4.141 16 4964 4.147 16 4980 4.154 16 4996 4.168 16 5012 4.186 16 5028 4.185 16 5044 4.194 16 5060 4.194 16 5076 4.197 16 5092 4.199 16 5108 4.206 16 5124 4.211 16 5140 4.214 16 5156 4.218 16 5172 4.22 16 5188 4.224 16 5204 4.23 16 5220 4.231 16 5236 4.235 16 5252 4.241 16 5268 4.247 16 5284 4.25 16 5300 4.254 16 5316 4.259 16 5332 4.262 16 5348 4.268 16 5364 4.269 16 5380 4.275 16 5396 4.278 16 5412 4.284 16 5428 4.29 16 5444 4.294 16 5460 4.297 16 5476 4.302 16 5492 4.306 16 5508 4.308 16 5524 4.314 16 5540 4.319 16 5556 4.324 16 5572 4.326 16 5588 4.33 16 5604 4.338 16 5620 4.344 16 5636 4.351 16 5652 4.359 16 5668 4.365 16 5684 4.372 16 5700 4.376 16 5716 4.378 16 5732 4.387 16 5748 4.389 16 5764 4.394 16 5780 4.394 16 5796 4.394 16 5812 4.395 16 5828 4.395 16 5844 4.396 16 5860 4.405 16 5876 4.443 16 5892 4.433 16 5908 4.425 16 5924 4.434 16 5940 4.44 16 5956 4.444 16 5972 4.442 16 5988 4.443 16 6004 4.45 16 6020 4.455 16 6036 4.457 16 6052 4.462 16 6068 4.464 16 6084 4.469 16 6100 4.475 16 6116 4.478 16 6132 4.475 16 6148 4.489 16 6164 4.489 16 6180 4.492 16 6196 4.495 16 6212 4.5 16 6228 4.503 16 6244 4.508 16 6260 4.516 16 6276 4.541 16 6292 4.543 16 6308 4.537 16 6324 4.534 16 6340 4.54 16 6356 4.541 16 6372 4.544 16 6388 4.543 16 6404 4.547 16 6420 4.547 16 6436 4.547 16 6452 4.549 16 6468 4.556 16 6484 4.567 16 6500 4.566 16 6516 4.574 16 6532 4.583 16 6548 4.646 16 6564 4.770 16 6580 4.641 16 6596 4.595 16 6612 4.591 16 6628 4.591 16 6644 4.593 16 6660 4.598 16 6676 4.620 16 6692 4.606 16 6708 4.605 16 6724 4.608 16 6740 4.613 16 6756 4.616 16 6772 4.622 16 6788 4.628 16 6804 4.631 16 6820 4.634 16 6836 4.637 16 6852 4.653 16 6868 4.801 16 6884 4.799 16 6900 4.764 16 6916 4.714 16 6932 4.697 16 6948 4.690 16 6964 4.682 16 6980 4.682 16 6996 4.692 16 7012 4.696 16 7028 4.699 16 7044 4.700 16 7060 4.713 16 7076 4.710 16 7092 4.707 16 7108 4.709 16 7124 4.717 16 7140 4.720 16 7156 4.736 16 7172 4.789 16 7188 4.828 16 7204 4.808 16 7220 4.771 16 7236 4.812 16 7252 4.814 16 7268 4.810 16 7284 4.814 16 7300 4.807 16 7316 4.796 16 7332 4.782 16 7348 4.779 16 7364 4.782 16 7380 4.781 16 7396 4.782 16 7412 4.784 16 7428 4.786 16 7444 4.790 16 7460 4.791 16 7476 4.796 16 7492 4.796 16 7508 4.798 16 7524 4.804 16 7540 4.809 16 7556 4.812 16 7572 4.820 16 7588 5.009 16 7604 5.756 16 7620 5.426 16 7636 5.402 16 7652 5.140 16 7668 4.951 16 7684 4.875 16 7700 4.848 16 7716 4.841 16 7732 4.842 16 7748 4.845 16 7764 4.851 16 7780 4.858 16 7796 4.854 16 7812 4.859 16 7828 4.860 16 7844 4.861 16 7860 4.867 16 7876 4.875 16 7892 4.884 16 7908 4.883 16 7924 4.883 16 7940 4.882 16 7956 4.891 16 7972 4.893 16 7988 4.894 16 8004 4.900 16 8020 4.904 16 8036 4.906 16 8052 4.905 16 8068 4.910 16 8084 4.915 16 8100 4.920 16 8116 4.932 16 8132 4.961 16 8148 4.995 16 8164 5.023 16 8180 5.016 16 8196 4.998 16 8212 4.980 16 8228 5.050 16 8244 4.992 16 8260 4.986 16 8276 5.007 16 8292 5.006 16 8308 5.000 16 8324 5.001 16 8340 4.990 16 8356 4.987 16 8372 4.989 16 8388 4.989 16 8404 4.989 16 8420 4.988 16 8436 4.996 16 8452 4.998 16 8468 5.002 16 8484 4.999 16 8500 5.015 16 8516 5.003 16 8532 5.013 16 8548 5.037 16 8564 5.004 16 8580 5.013 16 8596 5.061 16 8612 5.028 16 8628 4.992 16 8644 5.012 16 8660 5.085 16 8676 5.065 16 8692 5.006 16 8708 4.994 16 8724 5.011 16 8740 5.090 16 8756 5.128 16 8772 5.046 16 8788 5.008 16 8804 5.002 16 8820 5.009 16 8836 5.031 16 8852 5.126 16 8868 5.177 16 8884 5.074 16 8900 5.035 16 8916 5.032 16 8932 5.041 16 8948 5.068 16 8964 5.113 16 8980 5.158 16 8996 5.236 16 9012 5.331 16 9028 5.235 16 9044 5.113 16 9060 5.123 16 9076 5.162 16 9092 5.157 16 9108 5.148 16 9124 5.154 16 9140 5.170 16 9156 5.181 16 9172 5.175 16 9188 5.156 16 9204 5.166 16 9220 5.278 16 9236 5.322 16 9252 5.204 16 9268 5.179 16 9284 5.235 16 9300 5.331 16 9316 5.493 16 9332 5.624 16 9348 5.668 16 9364 5.611 16 9380 5.549 16 9396 5.342 16 9412 5.370 16 9428 5.488 16 9444 5.526 16 9460 5.512 16 9476 5.478 16 9492 5.496 16 9508 5.459 16 9524 5.541 16 9540 5.606 16 9556 5.618 16 9572 5.456 16 9588 5.452 16 9604 5.393 16 9620 5.383 16 9636 5.368 16 9652 5.337 16 9668 5.312 16 9684 5.257 16 9700 5.249 16 9716 5.257 16 9732 5.281 16 9748 5.298 16 9764 5.287 16 9780 5.266 16 9796 5.273 16 9812 5.245 16 9828 5.245 16 9844 5.231 16 9860 5.221 16 9876 5.222 16 9892 5.216 16 9908 5.219 16 9924 5.214 16 9940 5.223 16 9956 5.228 16 9972 5.216 16 9988 5.229 16 10004 5.232 16 10020 5.266 16 10036 5.333 16 10052 5.420 16 10068 5.311 16 10084 5.259 16 10100 5.254 16 10116 5.231 16 10132 5.229 16 10148 5.246 16 10164 5.248 16 10180 5.241 16 10196 5.238 16 10212 5.244 16 10228 5.230 16 10244 5.226 16 10260 5.259 16 10276 5.260 16 10292 5.256 16 10308 5.295 16 10324 5.305 16 10340 5.328 16 sptable-1.0.pre20180612/lib/onedstds/spec16cal/hr3454blue.dat000066400000000000000000000072441331023215600230650ustar00rootroot00000000000000# HR 3454 3300 4.116 16 3316 4.115 16 3332 4.118 16 3348 4.122 16 3364 4.133 16 3380 4.131 16 3396 4.141 16 3412 4.145 16 3428 4.155 16 3444 4.163 16 3460 4.168 16 3476 4.175 16 3492 4.180 16 3508 4.183 16 3524 4.188 16 3540 4.185 16 3556 4.185 16 3572 4.185 16 3588 4.195 16 3604 4.183 16 3620 4.185 16 3636 4.182 16 3652 4.184 16 3668 4.183 16 3684 4.191 16 3700 4.194 16 3716 4.173 16 3732 4.133 16 3748 4.084 16 3764 4.045 16 3780 3.978 16 3796 4.009 16 3812 3.915 16 3828 3.995 16 3844 3.881 16 3860 3.809 16 3876 3.929 16 3892 3.952 16 3908 3.809 16 3924 3.800 16 3940 3.807 16 3956 3.928 16 3972 4.011 16 3988 3.848 16 4004 3.842 16 4020 3.869 16 4036 3.832 16 4052 3.822 16 4068 3.839 16 4084 3.929 16 4100 4.070 16 4116 3.920 16 4132 3.886 16 4148 3.878 16 4164 3.866 16 4180 3.868 16 4196 3.874 16 4212 3.878 16 4228 3.889 16 4244 3.898 16 4260 3.913 16 4276 3.916 16 4292 3.925 16 4308 3.944 16 4324 4.038 16 4340 4.174 16 4356 4.017 16 4372 3.975 16 4388 3.989 16 4404 3.968 16 4420 3.971 16 4436 3.984 16 4452 3.999 16 4468 4.047 16 4484 4.011 16 4500 3.998 16 4516 4.003 16 4532 4.005 16 4548 4.013 16 4564 4.020 16 4580 4.019 16 4596 4.029 16 4612 4.036 16 4628 4.044 16 4644 4.047 16 4660 4.048 16 4676 4.056 16 4692 4.063 16 4708 4.070 16 4724 4.070 16 4740 4.074 16 4756 4.080 16 4772 4.092 16 4788 4.097 16 4804 4.101 16 4820 4.100 16 4836 4.126 16 4852 4.267 16 4868 4.304 16 4884 4.144 16 4900 4.125 16 4916 4.146 16 4932 4.142 16 4948 4.130 16 4964 4.136 16 4980 4.143 16 4996 4.157 16 5012 4.175 16 5028 4.174 16 5044 4.183 16 5060 4.183 16 5076 4.186 16 5092 4.188 16 5108 4.195 16 5124 4.200 16 5140 4.203 16 5156 4.207 16 5172 4.209 16 5188 4.213 16 5204 4.219 16 5220 4.220 16 5236 4.224 16 5252 4.230 16 5268 4.236 16 5284 4.239 16 5300 4.243 16 5316 4.248 16 5332 4.251 16 5348 4.257 16 5364 4.258 16 5380 4.264 16 5396 4.267 16 5412 4.273 16 5428 4.279 16 5444 4.283 16 5460 4.286 16 5476 4.291 16 5492 4.295 16 5508 4.297 16 5524 4.303 16 5540 4.308 16 5556 4.313 16 5572 4.315 16 5588 4.319 16 5604 4.327 16 5620 4.333 16 5636 4.340 16 5652 4.348 16 5668 4.354 16 5684 4.361 16 5700 4.365 16 5716 4.367 16 5732 4.376 16 5748 4.378 16 5764 4.383 16 5780 4.383 16 5796 4.383 16 5812 4.384 16 5828 4.384 16 5844 4.385 16 5860 4.394 16 5876 4.432 16 5892 4.422 16 5908 4.414 16 5924 4.423 16 5940 4.429 16 5956 4.433 16 5972 4.431 16 5988 4.432 16 6004 4.439 16 6020 4.444 16 6036 4.446 16 6052 4.451 16 6068 4.453 16 6084 4.458 16 6100 4.464 16 6116 4.467 16 6132 4.464 16 6148 4.478 16 6164 4.478 16 6180 4.481 16 6196 4.484 16 6212 4.489 16 6228 4.492 16 6244 4.497 16 6260 4.505 16 6276 4.530 16 6292 4.532 16 6308 4.526 16 6324 4.523 16 6340 4.529 16 6356 4.530 16 6372 4.533 16 6388 4.532 16 6404 4.536 16 6420 4.536 16 6436 4.536 16 6452 4.538 16 6468 4.545 16 6484 4.556 16 6500 4.555 16 6516 4.562 16 6532 4.572 16 6548 4.630 16 6564 4.758 16 6580 4.634 16 6596 4.585 16 6612 4.579 16 6628 4.578 16 6644 4.581 16 6660 4.585 16 6676 4.607 16 6692 4.595 16 6708 4.594 16 6724 4.596 16 6740 4.601 16 6756 4.604 16 6772 4.612 16 6788 4.620 16 6804 4.622 16 6820 4.625 16 6836 4.627 16 6852 4.639 16 6868 4.782 16 6884 4.792 16 6900 4.755 16 6916 4.706 16 6932 4.690 16 6948 4.682 16 6964 4.673 16 6980 4.671 16 6996 4.682 16 7012 4.687 16 7028 4.689 16 7044 4.688 16 7060 4.701 16 7076 4.698 16 7092 4.694 16 7108 4.696 16 7124 4.704 16 7140 4.707 16 7156 4.723 16 7172 4.779 16 7188 4.823 16 7204 4.803 16 7220 4.761 16 7236 4.803 16 7252 4.808 16 7268 4.802 16 7284 4.807 16 7300 4.800 16 7316 4.787 16 7332 4.772 16 7348 4.768 16 7364 4.772 16 7380 4.770 16 7396 4.772 16 7412 4.773 16 7428 4.775 16 7444 4.781 16 7460 4.779 16 7476 4.787 16 7492 4.785 16 7508 4.791 16 7524 4.792 16 7540 4.789 16 7556 4.797 16 sptable-1.0.pre20180612/lib/onedstds/spec16cal/hr3454red.dat000066400000000000000000000066241331023215600227110ustar00rootroot00000000000000# HR 3454 6420 4.543 16 6436 4.548 16 6452 4.552 16 6468 4.562 16 6484 4.566 16 6500 4.566 16 6516 4.574 16 6532 4.583 16 6548 4.651 16 6564 4.770 16 6580 4.637 16 6596 4.593 16 6612 4.591 16 6628 4.593 16 6644 4.594 16 6660 4.600 16 6676 4.622 16 6692 4.606 16 6708 4.605 16 6724 4.608 16 6740 4.613 16 6756 4.616 16 6772 4.621 16 6788 4.625 16 6804 4.628 16 6820 4.631 16 6836 4.636 16 6852 4.656 16 6868 4.808 16 6884 4.795 16 6900 4.761 16 6916 4.711 16 6932 4.693 16 6948 4.687 16 6964 4.679 16 6980 4.682 16 6996 4.691 16 7012 4.694 16 7028 4.697 16 7044 4.701 16 7060 4.713 16 7076 4.711 16 7092 4.709 16 7108 4.711 16 7124 4.718 16 7140 4.721 16 7156 4.737 16 7172 4.787 16 7188 4.822 16 7204 4.802 16 7220 4.769 16 7236 4.810 16 7252 4.808 16 7268 4.807 16 7284 4.809 16 7300 4.803 16 7316 4.793 16 7332 4.780 16 7348 4.778 16 7364 4.781 16 7380 4.781 16 7396 4.781 16 7412 4.783 16 7428 4.785 16 7444 4.787 16 7460 4.792 16 7476 4.794 16 7492 4.796 16 7508 4.798 16 7524 4.804 16 7540 4.809 16 7556 4.812 16 7572 4.820 16 7588 5.009 16 7604 5.756 16 7620 5.426 16 7636 5.402 16 7652 5.140 16 7668 4.951 16 7684 4.875 16 7700 4.848 16 7716 4.841 16 7732 4.842 16 7748 4.845 16 7764 4.851 16 7780 4.858 16 7796 4.854 16 7812 4.859 16 7828 4.860 16 7844 4.861 16 7860 4.867 16 7876 4.875 16 7892 4.884 16 7908 4.883 16 7924 4.883 16 7940 4.882 16 7956 4.891 16 7972 4.893 16 7988 4.894 16 8004 4.900 16 8020 4.904 16 8036 4.906 16 8052 4.905 16 8068 4.910 16 8084 4.915 16 8100 4.920 16 8116 4.932 16 8132 4.961 16 8148 4.995 16 8164 5.023 16 8180 5.016 16 8196 4.998 16 8212 4.980 16 8228 5.050 16 8244 4.992 16 8260 4.986 16 8276 5.007 16 8292 5.006 16 8308 5.000 16 8324 5.001 16 8340 4.990 16 8356 4.987 16 8372 4.989 16 8388 4.989 16 8404 4.989 16 8420 4.988 16 8436 4.996 16 8452 4.998 16 8468 5.002 16 8484 4.999 16 8500 5.015 16 8516 5.003 16 8532 5.013 16 8548 5.037 16 8564 5.004 16 8580 5.013 16 8596 5.061 16 8612 5.028 16 8628 4.992 16 8644 5.012 16 8660 5.085 16 8676 5.065 16 8692 5.006 16 8708 4.994 16 8724 5.011 16 8740 5.090 16 8756 5.128 16 8772 5.046 16 8788 5.008 16 8804 5.002 16 8820 5.009 16 8836 5.031 16 8852 5.126 16 8868 5.177 16 8884 5.074 16 8900 5.035 16 8916 5.032 16 8932 5.041 16 8948 5.068 16 8964 5.113 16 8980 5.158 16 8996 5.236 16 9012 5.331 16 9028 5.235 16 9044 5.113 16 9060 5.123 16 9076 5.162 16 9092 5.157 16 9108 5.148 16 9124 5.154 16 9140 5.170 16 9156 5.181 16 9172 5.175 16 9188 5.156 16 9204 5.166 16 9220 5.278 16 9236 5.322 16 9252 5.204 16 9268 5.179 16 9284 5.235 16 9300 5.331 16 9316 5.493 16 9332 5.624 16 9348 5.668 16 9364 5.611 16 9380 5.549 16 9396 5.342 16 9412 5.370 16 9428 5.488 16 9444 5.526 16 9460 5.512 16 9476 5.478 16 9492 5.496 16 9508 5.459 16 9524 5.541 16 9540 5.606 16 9556 5.618 16 9572 5.456 16 9588 5.452 16 9604 5.393 16 9620 5.383 16 9636 5.368 16 9652 5.337 16 9668 5.312 16 9684 5.257 16 9700 5.249 16 9716 5.257 16 9732 5.281 16 9748 5.298 16 9764 5.287 16 9780 5.266 16 9796 5.273 16 9812 5.245 16 9828 5.245 16 9844 5.231 16 9860 5.221 16 9876 5.222 16 9892 5.216 16 9908 5.219 16 9924 5.214 16 9940 5.223 16 9956 5.228 16 9972 5.216 16 9988 5.229 16 10004 5.232 16 10020 5.266 16 10036 5.333 16 10052 5.420 16 10068 5.311 16 10084 5.259 16 10100 5.254 16 10116 5.231 16 10132 5.229 16 10148 5.246 16 10164 5.248 16 10180 5.241 16 10196 5.238 16 10212 5.244 16 10228 5.230 16 10244 5.226 16 10260 5.259 16 10276 5.260 16 10292 5.256 16 10308 5.295 16 10324 5.305 16 10340 5.328 16 sptable-1.0.pre20180612/lib/onedstds/spec16cal/hr4468.dat000066400000000000000000000140051331023215600222140ustar00rootroot00000000000000# HR 4468 3300 5.542 16 3316 5.535 16 3332 5.537 16 3348 5.522 16 3364 5.524 16 3380 5.516 16 3396 5.516 16 3412 5.514 16 3428 5.523 16 3444 5.525 16 3460 5.524 16 3476 5.524 16 3492 5.524 16 3508 5.516 16 3524 5.506 16 3540 5.497 16 3556 5.494 16 3572 5.493 16 3588 5.485 16 3604 5.479 16 3620 5.47 16 3636 5.463 16 3652 5.458 16 3668 5.455 16 3684 5.449 16 3700 5.412 16 3716 5.335 16 3732 5.226 16 3748 5.106 16 3764 4.994 16 3780 4.84 16 3796 4.84 16 3812 4.632 16 3828 4.786 16 3844 4.604 16 3860 4.438 16 3876 4.646 16 3892 4.714 16 3908 4.413 16 3924 4.358 16 3940 4.399 16 3956 4.628 16 3972 4.755 16 3988 4.436 16 4004 4.346 16 4020 4.337 16 4036 4.334 16 4052 4.342 16 4068 4.382 16 4084 4.56 16 4100 4.811 16 4116 4.537 16 4132 4.402 16 4148 4.369 16 4164 4.371 16 4180 4.372 16 4196 4.371 16 4212 4.379 16 4228 4.382 16 4244 4.393 16 4260 4.403 16 4276 4.411 16 4292 4.424 16 4308 4.467 16 4324 4.644 16 4340 4.89 16 4356 4.599 16 4372 4.471 16 4388 4.456 16 4404 4.447 16 4420 4.446 16 4436 4.449 16 4452 4.456 16 4468 4.477 16 4484 4.482 16 4500 4.473 16 4516 4.477 16 4532 4.478 16 4548 4.487 16 4564 4.488 16 4580 4.492 16 4596 4.49 16 4612 4.494 16 4628 4.503 16 4644 4.501 16 4660 4.506 16 4676 4.509 16 4692 4.513 16 4708 4.518 16 4724 4.524 16 4740 4.53 16 4756 4.532 16 4772 4.54 16 4788 4.544 16 4804 4.55 16 4820 4.567 16 4836 4.628 16 4852 4.897 16 4868 4.946 16 4884 4.649 16 4900 4.579 16 4916 4.573 16 4932 4.569 16 4948 4.568 16 4964 4.57 16 4980 4.573 16 4996 4.585 16 5012 4.593 16 5028 4.6 16 5044 4.6 16 5060 4.603 16 5076 4.601 16 5092 4.602 16 5108 4.604 16 5124 4.606 16 5140 4.614 16 5156 4.623 16 5172 4.633 16 5188 4.634 16 5204 4.633 16 5220 4.638 16 5236 4.644 16 5252 4.646 16 5268 4.655 16 5284 4.655 16 5300 4.656 16 5316 4.667 16 5332 4.665 16 5348 4.663 16 5364 4.665 16 5380 4.668 16 5396 4.673 16 5412 4.676 16 5428 4.681 16 5444 4.682 16 5460 4.685 16 5476 4.689 16 5492 4.691 16 5508 4.696 16 5524 4.695 16 5540 4.7 16 5556 4.702 16 5572 4.705 16 5588 4.708 16 5604 4.712 16 5620 4.714 16 5636 4.72 16 5652 4.728 16 5668 4.734 16 5684 4.737 16 5700 4.743 16 5716 4.745 16 5732 4.753 16 5748 4.758 16 5764 4.76 16 5780 4.763 16 5796 4.762 16 5812 4.762 16 5828 4.76 16 5844 4.762 16 5860 4.766 16 5876 4.778 16 5892 4.787 16 5908 4.784 16 5924 4.786 16 5940 4.79 16 5956 4.798 16 5972 4.8 16 5988 4.8 16 6004 4.803 16 6020 4.803 16 6036 4.808 16 6052 4.812 16 6068 4.815 16 6084 4.818 16 6100 4.82 16 6116 4.823 16 6132 4.826 16 6148 4.835 16 6164 4.839 16 6180 4.835 16 6196 4.838 16 6212 4.842 16 6228 4.849 16 6244 4.856 16 6260 4.858 16 6276 4.877 16 6292 4.882 16 6308 4.879 16 6324 4.874 16 6340 4.877 16 6356 4.88 16 6372 4.88 16 6388 4.878 16 6404 4.879 16 6420 4.882 16 6436 4.886 16 6452 4.891 16 6468 4.896 16 6484 4.903 16 6500 4.905 16 6516 4.918 16 6532 4.945 16 6548 5.080 16 6564 5.265 16 6580 5.040 16 6596 4.945 16 6612 4.928 16 6628 4.924 16 6644 4.922 16 6660 4.924 16 6676 4.927 16 6692 4.927 16 6708 4.928 16 6724 4.931 16 6740 4.935 16 6756 4.940 16 6772 4.942 16 6788 4.947 16 6804 4.951 16 6820 4.954 16 6836 4.957 16 6852 4.976 16 6868 5.116 16 6884 5.116 16 6900 5.078 16 6916 5.029 16 6932 5.009 16 6948 5.005 16 6964 4.996 16 6980 4.997 16 6996 5.006 16 7012 5.009 16 7028 5.009 16 7044 5.010 16 7060 5.012 16 7076 5.012 16 7092 5.015 16 7108 5.018 16 7124 5.021 16 7140 5.028 16 7156 5.042 16 7172 5.091 16 7188 5.132 16 7204 5.112 16 7220 5.070 16 7236 5.108 16 7252 5.112 16 7268 5.108 16 7284 5.106 16 7300 5.102 16 7316 5.093 16 7332 5.075 16 7348 5.075 16 7364 5.076 16 7380 5.075 16 7396 5.076 16 7412 5.077 16 7428 5.078 16 7444 5.081 16 7460 5.083 16 7476 5.088 16 7492 5.087 16 7508 5.089 16 7524 5.093 16 7540 5.095 16 7556 5.097 16 7572 5.105 16 7588 5.293 16 7604 6.028 16 7620 5.706 16 7636 5.679 16 7652 5.418 16 7668 5.232 16 7684 5.156 16 7700 5.130 16 7716 5.124 16 7732 5.120 16 7748 5.123 16 7764 5.141 16 7780 5.150 16 7796 5.133 16 7812 5.135 16 7828 5.139 16 7844 5.141 16 7860 5.147 16 7876 5.155 16 7892 5.164 16 7908 5.162 16 7924 5.161 16 7940 5.160 16 7956 5.171 16 7972 5.169 16 7988 5.169 16 8004 5.177 16 8020 5.179 16 8036 5.182 16 8052 5.180 16 8068 5.182 16 8084 5.187 16 8100 5.194 16 8116 5.203 16 8132 5.235 16 8148 5.274 16 8164 5.303 16 8180 5.296 16 8196 5.269 16 8212 5.258 16 8228 5.332 16 8244 5.268 16 8260 5.255 16 8276 5.274 16 8292 5.280 16 8308 5.264 16 8324 5.268 16 8340 5.255 16 8356 5.251 16 8372 5.248 16 8388 5.247 16 8404 5.249 16 8420 5.250 16 8436 5.263 16 8452 5.265 16 8468 5.262 16 8484 5.247 16 8500 5.284 16 8516 5.247 16 8532 5.266 16 8548 5.308 16 8564 5.229 16 8580 5.242 16 8596 5.338 16 8612 5.261 16 8628 5.191 16 8644 5.231 16 8660 5.374 16 8676 5.323 16 8692 5.200 16 8708 5.172 16 8724 5.213 16 8740 5.356 16 8756 5.401 16 8772 5.242 16 8788 5.172 16 8804 5.161 16 8820 5.175 16 8836 5.229 16 8852 5.390 16 8868 5.454 16 8884 5.276 16 8900 5.199 16 8916 5.185 16 8932 5.194 16 8948 5.221 16 8964 5.278 16 8980 5.337 16 8996 5.471 16 9012 5.624 16 9028 5.474 16 9044 5.295 16 9060 5.288 16 9076 5.328 16 9092 5.322 16 9108 5.303 16 9124 5.308 16 9140 5.321 16 9156 5.330 16 9172 5.332 16 9188 5.327 16 9204 5.370 16 9220 5.559 16 9236 5.576 16 9252 5.412 16 9268 5.356 16 9284 5.396 16 9300 5.491 16 9316 5.659 16 9332 5.800 16 9348 5.844 16 9364 5.785 16 9380 5.724 16 9396 5.510 16 9412 5.543 16 9428 5.652 16 9444 5.689 16 9460 5.666 16 9476 5.636 16 9492 5.660 16 9508 5.632 16 9524 5.755 16 9540 5.882 16 9556 5.858 16 9572 5.639 16 9588 5.616 16 9604 5.550 16 9620 5.533 16 9636 5.508 16 9652 5.483 16 9668 5.448 16 9684 5.385 16 9700 5.366 16 9716 5.374 16 9732 5.414 16 9748 5.429 16 9764 5.410 16 9780 5.392 16 9796 5.397 16 9812 5.366 16 9828 5.369 16 9844 5.353 16 9860 5.349 16 9876 5.348 16 9892 5.350 16 9908 5.342 16 9924 5.343 16 9940 5.340 16 9956 5.345 16 9972 5.348 16 9988 5.351 16 10004 5.373 16 10020 5.424 16 10036 5.564 16 10052 5.660 16 10068 5.487 16 10084 5.400 16 10100 5.380 16 10116 5.364 16 10132 5.349 16 10148 5.350 16 10164 5.351 16 10180 5.358 16 10196 5.354 16 10212 5.369 16 10228 5.372 16 10244 5.359 16 10260 5.365 16 10276 5.355 16 10292 5.369 16 10308 5.388 16 sptable-1.0.pre20180612/lib/onedstds/spec16cal/hr4468blue.dat000066400000000000000000000072441331023215600230730ustar00rootroot00000000000000# HR 4468 3300 5.537 16 3316 5.530 16 3332 5.532 16 3348 5.517 16 3364 5.519 16 3380 5.511 16 3396 5.511 16 3412 5.509 16 3428 5.518 16 3444 5.520 16 3460 5.519 16 3476 5.519 16 3492 5.519 16 3508 5.511 16 3524 5.501 16 3540 5.492 16 3556 5.489 16 3572 5.488 16 3588 5.480 16 3604 5.474 16 3620 5.465 16 3636 5.458 16 3652 5.453 16 3668 5.450 16 3684 5.444 16 3700 5.407 16 3716 5.330 16 3732 5.221 16 3748 5.101 16 3764 4.989 16 3780 4.835 16 3796 4.835 16 3812 4.627 16 3828 4.781 16 3844 4.599 16 3860 4.433 16 3876 4.641 16 3892 4.709 16 3908 4.408 16 3924 4.353 16 3940 4.394 16 3956 4.623 16 3972 4.750 16 3988 4.431 16 4004 4.341 16 4020 4.332 16 4036 4.329 16 4052 4.337 16 4068 4.377 16 4084 4.555 16 4100 4.806 16 4116 4.532 16 4132 4.397 16 4148 4.364 16 4164 4.366 16 4180 4.367 16 4196 4.366 16 4212 4.374 16 4228 4.377 16 4244 4.388 16 4260 4.398 16 4276 4.406 16 4292 4.419 16 4308 4.462 16 4324 4.639 16 4340 4.885 16 4356 4.594 16 4372 4.466 16 4388 4.451 16 4404 4.442 16 4420 4.441 16 4436 4.444 16 4452 4.451 16 4468 4.472 16 4484 4.477 16 4500 4.468 16 4516 4.472 16 4532 4.473 16 4548 4.482 16 4564 4.483 16 4580 4.487 16 4596 4.485 16 4612 4.489 16 4628 4.498 16 4644 4.496 16 4660 4.501 16 4676 4.504 16 4692 4.508 16 4708 4.513 16 4724 4.519 16 4740 4.525 16 4756 4.527 16 4772 4.535 16 4788 4.539 16 4804 4.545 16 4820 4.562 16 4836 4.623 16 4852 4.892 16 4868 4.941 16 4884 4.644 16 4900 4.574 16 4916 4.568 16 4932 4.564 16 4948 4.563 16 4964 4.565 16 4980 4.568 16 4996 4.580 16 5012 4.588 16 5028 4.595 16 5044 4.595 16 5060 4.598 16 5076 4.596 16 5092 4.597 16 5108 4.599 16 5124 4.601 16 5140 4.609 16 5156 4.618 16 5172 4.628 16 5188 4.629 16 5204 4.628 16 5220 4.633 16 5236 4.639 16 5252 4.641 16 5268 4.650 16 5284 4.650 16 5300 4.651 16 5316 4.662 16 5332 4.660 16 5348 4.658 16 5364 4.660 16 5380 4.663 16 5396 4.668 16 5412 4.671 16 5428 4.676 16 5444 4.677 16 5460 4.680 16 5476 4.684 16 5492 4.686 16 5508 4.691 16 5524 4.690 16 5540 4.695 16 5556 4.697 16 5572 4.700 16 5588 4.703 16 5604 4.707 16 5620 4.709 16 5636 4.715 16 5652 4.723 16 5668 4.729 16 5684 4.732 16 5700 4.738 16 5716 4.740 16 5732 4.748 16 5748 4.753 16 5764 4.755 16 5780 4.758 16 5796 4.757 16 5812 4.757 16 5828 4.755 16 5844 4.757 16 5860 4.761 16 5876 4.773 16 5892 4.782 16 5908 4.779 16 5924 4.781 16 5940 4.785 16 5956 4.793 16 5972 4.795 16 5988 4.795 16 6004 4.798 16 6020 4.798 16 6036 4.803 16 6052 4.807 16 6068 4.810 16 6084 4.813 16 6100 4.815 16 6116 4.818 16 6132 4.821 16 6148 4.830 16 6164 4.834 16 6180 4.830 16 6196 4.833 16 6212 4.837 16 6228 4.844 16 6244 4.851 16 6260 4.853 16 6276 4.872 16 6292 4.877 16 6308 4.874 16 6324 4.869 16 6340 4.872 16 6356 4.875 16 6372 4.875 16 6388 4.873 16 6404 4.874 16 6420 4.877 16 6436 4.881 16 6452 4.886 16 6468 4.891 16 6484 4.898 16 6500 4.897 16 6516 4.908 16 6532 4.934 16 6548 5.063 16 6564 5.257 16 6580 5.046 16 6596 4.940 16 6612 4.922 16 6628 4.918 16 6644 4.916 16 6660 4.917 16 6676 4.921 16 6692 4.920 16 6708 4.922 16 6724 4.924 16 6740 4.930 16 6756 4.935 16 6772 4.936 16 6788 4.942 16 6804 4.948 16 6820 4.951 16 6836 4.953 16 6852 4.972 16 6868 5.101 16 6884 5.114 16 6900 5.073 16 6916 5.026 16 6932 5.001 16 6948 4.998 16 6964 4.990 16 6980 4.992 16 6996 4.999 16 7012 5.002 16 7028 5.001 16 7044 5.001 16 7060 5.004 16 7076 5.005 16 7092 5.006 16 7108 5.009 16 7124 5.013 16 7140 5.019 16 7156 5.031 16 7172 5.078 16 7188 5.119 16 7204 5.103 16 7220 5.058 16 7236 5.096 16 7252 5.102 16 7268 5.098 16 7284 5.098 16 7300 5.094 16 7316 5.084 16 7332 5.066 16 7348 5.068 16 7364 5.067 16 7380 5.070 16 7396 5.072 16 7412 5.074 16 7428 5.074 16 7444 5.078 16 7460 5.079 16 7476 5.086 16 7492 5.083 16 7508 5.090 16 7524 5.089 16 7540 5.085 16 7556 5.092 16 sptable-1.0.pre20180612/lib/onedstds/spec16cal/hr4468red.dat000066400000000000000000000065661331023215600227240ustar00rootroot00000000000000# HR 4468 6420 4.880 16 6436 4.888 16 6452 4.897 16 6468 4.901 16 6484 4.906 16 6500 4.908 16 6516 4.922 16 6532 4.950 16 6548 5.092 16 6564 5.268 16 6580 5.028 16 6596 4.944 16 6612 4.928 16 6628 4.925 16 6644 4.923 16 6660 4.925 16 6676 4.928 16 6692 4.928 16 6708 4.929 16 6724 4.933 16 6740 4.934 16 6756 4.939 16 6772 4.942 16 6788 4.946 16 6804 4.948 16 6820 4.951 16 6836 4.956 16 6852 4.975 16 6868 5.125 16 6884 5.112 16 6900 5.077 16 6916 5.027 16 6932 5.011 16 6948 5.006 16 6964 4.996 16 6980 4.996 16 6996 5.008 16 7012 5.010 16 7028 5.011 16 7044 5.013 16 7060 5.015 16 7076 5.013 16 7092 5.018 16 7108 5.022 16 7124 5.024 16 7140 5.031 16 7156 5.047 16 7172 5.099 16 7188 5.139 16 7204 5.115 16 7220 5.077 16 7236 5.115 16 7252 5.116 16 7268 5.113 16 7284 5.108 16 7300 5.105 16 7316 5.097 16 7332 5.078 16 7348 5.077 16 7364 5.079 16 7380 5.075 16 7396 5.075 16 7412 5.075 16 7428 5.076 16 7444 5.078 16 7460 5.082 16 7476 5.084 16 7492 5.086 16 7508 5.089 16 7524 5.093 16 7540 5.095 16 7556 5.097 16 7572 5.105 16 7588 5.293 16 7604 6.028 16 7620 5.706 16 7636 5.679 16 7652 5.418 16 7668 5.232 16 7684 5.156 16 7700 5.130 16 7716 5.124 16 7732 5.120 16 7748 5.123 16 7764 5.141 16 7780 5.150 16 7796 5.133 16 7812 5.135 16 7828 5.139 16 7844 5.141 16 7860 5.147 16 7876 5.155 16 7892 5.164 16 7908 5.162 16 7924 5.161 16 7940 5.160 16 7956 5.171 16 7972 5.169 16 7988 5.169 16 8004 5.177 16 8020 5.179 16 8036 5.182 16 8052 5.180 16 8068 5.182 16 8084 5.187 16 8100 5.194 16 8116 5.203 16 8132 5.235 16 8148 5.274 16 8164 5.303 16 8180 5.296 16 8196 5.269 16 8212 5.258 16 8228 5.332 16 8244 5.268 16 8260 5.255 16 8276 5.274 16 8292 5.280 16 8308 5.264 16 8324 5.268 16 8340 5.255 16 8356 5.251 16 8372 5.248 16 8388 5.247 16 8404 5.249 16 8420 5.250 16 8436 5.263 16 8452 5.265 16 8468 5.262 16 8484 5.247 16 8500 5.284 16 8516 5.247 16 8532 5.266 16 8548 5.308 16 8564 5.229 16 8580 5.242 16 8596 5.338 16 8612 5.261 16 8628 5.191 16 8644 5.231 16 8660 5.374 16 8676 5.323 16 8692 5.200 16 8708 5.172 16 8724 5.213 16 8740 5.356 16 8756 5.401 16 8772 5.242 16 8788 5.172 16 8804 5.161 16 8820 5.175 16 8836 5.229 16 8852 5.390 16 8868 5.454 16 8884 5.276 16 8900 5.199 16 8916 5.185 16 8932 5.194 16 8948 5.221 16 8964 5.278 16 8980 5.337 16 8996 5.471 16 9012 5.624 16 9028 5.474 16 9044 5.295 16 9060 5.288 16 9076 5.328 16 9092 5.322 16 9108 5.303 16 9124 5.308 16 9140 5.321 16 9156 5.330 16 9172 5.332 16 9188 5.327 16 9204 5.370 16 9220 5.559 16 9236 5.576 16 9252 5.412 16 9268 5.356 16 9284 5.396 16 9300 5.491 16 9316 5.659 16 9332 5.800 16 9348 5.844 16 9364 5.785 16 9380 5.724 16 9396 5.510 16 9412 5.543 16 9428 5.652 16 9444 5.689 16 9460 5.666 16 9476 5.636 16 9492 5.660 16 9508 5.632 16 9524 5.755 16 9540 5.882 16 9556 5.858 16 9572 5.639 16 9588 5.616 16 9604 5.550 16 9620 5.533 16 9636 5.508 16 9652 5.483 16 9668 5.448 16 9684 5.385 16 9700 5.366 16 9716 5.374 16 9732 5.414 16 9748 5.429 16 9764 5.410 16 9780 5.392 16 9796 5.397 16 9812 5.366 16 9828 5.369 16 9844 5.353 16 9860 5.349 16 9876 5.348 16 9892 5.350 16 9908 5.342 16 9924 5.343 16 9940 5.340 16 9956 5.345 16 9972 5.348 16 9988 5.351 16 10004 5.373 16 10020 5.424 16 10036 5.564 16 10052 5.660 16 10068 5.487 16 10084 5.400 16 10100 5.380 16 10116 5.364 16 10132 5.349 16 10148 5.350 16 10164 5.351 16 10180 5.358 16 10196 5.354 16 10212 5.369 16 10228 5.372 16 10244 5.359 16 10260 5.365 16 10276 5.355 16 10292 5.369 16 10308 5.388 16 sptable-1.0.pre20180612/lib/onedstds/spec16cal/hr4963.dat000066400000000000000000000141511331023215600222160ustar00rootroot00000000000000# HR 4963 3300 5.594 16 3316 5.586 16 3332 5.589 16 3348 5.575 16 3364 5.564 16 3380 5.558 16 3396 5.548 16 3412 5.543 16 3428 5.55 16 3444 5.555 16 3460 5.547 16 3476 5.546 16 3492 5.543 16 3508 5.528 16 3524 5.508 16 3540 5.492 16 3556 5.493 16 3572 5.487 16 3588 5.48 16 3604 5.469 16 3620 5.458 16 3636 5.444 16 3652 5.432 16 3668 5.428 16 3684 5.408 16 3700 5.353 16 3716 5.245 16 3732 5.124 16 3748 4.989 16 3764 4.867 16 3780 4.683 16 3796 4.676 16 3812 4.457 16 3828 4.612 16 3844 4.407 16 3860 4.227 16 3876 4.458 16 3892 4.519 16 3908 4.205 16 3924 4.154 16 3940 4.195 16 3956 4.431 16 3972 4.555 16 3988 4.214 16 4004 4.105 16 4020 4.086 16 4036 4.078 16 4052 4.09 16 4068 4.135 16 4084 4.327 16 4100 4.597 16 4116 4.311 16 4132 4.157 16 4148 4.116 16 4164 4.117 16 4180 4.122 16 4196 4.113 16 4212 4.114 16 4228 4.119 16 4244 4.125 16 4260 4.136 16 4276 4.143 16 4292 4.166 16 4308 4.216 16 4324 4.407 16 4340 4.657 16 4356 4.361 16 4372 4.208 16 4388 4.185 16 4404 4.177 16 4420 4.172 16 4436 4.17 16 4452 4.178 16 4468 4.187 16 4484 4.198 16 4500 4.187 16 4516 4.192 16 4532 4.198 16 4548 4.208 16 4564 4.205 16 4580 4.21 16 4596 4.204 16 4612 4.203 16 4628 4.211 16 4644 4.208 16 4660 4.215 16 4676 4.214 16 4692 4.215 16 4708 4.227 16 4724 4.225 16 4740 4.236 16 4756 4.237 16 4772 4.249 16 4788 4.248 16 4804 4.258 16 4820 4.278 16 4836 4.348 16 4852 4.627 16 4868 4.679 16 4884 4.378 16 4900 4.292 16 4916 4.274 16 4932 4.267 16 4948 4.262 16 4964 4.265 16 4980 4.266 16 4996 4.275 16 5012 4.287 16 5028 4.29 16 5044 4.29 16 5060 4.295 16 5076 4.292 16 5092 4.294 16 5108 4.294 16 5124 4.299 16 5140 4.302 16 5156 4.313 16 5172 4.327 16 5188 4.327 16 5204 4.32 16 5220 4.323 16 5236 4.332 16 5252 4.331 16 5268 4.342 16 5284 4.339 16 5300 4.336 16 5316 4.351 16 5332 4.351 16 5348 4.344 16 5364 4.348 16 5380 4.347 16 5396 4.351 16 5412 4.358 16 5428 4.359 16 5444 4.357 16 5460 4.36 16 5476 4.363 16 5492 4.366 16 5508 4.367 16 5524 4.368 16 5540 4.371 16 5556 4.37 16 5572 4.374 16 5588 4.378 16 5604 4.38 16 5620 4.384 16 5636 4.387 16 5652 4.394 16 5668 4.4 16 5684 4.404 16 5700 4.409 16 5716 4.41 16 5732 4.416 16 5748 4.419 16 5764 4.422 16 5780 4.422 16 5796 4.423 16 5812 4.42 16 5828 4.418 16 5844 4.418 16 5860 4.42 16 5876 4.431 16 5892 4.449 16 5908 4.442 16 5924 4.443 16 5940 4.447 16 5956 4.452 16 5972 4.454 16 5988 4.454 16 6004 4.455 16 6020 4.459 16 6036 4.463 16 6052 4.464 16 6068 4.468 16 6084 4.473 16 6100 4.473 16 6116 4.475 16 6132 4.481 16 6148 4.49 16 6164 4.492 16 6180 4.489 16 6196 4.488 16 6212 4.492 16 6228 4.498 16 6244 4.507 16 6260 4.508 16 6276 4.528 16 6292 4.533 16 6308 4.526 16 6324 4.522 16 6340 4.525 16 6356 4.525 16 6372 4.528 16 6388 4.524 16 6404 4.525 16 6420 4.528 16 6436 4.533 16 6452 4.539 16 6468 4.542 16 6484 4.549 16 6500 4.553 16 6516 4.565 16 6532 4.595 16 6548 4.735 16 6564 4.928 16 6580 4.696 16 6596 4.595 16 6612 4.571 16 6628 4.563 16 6644 4.562 16 6660 4.562 16 6676 4.563 16 6692 4.563 16 6708 4.565 16 6724 4.568 16 6740 4.569 16 6756 4.575 16 6772 4.576 16 6788 4.580 16 6804 4.581 16 6820 4.585 16 6836 4.588 16 6852 4.605 16 6868 4.750 16 6884 4.747 16 6900 4.712 16 6916 4.662 16 6932 4.641 16 6948 4.635 16 6964 4.625 16 6980 4.625 16 6996 4.633 16 7012 4.635 16 7028 4.636 16 7044 4.636 16 7060 4.637 16 7076 4.639 16 7092 4.640 16 7108 4.644 16 7124 4.648 16 7140 4.651 16 7156 4.666 16 7172 4.716 16 7188 4.757 16 7204 4.736 16 7220 4.700 16 7236 4.733 16 7252 4.736 16 7268 4.734 16 7284 4.730 16 7300 4.725 16 7316 4.718 16 7332 4.699 16 7348 4.696 16 7364 4.699 16 7380 4.697 16 7396 4.696 16 7412 4.698 16 7428 4.700 16 7444 4.703 16 7460 4.705 16 7476 4.707 16 7492 4.706 16 7508 4.707 16 7524 4.710 16 7540 4.711 16 7556 4.714 16 7572 4.720 16 7588 4.910 16 7604 5.645 16 7620 5.337 16 7636 5.321 16 7652 5.047 16 7668 4.854 16 7684 4.773 16 7700 4.745 16 7716 4.736 16 7732 4.734 16 7748 4.735 16 7764 4.755 16 7780 4.764 16 7796 4.743 16 7812 4.741 16 7828 4.745 16 7844 4.745 16 7860 4.753 16 7876 4.761 16 7892 4.771 16 7908 4.767 16 7924 4.768 16 7940 4.767 16 7956 4.774 16 7972 4.774 16 7988 4.774 16 8004 4.780 16 8020 4.780 16 8036 4.781 16 8052 4.781 16 8068 4.783 16 8084 4.785 16 8100 4.795 16 8116 4.809 16 8132 4.836 16 8148 4.873 16 8164 4.902 16 8180 4.895 16 8196 4.876 16 8212 4.859 16 8228 4.929 16 8244 4.863 16 8260 4.855 16 8276 4.873 16 8292 4.872 16 8308 4.862 16 8324 4.861 16 8340 4.849 16 8356 4.842 16 8372 4.839 16 8388 4.839 16 8404 4.838 16 8420 4.836 16 8436 4.856 16 8452 4.850 16 8468 4.853 16 8484 4.830 16 8500 4.882 16 8516 4.825 16 8532 4.852 16 8548 4.906 16 8564 4.805 16 8580 4.819 16 8596 4.931 16 8612 4.834 16 8628 4.762 16 8644 4.804 16 8660 4.968 16 8676 4.899 16 8692 4.771 16 8708 4.741 16 8724 4.780 16 8740 4.931 16 8756 4.978 16 8772 4.804 16 8788 4.739 16 8804 4.730 16 8820 4.742 16 8836 4.794 16 8852 4.961 16 8868 5.022 16 8884 4.839 16 8900 4.765 16 8916 4.752 16 8932 4.758 16 8948 4.785 16 8964 4.843 16 8980 4.907 16 8996 5.033 16 9012 5.208 16 9028 5.034 16 9044 4.864 16 9060 4.863 16 9076 4.898 16 9092 4.898 16 9108 4.875 16 9124 4.880 16 9140 4.889 16 9156 4.900 16 9172 4.901 16 9188 4.896 16 9204 4.936 16 9220 5.126 16 9236 5.147 16 9252 4.973 16 9268 4.923 16 9284 4.956 16 9300 5.052 16 9316 5.219 16 9332 5.367 16 9348 5.412 16 9364 5.361 16 9380 5.290 16 9396 5.086 16 9412 5.120 16 9428 5.219 16 9444 5.251 16 9460 5.238 16 9476 5.207 16 9492 5.232 16 9508 5.192 16 9524 5.313 16 9540 5.449 16 9556 5.424 16 9572 5.207 16 9588 5.186 16 9604 5.115 16 9620 5.099 16 9636 5.069 16 9652 5.041 16 9668 5.012 16 9684 4.940 16 9700 4.932 16 9716 4.937 16 9732 4.966 16 9748 4.979 16 9764 4.968 16 9780 4.951 16 9796 4.956 16 9812 4.928 16 9828 4.928 16 9844 4.919 16 9860 4.902 16 9876 4.900 16 9892 4.903 16 9908 4.895 16 9924 4.899 16 9940 4.904 16 9956 4.907 16 9972 4.902 16 9988 4.914 16 10004 4.927 16 10020 4.975 16 10036 5.103 16 10052 5.221 16 10068 5.045 16 10084 4.969 16 10100 4.933 16 10116 4.932 16 10132 4.923 16 10148 4.908 16 10164 4.915 16 10180 4.910 16 10196 4.894 16 10212 4.914 16 10228 4.924 16 10244 4.916 16 10260 4.905 16 10276 4.904 16 10292 4.931 16 10308 4.944 16 10324 4.949 16 10340 4.966 16 10356 4.953 16 10372 5.052 16 10388 4.949 16 10404 4.977 16 sptable-1.0.pre20180612/lib/onedstds/spec16cal/hr4963blue.dat000066400000000000000000000072441331023215600230730ustar00rootroot00000000000000# HR 4963 3300 5.592 16 3316 5.584 16 3332 5.587 16 3348 5.573 16 3364 5.562 16 3380 5.556 16 3396 5.546 16 3412 5.541 16 3428 5.548 16 3444 5.553 16 3460 5.545 16 3476 5.544 16 3492 5.541 16 3508 5.526 16 3524 5.506 16 3540 5.490 16 3556 5.491 16 3572 5.485 16 3588 5.478 16 3604 5.467 16 3620 5.456 16 3636 5.442 16 3652 5.430 16 3668 5.426 16 3684 5.406 16 3700 5.351 16 3716 5.243 16 3732 5.122 16 3748 4.987 16 3764 4.865 16 3780 4.681 16 3796 4.674 16 3812 4.455 16 3828 4.610 16 3844 4.405 16 3860 4.225 16 3876 4.456 16 3892 4.517 16 3908 4.203 16 3924 4.152 16 3940 4.193 16 3956 4.429 16 3972 4.553 16 3988 4.212 16 4004 4.103 16 4020 4.084 16 4036 4.076 16 4052 4.088 16 4068 4.133 16 4084 4.325 16 4100 4.595 16 4116 4.309 16 4132 4.155 16 4148 4.114 16 4164 4.115 16 4180 4.120 16 4196 4.111 16 4212 4.112 16 4228 4.117 16 4244 4.123 16 4260 4.134 16 4276 4.141 16 4292 4.164 16 4308 4.214 16 4324 4.405 16 4340 4.655 16 4356 4.359 16 4372 4.206 16 4388 4.183 16 4404 4.175 16 4420 4.170 16 4436 4.168 16 4452 4.176 16 4468 4.185 16 4484 4.196 16 4500 4.185 16 4516 4.190 16 4532 4.196 16 4548 4.206 16 4564 4.203 16 4580 4.208 16 4596 4.202 16 4612 4.201 16 4628 4.209 16 4644 4.206 16 4660 4.213 16 4676 4.212 16 4692 4.213 16 4708 4.225 16 4724 4.223 16 4740 4.234 16 4756 4.235 16 4772 4.247 16 4788 4.246 16 4804 4.256 16 4820 4.276 16 4836 4.346 16 4852 4.625 16 4868 4.677 16 4884 4.376 16 4900 4.290 16 4916 4.272 16 4932 4.265 16 4948 4.260 16 4964 4.263 16 4980 4.264 16 4996 4.273 16 5012 4.285 16 5028 4.288 16 5044 4.288 16 5060 4.293 16 5076 4.290 16 5092 4.292 16 5108 4.292 16 5124 4.297 16 5140 4.300 16 5156 4.311 16 5172 4.325 16 5188 4.325 16 5204 4.318 16 5220 4.321 16 5236 4.330 16 5252 4.329 16 5268 4.340 16 5284 4.337 16 5300 4.334 16 5316 4.349 16 5332 4.349 16 5348 4.342 16 5364 4.346 16 5380 4.345 16 5396 4.349 16 5412 4.356 16 5428 4.357 16 5444 4.355 16 5460 4.358 16 5476 4.361 16 5492 4.364 16 5508 4.365 16 5524 4.366 16 5540 4.369 16 5556 4.368 16 5572 4.372 16 5588 4.376 16 5604 4.378 16 5620 4.382 16 5636 4.385 16 5652 4.392 16 5668 4.398 16 5684 4.402 16 5700 4.407 16 5716 4.408 16 5732 4.414 16 5748 4.417 16 5764 4.420 16 5780 4.420 16 5796 4.421 16 5812 4.418 16 5828 4.416 16 5844 4.416 16 5860 4.418 16 5876 4.429 16 5892 4.447 16 5908 4.440 16 5924 4.441 16 5940 4.445 16 5956 4.450 16 5972 4.452 16 5988 4.452 16 6004 4.453 16 6020 4.457 16 6036 4.461 16 6052 4.462 16 6068 4.466 16 6084 4.471 16 6100 4.471 16 6116 4.473 16 6132 4.479 16 6148 4.488 16 6164 4.490 16 6180 4.487 16 6196 4.486 16 6212 4.490 16 6228 4.496 16 6244 4.505 16 6260 4.506 16 6276 4.526 16 6292 4.531 16 6308 4.524 16 6324 4.520 16 6340 4.523 16 6356 4.523 16 6372 4.526 16 6388 4.522 16 6404 4.523 16 6420 4.526 16 6436 4.531 16 6452 4.537 16 6468 4.540 16 6484 4.547 16 6500 4.549 16 6516 4.559 16 6532 4.587 16 6548 4.718 16 6564 4.923 16 6580 4.709 16 6596 4.597 16 6612 4.568 16 6628 4.561 16 6644 4.559 16 6660 4.560 16 6676 4.561 16 6692 4.561 16 6708 4.563 16 6724 4.566 16 6740 4.567 16 6756 4.574 16 6772 4.575 16 6788 4.582 16 6804 4.581 16 6820 4.588 16 6836 4.591 16 6852 4.605 16 6868 4.740 16 6884 4.752 16 6900 4.715 16 6916 4.665 16 6932 4.643 16 6948 4.636 16 6964 4.628 16 6980 4.625 16 6996 4.632 16 7012 4.634 16 7028 4.634 16 7044 4.634 16 7060 4.634 16 7076 4.637 16 7092 4.635 16 7108 4.639 16 7124 4.643 16 7140 4.646 16 7156 4.658 16 7172 4.705 16 7188 4.749 16 7204 4.732 16 7220 4.696 16 7236 4.724 16 7252 4.731 16 7268 4.727 16 7284 4.723 16 7300 4.717 16 7316 4.711 16 7332 4.694 16 7348 4.690 16 7364 4.695 16 7380 4.694 16 7396 4.693 16 7412 4.695 16 7428 4.700 16 7444 4.702 16 7460 4.704 16 7476 4.708 16 7492 4.704 16 7508 4.711 16 7524 4.711 16 7540 4.708 16 7556 4.714 16 sptable-1.0.pre20180612/lib/onedstds/spec16cal/hr4963red.dat000066400000000000000000000074041331023215600227140ustar00rootroot00000000000000# HR 4963 6068 4.486 16 6084 4.486 16 6100 4.492 16 6116 4.493 16 6132 4.499 16 6148 4.510 16 6164 4.508 16 6180 4.504 16 6196 4.508 16 6212 4.513 16 6228 4.522 16 6244 4.529 16 6260 4.533 16 6276 4.556 16 6292 4.556 16 6308 4.550 16 6324 4.542 16 6340 4.548 16 6356 4.546 16 6372 4.548 16 6388 4.541 16 6404 4.532 16 6420 4.532 16 6436 4.536 16 6452 4.546 16 6468 4.549 16 6484 4.554 16 6500 4.555 16 6516 4.569 16 6532 4.600 16 6548 4.749 16 6564 4.931 16 6580 4.681 16 6596 4.591 16 6612 4.571 16 6628 4.563 16 6644 4.563 16 6660 4.562 16 6676 4.563 16 6692 4.563 16 6708 4.564 16 6724 4.567 16 6740 4.568 16 6756 4.573 16 6772 4.574 16 6788 4.576 16 6804 4.578 16 6820 4.580 16 6836 4.583 16 6852 4.603 16 6868 4.758 16 6884 4.740 16 6900 4.707 16 6916 4.656 16 6932 4.636 16 6948 4.631 16 6964 4.620 16 6980 4.622 16 6996 4.632 16 7012 4.634 16 7028 4.636 16 7044 4.636 16 7060 4.638 16 7076 4.638 16 7092 4.642 16 7108 4.646 16 7124 4.650 16 7140 4.654 16 7156 4.671 16 7172 4.725 16 7188 4.763 16 7204 4.738 16 7220 4.701 16 7236 4.739 16 7252 4.739 16 7268 4.738 16 7284 4.734 16 7300 4.730 16 7316 4.722 16 7332 4.702 16 7348 4.699 16 7364 4.700 16 7380 4.698 16 7396 4.697 16 7412 4.699 16 7428 4.698 16 7444 4.702 16 7460 4.703 16 7476 4.704 16 7492 4.706 16 7508 4.707 16 7524 4.710 16 7540 4.711 16 7556 4.714 16 7572 4.720 16 7588 4.910 16 7604 5.645 16 7620 5.337 16 7636 5.321 16 7652 5.047 16 7668 4.854 16 7684 4.773 16 7700 4.745 16 7716 4.736 16 7732 4.734 16 7748 4.735 16 7764 4.755 16 7780 4.764 16 7796 4.743 16 7812 4.741 16 7828 4.745 16 7844 4.745 16 7860 4.753 16 7876 4.761 16 7892 4.771 16 7908 4.767 16 7924 4.768 16 7940 4.767 16 7956 4.774 16 7972 4.774 16 7988 4.774 16 8004 4.780 16 8020 4.780 16 8036 4.781 16 8052 4.781 16 8068 4.783 16 8084 4.785 16 8100 4.795 16 8116 4.809 16 8132 4.836 16 8148 4.873 16 8164 4.902 16 8180 4.895 16 8196 4.876 16 8212 4.859 16 8228 4.929 16 8244 4.863 16 8260 4.855 16 8276 4.873 16 8292 4.872 16 8308 4.862 16 8324 4.861 16 8340 4.849 16 8356 4.842 16 8372 4.839 16 8388 4.839 16 8404 4.838 16 8420 4.836 16 8436 4.856 16 8452 4.850 16 8468 4.853 16 8484 4.830 16 8500 4.882 16 8516 4.825 16 8532 4.852 16 8548 4.906 16 8564 4.805 16 8580 4.819 16 8596 4.931 16 8612 4.834 16 8628 4.762 16 8644 4.804 16 8660 4.968 16 8676 4.899 16 8692 4.771 16 8708 4.741 16 8724 4.780 16 8740 4.931 16 8756 4.978 16 8772 4.804 16 8788 4.739 16 8804 4.730 16 8820 4.742 16 8836 4.794 16 8852 4.961 16 8868 5.022 16 8884 4.839 16 8900 4.765 16 8916 4.752 16 8932 4.758 16 8948 4.785 16 8964 4.843 16 8980 4.907 16 8996 5.033 16 9012 5.208 16 9028 5.034 16 9044 4.864 16 9060 4.863 16 9076 4.898 16 9092 4.898 16 9108 4.875 16 9124 4.880 16 9140 4.889 16 9156 4.900 16 9172 4.901 16 9188 4.896 16 9204 4.936 16 9220 5.126 16 9236 5.147 16 9252 4.973 16 9268 4.923 16 9284 4.956 16 9300 5.052 16 9316 5.219 16 9332 5.367 16 9348 5.412 16 9364 5.361 16 9380 5.290 16 9396 5.086 16 9412 5.120 16 9428 5.219 16 9444 5.251 16 9460 5.238 16 9476 5.207 16 9492 5.232 16 9508 5.192 16 9524 5.313 16 9540 5.449 16 9556 5.424 16 9572 5.207 16 9588 5.186 16 9604 5.115 16 9620 5.099 16 9636 5.069 16 9652 5.041 16 9668 5.012 16 9684 4.940 16 9700 4.932 16 9716 4.937 16 9732 4.966 16 9748 4.979 16 9764 4.968 16 9780 4.951 16 9796 4.956 16 9812 4.928 16 9828 4.928 16 9844 4.919 16 9860 4.902 16 9876 4.900 16 9892 4.903 16 9908 4.895 16 9924 4.899 16 9940 4.904 16 9956 4.907 16 9972 4.902 16 9988 4.914 16 10004 4.927 16 10020 4.975 16 10036 5.103 16 10052 5.221 16 10068 5.045 16 10084 4.969 16 10100 4.933 16 10116 4.932 16 10132 4.923 16 10148 4.908 16 10164 4.915 16 10180 4.910 16 10196 4.894 16 10212 4.914 16 10228 4.924 16 10244 4.916 16 10260 4.905 16 10276 4.904 16 10292 4.931 16 10308 4.944 16 10324 4.949 16 10340 4.966 16 10356 4.953 16 10372 5.052 16 10388 4.949 16 10404 4.977 16 sptable-1.0.pre20180612/lib/onedstds/spec16cal/hr5501.dat000066400000000000000000000141321331023215600222020ustar00rootroot00000000000000# HR 5501 3300 6.732 16 3316 6.733 16 3332 6.72 16 3348 6.712 16 3364 6.705 16 3380 6.698 16 3396 6.695 16 3412 6.691 16 3428 6.704 16 3444 6.708 16 3460 6.706 16 3476 6.7 16 3492 6.697 16 3508 6.687 16 3524 6.672 16 3540 6.663 16 3556 6.658 16 3572 6.655 16 3588 6.648 16 3604 6.643 16 3620 6.632 16 3636 6.625 16 3652 6.613 16 3668 6.609 16 3684 6.604 16 3700 6.564 16 3716 6.481 16 3732 6.366 16 3748 6.243 16 3764 6.122 16 3780 5.969 16 3796 5.941 16 3812 5.746 16 3828 5.888 16 3844 5.711 16 3860 5.529 16 3876 5.763 16 3892 5.802 16 3908 5.503 16 3924 5.439 16 3940 5.487 16 3956 5.726 16 3972 5.842 16 3988 5.522 16 4004 5.414 16 4020 5.397 16 4036 5.394 16 4052 5.405 16 4068 5.452 16 4084 5.653 16 4100 5.901 16 4116 5.611 16 4132 5.461 16 4148 5.429 16 4164 5.428 16 4180 5.43 16 4196 5.427 16 4212 5.428 16 4228 5.433 16 4244 5.44 16 4260 5.452 16 4276 5.462 16 4292 5.477 16 4308 5.524 16 4324 5.714 16 4340 5.965 16 4356 5.662 16 4372 5.515 16 4388 5.499 16 4404 5.492 16 4420 5.49 16 4436 5.492 16 4452 5.498 16 4468 5.509 16 4484 5.518 16 4500 5.509 16 4516 5.513 16 4532 5.517 16 4548 5.527 16 4564 5.526 16 4580 5.528 16 4596 5.527 16 4612 5.53 16 4628 5.538 16 4644 5.536 16 4660 5.543 16 4676 5.546 16 4692 5.547 16 4708 5.552 16 4724 5.556 16 4740 5.561 16 4756 5.568 16 4772 5.575 16 4788 5.576 16 4804 5.582 16 4820 5.605 16 4836 5.673 16 4852 5.953 16 4868 5.988 16 4884 5.687 16 4900 5.608 16 4916 5.598 16 4932 5.593 16 4948 5.592 16 4964 5.592 16 4980 5.593 16 4996 5.603 16 5012 5.61 16 5028 5.613 16 5044 5.613 16 5060 5.615 16 5076 5.616 16 5092 5.616 16 5108 5.617 16 5124 5.618 16 5140 5.623 16 5156 5.628 16 5172 5.641 16 5188 5.64 16 5204 5.64 16 5220 5.64 16 5236 5.649 16 5252 5.65 16 5268 5.657 16 5284 5.659 16 5300 5.66 16 5316 5.669 16 5332 5.67 16 5348 5.666 16 5364 5.669 16 5380 5.67 16 5396 5.674 16 5412 5.675 16 5428 5.681 16 5444 5.682 16 5460 5.685 16 5476 5.688 16 5492 5.688 16 5508 5.693 16 5524 5.691 16 5540 5.696 16 5556 5.694 16 5572 5.699 16 5588 5.702 16 5604 5.707 16 5620 5.711 16 5636 5.716 16 5652 5.719 16 5668 5.724 16 5684 5.73 16 5700 5.735 16 5716 5.738 16 5732 5.744 16 5748 5.748 16 5764 5.753 16 5780 5.754 16 5796 5.753 16 5812 5.749 16 5828 5.747 16 5844 5.747 16 5860 5.752 16 5876 5.761 16 5892 5.775 16 5908 5.772 16 5924 5.772 16 5940 5.777 16 5956 5.781 16 5972 5.783 16 5988 5.785 16 6004 5.785 16 6020 5.79 16 6036 5.793 16 6052 5.795 16 6068 5.798 16 6084 5.804 16 6100 5.803 16 6116 5.807 16 6132 5.809 16 6148 5.818 16 6164 5.824 16 6180 5.818 16 6196 5.824 16 6212 5.824 16 6228 5.827 16 6244 5.833 16 6260 5.837 16 6276 5.861 16 6292 5.863 16 6308 5.855 16 6324 5.851 16 6340 5.854 16 6356 5.853 16 6372 5.853 16 6388 5.855 16 6404 5.853 16 6420 5.855 16 6436 5.857 16 6452 5.861 16 6468 5.867 16 6484 5.872 16 6500 5.877 16 6516 5.888 16 6532 5.917 16 6548 6.057 16 6564 6.240 16 6580 6.011 16 6596 5.915 16 6612 5.894 16 6628 5.889 16 6644 5.887 16 6660 5.886 16 6676 5.887 16 6692 5.887 16 6708 5.892 16 6724 5.892 16 6740 5.895 16 6756 5.898 16 6772 5.904 16 6788 5.905 16 6804 5.909 16 6820 5.912 16 6836 5.914 16 6852 5.931 16 6868 6.077 16 6884 6.075 16 6900 6.035 16 6916 5.987 16 6932 5.967 16 6948 5.961 16 6964 5.950 16 6980 5.951 16 6996 5.960 16 7012 5.962 16 7028 5.962 16 7044 5.962 16 7060 5.965 16 7076 5.964 16 7092 5.967 16 7108 5.969 16 7124 5.972 16 7140 5.977 16 7156 5.992 16 7172 6.040 16 7188 6.081 16 7204 6.059 16 7220 6.022 16 7236 6.056 16 7252 6.059 16 7268 6.056 16 7284 6.054 16 7300 6.051 16 7316 6.042 16 7332 6.025 16 7348 6.024 16 7364 6.025 16 7380 6.026 16 7396 6.024 16 7412 6.026 16 7428 6.027 16 7444 6.030 16 7460 6.032 16 7476 6.036 16 7492 6.035 16 7508 6.035 16 7524 6.038 16 7540 6.041 16 7556 6.043 16 7572 6.051 16 7588 6.240 16 7604 6.995 16 7620 6.654 16 7636 6.627 16 7652 6.364 16 7668 6.176 16 7684 6.101 16 7700 6.074 16 7716 6.067 16 7732 6.067 16 7748 6.069 16 7764 6.086 16 7780 6.090 16 7796 6.072 16 7812 6.074 16 7828 6.076 16 7844 6.079 16 7860 6.083 16 7876 6.091 16 7892 6.099 16 7908 6.096 16 7924 6.096 16 7940 6.095 16 7956 6.102 16 7972 6.102 16 7988 6.103 16 8004 6.110 16 8020 6.112 16 8036 6.111 16 8052 6.109 16 8068 6.111 16 8084 6.120 16 8100 6.127 16 8116 6.138 16 8132 6.169 16 8148 6.202 16 8164 6.230 16 8180 6.224 16 8196 6.200 16 8212 6.184 16 8228 6.255 16 8244 6.189 16 8260 6.181 16 8276 6.202 16 8292 6.202 16 8308 6.191 16 8324 6.191 16 8340 6.176 16 8356 6.171 16 8372 6.171 16 8388 6.168 16 8404 6.170 16 8420 6.173 16 8436 6.185 16 8452 6.183 16 8468 6.179 16 8484 6.164 16 8500 6.205 16 8516 6.163 16 8532 6.189 16 8548 6.228 16 8564 6.144 16 8580 6.161 16 8596 6.256 16 8612 6.172 16 8628 6.108 16 8644 6.153 16 8660 6.297 16 8676 6.227 16 8692 6.107 16 8708 6.084 16 8724 6.127 16 8740 6.272 16 8756 6.307 16 8772 6.147 16 8788 6.079 16 8804 6.071 16 8820 6.086 16 8836 6.141 16 8852 6.304 16 8868 6.355 16 8884 6.175 16 8900 6.103 16 8916 6.089 16 8932 6.094 16 8948 6.121 16 8964 6.179 16 8980 6.243 16 8996 6.380 16 9012 6.536 16 9028 6.364 16 9044 6.195 16 9060 6.189 16 9076 6.225 16 9092 6.223 16 9108 6.206 16 9124 6.214 16 9140 6.224 16 9156 6.231 16 9172 6.231 16 9188 6.231 16 9204 6.270 16 9220 6.459 16 9236 6.478 16 9252 6.304 16 9268 6.253 16 9284 6.286 16 9300 6.380 16 9316 6.552 16 9332 6.695 16 9348 6.735 16 9364 6.686 16 9380 6.616 16 9396 6.405 16 9412 6.434 16 9428 6.551 16 9444 6.578 16 9460 6.560 16 9476 6.530 16 9492 6.563 16 9508 6.523 16 9524 6.648 16 9540 6.775 16 9556 6.741 16 9572 6.538 16 9588 6.508 16 9604 6.439 16 9620 6.425 16 9636 6.401 16 9652 6.373 16 9668 6.345 16 9684 6.282 16 9700 6.273 16 9716 6.276 16 9732 6.304 16 9748 6.320 16 9764 6.316 16 9780 6.300 16 9796 6.304 16 9812 6.273 16 9828 6.270 16 9844 6.254 16 9860 6.240 16 9876 6.242 16 9892 6.245 16 9908 6.256 16 9924 6.251 16 9940 6.245 16 9956 6.254 16 9972 6.247 16 9988 6.267 16 10004 6.272 16 10020 6.329 16 10036 6.463 16 10052 6.578 16 10068 6.391 16 10084 6.301 16 10100 6.282 16 10116 6.268 16 10132 6.247 16 10148 6.244 16 10164 6.267 16 10180 6.269 16 10196 6.272 16 10212 6.270 16 10228 6.279 16 10244 6.248 16 10260 6.258 16 10276 6.265 16 10292 6.257 16 10308 6.281 16 10324 6.327 16 10340 6.361 16 10356 6.306 16 10372 6.273 16 10388 6.338 16 sptable-1.0.pre20180612/lib/onedstds/spec16cal/hr5501blue.dat000066400000000000000000000072441331023215600230600ustar00rootroot00000000000000# HR 5501 3300 6.719 16 3316 6.720 16 3332 6.707 16 3348 6.699 16 3364 6.692 16 3380 6.685 16 3396 6.682 16 3412 6.678 16 3428 6.691 16 3444 6.695 16 3460 6.693 16 3476 6.687 16 3492 6.684 16 3508 6.674 16 3524 6.659 16 3540 6.650 16 3556 6.645 16 3572 6.642 16 3588 6.635 16 3604 6.630 16 3620 6.619 16 3636 6.612 16 3652 6.600 16 3668 6.596 16 3684 6.591 16 3700 6.551 16 3716 6.468 16 3732 6.353 16 3748 6.230 16 3764 6.109 16 3780 5.956 16 3796 5.928 16 3812 5.733 16 3828 5.875 16 3844 5.698 16 3860 5.516 16 3876 5.750 16 3892 5.789 16 3908 5.490 16 3924 5.426 16 3940 5.474 16 3956 5.713 16 3972 5.829 16 3988 5.509 16 4004 5.401 16 4020 5.384 16 4036 5.381 16 4052 5.392 16 4068 5.439 16 4084 5.640 16 4100 5.888 16 4116 5.598 16 4132 5.448 16 4148 5.416 16 4164 5.415 16 4180 5.417 16 4196 5.414 16 4212 5.415 16 4228 5.420 16 4244 5.427 16 4260 5.439 16 4276 5.449 16 4292 5.464 16 4308 5.511 16 4324 5.701 16 4340 5.952 16 4356 5.649 16 4372 5.502 16 4388 5.486 16 4404 5.479 16 4420 5.477 16 4436 5.479 16 4452 5.485 16 4468 5.496 16 4484 5.505 16 4500 5.496 16 4516 5.500 16 4532 5.504 16 4548 5.514 16 4564 5.513 16 4580 5.515 16 4596 5.514 16 4612 5.517 16 4628 5.525 16 4644 5.523 16 4660 5.530 16 4676 5.533 16 4692 5.534 16 4708 5.539 16 4724 5.543 16 4740 5.548 16 4756 5.555 16 4772 5.562 16 4788 5.563 16 4804 5.569 16 4820 5.592 16 4836 5.660 16 4852 5.940 16 4868 5.975 16 4884 5.674 16 4900 5.595 16 4916 5.585 16 4932 5.580 16 4948 5.579 16 4964 5.579 16 4980 5.580 16 4996 5.590 16 5012 5.597 16 5028 5.600 16 5044 5.600 16 5060 5.602 16 5076 5.603 16 5092 5.603 16 5108 5.604 16 5124 5.605 16 5140 5.610 16 5156 5.615 16 5172 5.628 16 5188 5.627 16 5204 5.627 16 5220 5.627 16 5236 5.636 16 5252 5.637 16 5268 5.644 16 5284 5.646 16 5300 5.647 16 5316 5.656 16 5332 5.657 16 5348 5.653 16 5364 5.656 16 5380 5.657 16 5396 5.661 16 5412 5.662 16 5428 5.668 16 5444 5.669 16 5460 5.672 16 5476 5.675 16 5492 5.675 16 5508 5.680 16 5524 5.678 16 5540 5.683 16 5556 5.681 16 5572 5.686 16 5588 5.689 16 5604 5.694 16 5620 5.698 16 5636 5.703 16 5652 5.706 16 5668 5.711 16 5684 5.717 16 5700 5.722 16 5716 5.725 16 5732 5.731 16 5748 5.735 16 5764 5.740 16 5780 5.741 16 5796 5.740 16 5812 5.736 16 5828 5.734 16 5844 5.734 16 5860 5.739 16 5876 5.748 16 5892 5.762 16 5908 5.759 16 5924 5.759 16 5940 5.764 16 5956 5.768 16 5972 5.770 16 5988 5.772 16 6004 5.772 16 6020 5.777 16 6036 5.780 16 6052 5.782 16 6068 5.785 16 6084 5.791 16 6100 5.790 16 6116 5.794 16 6132 5.796 16 6148 5.805 16 6164 5.811 16 6180 5.805 16 6196 5.811 16 6212 5.811 16 6228 5.814 16 6244 5.820 16 6260 5.824 16 6276 5.848 16 6292 5.850 16 6308 5.842 16 6324 5.838 16 6340 5.841 16 6356 5.840 16 6372 5.840 16 6388 5.842 16 6404 5.840 16 6420 5.842 16 6436 5.844 16 6452 5.848 16 6468 5.854 16 6484 5.859 16 6500 5.863 16 6516 5.870 16 6532 5.900 16 6548 6.025 16 6564 6.221 16 6580 6.015 16 6596 5.905 16 6612 5.882 16 6628 5.876 16 6644 5.875 16 6660 5.875 16 6676 5.873 16 6692 5.876 16 6708 5.879 16 6724 5.879 16 6740 5.882 16 6756 5.886 16 6772 5.894 16 6788 5.896 16 6804 5.901 16 6820 5.905 16 6836 5.905 16 6852 5.920 16 6868 6.061 16 6884 6.073 16 6900 6.029 16 6916 5.981 16 6932 5.959 16 6948 5.952 16 6964 5.942 16 6980 5.940 16 6996 5.949 16 7012 5.951 16 7028 5.950 16 7044 5.950 16 7060 5.951 16 7076 5.950 16 7092 5.951 16 7108 5.954 16 7124 5.956 16 7140 5.960 16 7156 5.975 16 7172 6.019 16 7188 6.064 16 7204 6.044 16 7220 6.007 16 7236 6.036 16 7252 6.043 16 7268 6.039 16 7284 6.037 16 7300 6.034 16 7316 6.026 16 7332 6.009 16 7348 6.008 16 7364 6.008 16 7380 6.012 16 7396 6.011 16 7412 6.012 16 7428 6.014 16 7444 6.018 16 7460 6.021 16 7476 6.025 16 7492 6.021 16 7508 6.030 16 7524 6.028 16 7540 6.026 16 7556 6.034 16 sptable-1.0.pre20180612/lib/onedstds/spec16cal/hr5501red.dat000066400000000000000000000074031331023215600227000ustar00rootroot00000000000000# HR 5501 6052 5.787 16 6068 5.788 16 6084 5.791 16 6100 5.796 16 6116 5.803 16 6132 5.808 16 6148 5.820 16 6164 5.823 16 6180 5.824 16 6196 5.830 16 6212 5.835 16 6228 5.845 16 6244 5.848 16 6260 5.854 16 6276 5.879 16 6292 5.878 16 6308 5.873 16 6324 5.868 16 6340 5.871 16 6356 5.866 16 6372 5.872 16 6388 5.866 16 6404 5.860 16 6420 5.858 16 6436 5.861 16 6452 5.867 16 6468 5.870 16 6484 5.876 16 6500 5.878 16 6516 5.892 16 6532 5.920 16 6548 6.075 16 6564 6.245 16 6580 5.994 16 6596 5.911 16 6612 5.892 16 6628 5.888 16 6644 5.886 16 6660 5.884 16 6676 5.888 16 6692 5.885 16 6708 5.891 16 6724 5.891 16 6740 5.895 16 6756 5.896 16 6772 5.900 16 6788 5.901 16 6804 5.903 16 6820 5.905 16 6836 5.909 16 6852 5.929 16 6868 6.080 16 6884 6.063 16 6900 6.027 16 6916 5.980 16 6932 5.962 16 6948 5.956 16 6964 5.944 16 6980 5.948 16 6996 5.958 16 7012 5.960 16 7028 5.960 16 7044 5.961 16 7060 5.965 16 7076 5.965 16 7092 5.969 16 7108 5.971 16 7124 5.975 16 7140 5.980 16 7156 5.995 16 7172 6.048 16 7188 6.085 16 7204 6.060 16 7220 6.024 16 7236 6.062 16 7252 6.062 16 7268 6.060 16 7284 6.057 16 7300 6.054 16 7316 6.045 16 7332 6.027 16 7348 6.026 16 7364 6.028 16 7380 6.026 16 7396 6.023 16 7412 6.026 16 7428 6.026 16 7444 6.028 16 7460 6.030 16 7476 6.034 16 7492 6.036 16 7508 6.035 16 7524 6.038 16 7540 6.041 16 7556 6.043 16 7572 6.051 16 7588 6.240 16 7604 6.995 16 7620 6.654 16 7636 6.627 16 7652 6.364 16 7668 6.176 16 7684 6.101 16 7700 6.074 16 7716 6.067 16 7732 6.067 16 7748 6.069 16 7764 6.086 16 7780 6.090 16 7796 6.072 16 7812 6.074 16 7828 6.076 16 7844 6.079 16 7860 6.083 16 7876 6.091 16 7892 6.099 16 7908 6.096 16 7924 6.096 16 7940 6.095 16 7956 6.102 16 7972 6.102 16 7988 6.103 16 8004 6.110 16 8020 6.112 16 8036 6.111 16 8052 6.109 16 8068 6.111 16 8084 6.120 16 8100 6.127 16 8116 6.138 16 8132 6.169 16 8148 6.202 16 8164 6.230 16 8180 6.224 16 8196 6.200 16 8212 6.184 16 8228 6.255 16 8244 6.189 16 8260 6.181 16 8276 6.202 16 8292 6.202 16 8308 6.191 16 8324 6.191 16 8340 6.176 16 8356 6.171 16 8372 6.171 16 8388 6.168 16 8404 6.170 16 8420 6.173 16 8436 6.185 16 8452 6.183 16 8468 6.179 16 8484 6.164 16 8500 6.205 16 8516 6.163 16 8532 6.189 16 8548 6.228 16 8564 6.144 16 8580 6.161 16 8596 6.256 16 8612 6.172 16 8628 6.108 16 8644 6.153 16 8660 6.297 16 8676 6.227 16 8692 6.107 16 8708 6.084 16 8724 6.127 16 8740 6.272 16 8756 6.307 16 8772 6.147 16 8788 6.079 16 8804 6.071 16 8820 6.086 16 8836 6.141 16 8852 6.304 16 8868 6.355 16 8884 6.175 16 8900 6.103 16 8916 6.089 16 8932 6.094 16 8948 6.121 16 8964 6.179 16 8980 6.243 16 8996 6.380 16 9012 6.536 16 9028 6.364 16 9044 6.195 16 9060 6.189 16 9076 6.225 16 9092 6.223 16 9108 6.206 16 9124 6.214 16 9140 6.224 16 9156 6.231 16 9172 6.231 16 9188 6.231 16 9204 6.270 16 9220 6.459 16 9236 6.478 16 9252 6.304 16 9268 6.253 16 9284 6.286 16 9300 6.380 16 9316 6.552 16 9332 6.695 16 9348 6.735 16 9364 6.686 16 9380 6.616 16 9396 6.405 16 9412 6.434 16 9428 6.551 16 9444 6.578 16 9460 6.560 16 9476 6.530 16 9492 6.563 16 9508 6.523 16 9524 6.648 16 9540 6.775 16 9556 6.741 16 9572 6.538 16 9588 6.508 16 9604 6.439 16 9620 6.425 16 9636 6.401 16 9652 6.373 16 9668 6.345 16 9684 6.282 16 9700 6.273 16 9716 6.276 16 9732 6.304 16 9748 6.320 16 9764 6.316 16 9780 6.300 16 9796 6.304 16 9812 6.273 16 9828 6.270 16 9844 6.254 16 9860 6.240 16 9876 6.242 16 9892 6.245 16 9908 6.256 16 9924 6.251 16 9940 6.245 16 9956 6.254 16 9972 6.247 16 9988 6.267 16 10004 6.272 16 10020 6.329 16 10036 6.463 16 10052 6.578 16 10068 6.391 16 10084 6.301 16 10100 6.282 16 10116 6.268 16 10132 6.247 16 10148 6.244 16 10164 6.267 16 10180 6.269 16 10196 6.272 16 10212 6.270 16 10228 6.279 16 10244 6.248 16 10260 6.258 16 10276 6.265 16 10292 6.257 16 10308 6.281 16 10324 6.327 16 10340 6.361 16 10356 6.306 16 10372 6.273 16 10388 6.338 16 sptable-1.0.pre20180612/lib/onedstds/spec16cal/hr718.dat000066400000000000000000000141651331023215600221350ustar00rootroot00000000000000# HR 718 3300 5.199 16 3316 5.196 16 3332 5.194 16 3348 5.181 16 3364 5.178 16 3380 5.176 16 3396 5.178 16 3412 5.17 16 3428 5.176 16 3444 5.173 16 3460 5.178 16 3476 5.179 16 3492 5.175 16 3508 5.164 16 3524 5.155 16 3540 5.142 16 3556 5.142 16 3572 5.136 16 3588 5.126 16 3604 5.116 16 3620 5.115 16 3636 5.105 16 3652 5.1 16 3668 5.096 16 3684 5.098 16 3700 5.072 16 3716 5.012 16 3732 4.918 16 3748 4.814 16 3764 4.691 16 3780 4.528 16 3796 4.531 16 3812 4.298 16 3828 4.416 16 3844 4.295 16 3860 4.052 16 3876 4.238 16 3892 4.41 16 3908 4.034 16 3924 3.947 16 3940 3.994 16 3956 4.219 16 3972 4.432 16 3988 4.07 16 4004 3.944 16 4020 3.927 16 4036 3.922 16 4052 3.928 16 4068 3.974 16 4084 4.157 16 4100 4.487 16 4116 4.168 16 4132 3.986 16 4148 3.947 16 4164 3.952 16 4180 3.958 16 4196 3.963 16 4212 3.969 16 4228 3.977 16 4244 3.984 16 4260 3.985 16 4276 3.997 16 4292 4.016 16 4308 4.071 16 4324 4.263 16 4340 4.569 16 4356 4.226 16 4372 4.067 16 4388 4.046 16 4404 4.035 16 4420 4.036 16 4436 4.035 16 4452 4.04 16 4468 4.051 16 4484 4.063 16 4500 4.05 16 4516 4.056 16 4532 4.056 16 4548 4.067 16 4564 4.064 16 4580 4.071 16 4596 4.072 16 4612 4.072 16 4628 4.081 16 4644 4.077 16 4660 4.084 16 4676 4.089 16 4692 4.091 16 4708 4.097 16 4724 4.1 16 4740 4.107 16 4756 4.114 16 4772 4.119 16 4788 4.124 16 4804 4.131 16 4820 4.154 16 4836 4.231 16 4852 4.525 16 4868 4.584 16 4884 4.256 16 4900 4.17 16 4916 4.157 16 4932 4.153 16 4948 4.149 16 4964 4.152 16 4980 4.157 16 4996 4.165 16 5012 4.175 16 5028 4.179 16 5044 4.184 16 5060 4.185 16 5076 4.183 16 5092 4.185 16 5108 4.185 16 5124 4.187 16 5140 4.19 16 5156 4.196 16 5172 4.21 16 5188 4.206 16 5204 4.204 16 5220 4.208 16 5236 4.214 16 5252 4.215 16 5268 4.22 16 5284 4.222 16 5300 4.221 16 5316 4.231 16 5332 4.231 16 5348 4.229 16 5364 4.231 16 5380 4.234 16 5396 4.239 16 5412 4.244 16 5428 4.246 16 5444 4.247 16 5460 4.251 16 5476 4.255 16 5492 4.258 16 5508 4.262 16 5524 4.264 16 5540 4.269 16 5556 4.272 16 5572 4.275 16 5588 4.28 16 5604 4.283 16 5620 4.288 16 5636 4.295 16 5652 4.3 16 5668 4.304 16 5684 4.31 16 5700 4.315 16 5716 4.318 16 5732 4.326 16 5748 4.329 16 5764 4.327 16 5780 4.334 16 5796 4.329 16 5812 4.328 16 5828 4.329 16 5844 4.328 16 5860 4.331 16 5876 4.343 16 5892 4.356 16 5908 4.354 16 5924 4.352 16 5940 4.358 16 5956 4.366 16 5972 4.365 16 5988 4.37 16 6004 4.37 16 6020 4.374 16 6036 4.381 16 6052 4.383 16 6068 4.387 16 6084 4.396 16 6100 4.402 16 6116 4.401 16 6132 4.407 16 6148 4.414 16 6164 4.417 16 6180 4.415 16 6196 4.418 16 6212 4.422 16 6228 4.429 16 6244 4.436 16 6260 4.439 16 6276 4.466 16 6292 4.464 16 6308 4.458 16 6324 4.454 16 6340 4.461 16 6356 4.459 16 6372 4.462 16 6388 4.463 16 6404 4.461 16 6420 4.467 16 6436 4.466 16 6452 4.478 16 6468 4.485 16 6484 4.492 16 6500 4.494 16 6516 4.507 16 6532 4.541 16 6548 4.685 16 6564 4.872 16 6580 4.654 16 6596 4.539 16 6612 4.513 16 6628 4.509 16 6644 4.506 16 6660 4.507 16 6676 4.510 16 6692 4.511 16 6708 4.514 16 6724 4.513 16 6740 4.517 16 6756 4.519 16 6772 4.524 16 6788 4.526 16 6804 4.529 16 6820 4.533 16 6836 4.534 16 6852 4.557 16 6868 4.697 16 6884 4.698 16 6900 4.658 16 6916 4.605 16 6932 4.587 16 6948 4.583 16 6964 4.573 16 6980 4.572 16 6996 4.583 16 7012 4.588 16 7028 4.587 16 7044 4.586 16 7060 4.589 16 7076 4.588 16 7092 4.592 16 7108 4.595 16 7124 4.599 16 7140 4.603 16 7156 4.618 16 7172 4.672 16 7188 4.712 16 7204 4.688 16 7220 4.654 16 7236 4.686 16 7252 4.693 16 7268 4.691 16 7284 4.686 16 7300 4.682 16 7316 4.674 16 7332 4.658 16 7348 4.657 16 7364 4.661 16 7380 4.657 16 7396 4.656 16 7412 4.658 16 7428 4.660 16 7444 4.662 16 7460 4.667 16 7476 4.670 16 7492 4.670 16 7508 4.666 16 7524 4.670 16 7540 4.674 16 7556 4.675 16 7572 4.684 16 7588 4.854 16 7604 5.579 16 7620 5.326 16 7636 5.276 16 7652 5.019 16 7668 4.821 16 7684 4.738 16 7700 4.709 16 7716 4.704 16 7732 4.702 16 7748 4.704 16 7764 4.720 16 7780 4.732 16 7796 4.712 16 7812 4.715 16 7828 4.716 16 7844 4.720 16 7860 4.723 16 7876 4.732 16 7892 4.741 16 7908 4.741 16 7924 4.740 16 7940 4.740 16 7956 4.748 16 7972 4.746 16 7988 4.749 16 8004 4.754 16 8020 4.758 16 8036 4.760 16 8052 4.758 16 8068 4.763 16 8084 4.766 16 8100 4.773 16 8116 4.782 16 8132 4.808 16 8148 4.841 16 8164 4.870 16 8180 4.866 16 8196 4.850 16 8212 4.833 16 8228 4.891 16 8244 4.845 16 8260 4.829 16 8276 4.848 16 8292 4.850 16 8308 4.841 16 8324 4.841 16 8340 4.830 16 8356 4.827 16 8372 4.826 16 8388 4.826 16 8404 4.827 16 8420 4.830 16 8436 4.838 16 8452 4.846 16 8468 4.842 16 8484 4.831 16 8500 4.859 16 8516 4.836 16 8532 4.843 16 8548 4.888 16 8564 4.823 16 8580 4.828 16 8596 4.910 16 8612 4.860 16 8628 4.792 16 8644 4.819 16 8660 4.942 16 8676 4.923 16 8692 4.803 16 8708 4.771 16 8724 4.800 16 8740 4.927 16 8756 5.001 16 8772 4.851 16 8788 4.768 16 8804 4.752 16 8820 4.762 16 8836 4.815 16 8852 4.964 16 8868 5.057 16 8884 4.887 16 8900 4.797 16 8916 4.772 16 8932 4.774 16 8948 4.794 16 8964 4.844 16 8980 4.906 16 8996 5.034 16 9012 5.196 16 9028 5.089 16 9044 4.895 16 9060 4.869 16 9076 4.894 16 9092 4.891 16 9108 4.875 16 9124 4.875 16 9140 4.892 16 9156 4.898 16 9172 4.903 16 9188 4.907 16 9204 4.946 16 9220 5.123 16 9236 5.188 16 9252 5.012 16 9268 4.944 16 9284 4.955 16 9300 5.027 16 9316 5.174 16 9332 5.301 16 9348 5.351 16 9364 5.302 16 9380 5.249 16 9396 5.063 16 9412 5.080 16 9428 5.183 16 9444 5.220 16 9460 5.196 16 9476 5.168 16 9492 5.195 16 9508 5.181 16 9524 5.284 16 9540 5.416 16 9556 5.435 16 9572 5.211 16 9588 5.154 16 9604 5.093 16 9620 5.076 16 9636 5.053 16 9652 5.032 16 9668 4.998 16 9684 4.947 16 9700 4.938 16 9716 4.940 16 9732 4.966 16 9748 4.983 16 9764 4.980 16 9780 4.962 16 9796 4.962 16 9812 4.939 16 9828 4.947 16 9844 4.926 16 9860 4.921 16 9876 4.926 16 9892 4.919 16 9908 4.924 16 9924 4.923 16 9940 4.916 16 9956 4.926 16 9972 4.924 16 9988 4.942 16 10004 4.965 16 10020 5.018 16 10036 5.127 16 10052 5.273 16 10068 5.106 16 10084 5.010 16 10100 4.978 16 10116 4.956 16 10132 4.940 16 10148 4.921 16 10164 4.929 16 10180 4.943 16 10196 4.931 16 10212 4.924 16 10228 4.924 16 10244 4.947 16 10260 4.919 16 10276 4.958 16 10292 4.940 16 10308 4.947 16 10324 4.947 16 10340 4.972 16 10356 4.982 16 10372 5.034 16 10388 4.963 16 10404 5.024 16 10420 5.053 16 sptable-1.0.pre20180612/lib/onedstds/spec16cal/hr718blue.dat000066400000000000000000000072431331023215600230040ustar00rootroot00000000000000# HR 718 3300 5.223 16 3316 5.220 16 3332 5.218 16 3348 5.205 16 3364 5.202 16 3380 5.200 16 3396 5.202 16 3412 5.194 16 3428 5.200 16 3444 5.197 16 3460 5.202 16 3476 5.203 16 3492 5.199 16 3508 5.188 16 3524 5.179 16 3540 5.166 16 3556 5.166 16 3572 5.160 16 3588 5.150 16 3604 5.140 16 3620 5.139 16 3636 5.129 16 3652 5.124 16 3668 5.120 16 3684 5.122 16 3700 5.096 16 3716 5.036 16 3732 4.942 16 3748 4.838 16 3764 4.715 16 3780 4.552 16 3796 4.555 16 3812 4.322 16 3828 4.440 16 3844 4.319 16 3860 4.076 16 3876 4.262 16 3892 4.434 16 3908 4.058 16 3924 3.971 16 3940 4.018 16 3956 4.243 16 3972 4.456 16 3988 4.094 16 4004 3.968 16 4020 3.951 16 4036 3.946 16 4052 3.952 16 4068 3.998 16 4084 4.181 16 4100 4.511 16 4116 4.192 16 4132 4.010 16 4148 3.971 16 4164 3.976 16 4180 3.982 16 4196 3.987 16 4212 3.993 16 4228 4.001 16 4244 4.008 16 4260 4.009 16 4276 4.021 16 4292 4.040 16 4308 4.095 16 4324 4.287 16 4340 4.593 16 4356 4.250 16 4372 4.091 16 4388 4.070 16 4404 4.059 16 4420 4.060 16 4436 4.059 16 4452 4.064 16 4468 4.075 16 4484 4.087 16 4500 4.074 16 4516 4.080 16 4532 4.080 16 4548 4.091 16 4564 4.088 16 4580 4.095 16 4596 4.096 16 4612 4.096 16 4628 4.105 16 4644 4.101 16 4660 4.108 16 4676 4.113 16 4692 4.115 16 4708 4.121 16 4724 4.124 16 4740 4.131 16 4756 4.138 16 4772 4.143 16 4788 4.148 16 4804 4.155 16 4820 4.178 16 4836 4.255 16 4852 4.549 16 4868 4.608 16 4884 4.280 16 4900 4.194 16 4916 4.181 16 4932 4.177 16 4948 4.173 16 4964 4.176 16 4980 4.181 16 4996 4.189 16 5012 4.199 16 5028 4.203 16 5044 4.208 16 5060 4.209 16 5076 4.207 16 5092 4.209 16 5108 4.209 16 5124 4.211 16 5140 4.214 16 5156 4.220 16 5172 4.234 16 5188 4.230 16 5204 4.228 16 5220 4.232 16 5236 4.238 16 5252 4.239 16 5268 4.244 16 5284 4.246 16 5300 4.245 16 5316 4.255 16 5332 4.255 16 5348 4.253 16 5364 4.255 16 5380 4.258 16 5396 4.263 16 5412 4.268 16 5428 4.270 16 5444 4.271 16 5460 4.275 16 5476 4.279 16 5492 4.282 16 5508 4.286 16 5524 4.288 16 5540 4.293 16 5556 4.296 16 5572 4.299 16 5588 4.304 16 5604 4.307 16 5620 4.312 16 5636 4.319 16 5652 4.324 16 5668 4.328 16 5684 4.334 16 5700 4.339 16 5716 4.342 16 5732 4.350 16 5748 4.353 16 5764 4.351 16 5780 4.358 16 5796 4.353 16 5812 4.352 16 5828 4.353 16 5844 4.352 16 5860 4.355 16 5876 4.367 16 5892 4.380 16 5908 4.378 16 5924 4.376 16 5940 4.382 16 5956 4.390 16 5972 4.389 16 5988 4.394 16 6004 4.394 16 6020 4.398 16 6036 4.405 16 6052 4.407 16 6068 4.411 16 6084 4.420 16 6100 4.426 16 6116 4.425 16 6132 4.431 16 6148 4.438 16 6164 4.441 16 6180 4.439 16 6196 4.442 16 6212 4.446 16 6228 4.453 16 6244 4.460 16 6260 4.463 16 6276 4.490 16 6292 4.488 16 6308 4.482 16 6324 4.478 16 6340 4.485 16 6356 4.483 16 6372 4.486 16 6388 4.487 16 6404 4.485 16 6420 4.491 16 6436 4.490 16 6452 4.502 16 6468 4.509 16 6484 4.516 16 6500 4.520 16 6516 4.529 16 6532 4.565 16 6548 4.703 16 6564 4.892 16 6580 4.687 16 6596 4.565 16 6612 4.537 16 6628 4.534 16 6644 4.530 16 6660 4.532 16 6676 4.536 16 6692 4.536 16 6708 4.537 16 6724 4.537 16 6740 4.541 16 6756 4.543 16 6772 4.548 16 6788 4.552 16 6804 4.555 16 6820 4.557 16 6836 4.557 16 6852 4.581 16 6868 4.718 16 6884 4.723 16 6900 4.682 16 6916 4.628 16 6932 4.611 16 6948 4.609 16 6964 4.597 16 6980 4.594 16 6996 4.606 16 7012 4.611 16 7028 4.610 16 7044 4.607 16 7060 4.610 16 7076 4.609 16 7092 4.614 16 7108 4.616 16 7124 4.619 16 7140 4.625 16 7156 4.641 16 7172 4.703 16 7188 4.747 16 7204 4.718 16 7220 4.682 16 7236 4.714 16 7252 4.724 16 7268 4.721 16 7284 4.716 16 7300 4.711 16 7316 4.704 16 7332 4.684 16 7348 4.685 16 7364 4.690 16 7380 4.684 16 7396 4.682 16 7412 4.684 16 7428 4.687 16 7444 4.689 16 7460 4.694 16 7476 4.697 16 7492 4.698 16 7508 4.696 16 7524 4.700 16 7540 4.692 16 7556 4.699 16 sptable-1.0.pre20180612/lib/onedstds/spec16cal/hr718red.dat000066400000000000000000000074561331023215600226350ustar00rootroot00000000000000# HR 718 6036 4.399 16 6052 4.399 16 6068 4.400 16 6084 4.404 16 6100 4.403 16 6116 4.405 16 6132 4.411 16 6148 4.420 16 6164 4.425 16 6180 4.423 16 6196 4.426 16 6212 4.433 16 6228 4.442 16 6244 4.450 16 6260 4.450 16 6276 4.477 16 6292 4.478 16 6308 4.469 16 6324 4.466 16 6340 4.471 16 6356 4.469 16 6372 4.471 16 6388 4.468 16 6404 4.468 16 6420 4.468 16 6436 4.470 16 6452 4.479 16 6468 4.483 16 6484 4.489 16 6500 4.491 16 6516 4.508 16 6532 4.541 16 6548 4.690 16 6564 4.876 16 6580 4.645 16 6596 4.536 16 6612 4.512 16 6628 4.507 16 6644 4.505 16 6660 4.506 16 6676 4.507 16 6692 4.509 16 6708 4.514 16 6724 4.513 16 6740 4.516 16 6756 4.518 16 6772 4.523 16 6788 4.524 16 6804 4.527 16 6820 4.532 16 6836 4.535 16 6852 4.556 16 6868 4.699 16 6884 4.697 16 6900 4.657 16 6916 4.606 16 6932 4.586 16 6948 4.580 16 6964 4.573 16 6980 4.573 16 6996 4.584 16 7012 4.588 16 7028 4.587 16 7044 4.589 16 7060 4.592 16 7076 4.590 16 7092 4.594 16 7108 4.598 16 7124 4.602 16 7140 4.605 16 7156 4.619 16 7172 4.664 16 7188 4.700 16 7204 4.682 16 7220 4.650 16 7236 4.682 16 7252 4.685 16 7268 4.684 16 7284 4.679 16 7300 4.677 16 7316 4.668 16 7332 4.656 16 7348 4.652 16 7364 4.656 16 7380 4.653 16 7396 4.654 16 7412 4.656 16 7428 4.656 16 7444 4.659 16 7460 4.663 16 7476 4.666 16 7492 4.665 16 7508 4.666 16 7524 4.670 16 7540 4.674 16 7556 4.675 16 7572 4.684 16 7588 4.854 16 7604 5.579 16 7620 5.326 16 7636 5.276 16 7652 5.019 16 7668 4.821 16 7684 4.738 16 7700 4.709 16 7716 4.704 16 7732 4.702 16 7748 4.704 16 7764 4.720 16 7780 4.732 16 7796 4.712 16 7812 4.715 16 7828 4.716 16 7844 4.720 16 7860 4.723 16 7876 4.732 16 7892 4.741 16 7908 4.741 16 7924 4.740 16 7940 4.740 16 7956 4.748 16 7972 4.746 16 7988 4.749 16 8004 4.754 16 8020 4.758 16 8036 4.760 16 8052 4.758 16 8068 4.763 16 8084 4.766 16 8100 4.773 16 8116 4.782 16 8132 4.808 16 8148 4.841 16 8164 4.870 16 8180 4.866 16 8196 4.850 16 8212 4.833 16 8228 4.891 16 8244 4.845 16 8260 4.829 16 8276 4.848 16 8292 4.850 16 8308 4.841 16 8324 4.841 16 8340 4.830 16 8356 4.827 16 8372 4.826 16 8388 4.826 16 8404 4.827 16 8420 4.830 16 8436 4.838 16 8452 4.846 16 8468 4.842 16 8484 4.831 16 8500 4.859 16 8516 4.836 16 8532 4.843 16 8548 4.888 16 8564 4.823 16 8580 4.828 16 8596 4.910 16 8612 4.860 16 8628 4.792 16 8644 4.819 16 8660 4.942 16 8676 4.923 16 8692 4.803 16 8708 4.771 16 8724 4.800 16 8740 4.927 16 8756 5.001 16 8772 4.851 16 8788 4.768 16 8804 4.752 16 8820 4.762 16 8836 4.815 16 8852 4.964 16 8868 5.057 16 8884 4.887 16 8900 4.797 16 8916 4.772 16 8932 4.774 16 8948 4.794 16 8964 4.844 16 8980 4.906 16 8996 5.034 16 9012 5.196 16 9028 5.089 16 9044 4.895 16 9060 4.869 16 9076 4.894 16 9092 4.891 16 9108 4.875 16 9124 4.875 16 9140 4.892 16 9156 4.898 16 9172 4.903 16 9188 4.907 16 9204 4.946 16 9220 5.123 16 9236 5.188 16 9252 5.012 16 9268 4.944 16 9284 4.955 16 9300 5.027 16 9316 5.174 16 9332 5.301 16 9348 5.351 16 9364 5.302 16 9380 5.249 16 9396 5.063 16 9412 5.080 16 9428 5.183 16 9444 5.220 16 9460 5.196 16 9476 5.168 16 9492 5.195 16 9508 5.181 16 9524 5.284 16 9540 5.416 16 9556 5.435 16 9572 5.211 16 9588 5.154 16 9604 5.093 16 9620 5.076 16 9636 5.053 16 9652 5.032 16 9668 4.998 16 9684 4.947 16 9700 4.938 16 9716 4.940 16 9732 4.966 16 9748 4.983 16 9764 4.980 16 9780 4.962 16 9796 4.962 16 9812 4.939 16 9828 4.947 16 9844 4.926 16 9860 4.921 16 9876 4.926 16 9892 4.919 16 9908 4.924 16 9924 4.923 16 9940 4.916 16 9956 4.926 16 9972 4.924 16 9988 4.942 16 10004 4.965 16 10020 5.018 16 10036 5.127 16 10052 5.273 16 10068 5.106 16 10084 5.010 16 10100 4.978 16 10116 4.956 16 10132 4.940 16 10148 4.921 16 10164 4.929 16 10180 4.943 16 10196 4.931 16 10212 4.924 16 10228 4.924 16 10244 4.947 16 10260 4.919 16 10276 4.958 16 10292 4.940 16 10308 4.947 16 10324 4.947 16 10340 4.972 16 10356 4.982 16 10372 5.034 16 10388 4.963 16 10404 5.024 16 10420 5.053 16 sptable-1.0.pre20180612/lib/onedstds/spec16cal/hr7596.dat000066400000000000000000000141711331023215600222250ustar00rootroot00000000000000# HR 7596 3300 6.994 16 3316 6.995 16 3332 6.98 16 3348 6.967 16 3364 6.952 16 3380 6.948 16 3396 6.938 16 3412 6.934 16 3428 6.933 16 3444 6.941 16 3460 6.938 16 3476 6.93 16 3492 6.919 16 3508 6.905 16 3524 6.886 16 3540 6.882 16 3556 6.87 16 3572 6.865 16 3588 6.853 16 3604 6.847 16 3620 6.834 16 3636 6.823 16 3652 6.81 16 3668 6.805 16 3684 6.786 16 3700 6.724 16 3716 6.616 16 3732 6.48 16 3748 6.342 16 3764 6.208 16 3780 6.041 16 3796 6.024 16 3812 5.819 16 3828 5.969 16 3844 5.782 16 3860 5.613 16 3876 5.815 16 3892 5.866 16 3908 5.585 16 3924 5.531 16 3940 5.571 16 3956 5.792 16 3972 5.898 16 3988 5.594 16 4004 5.492 16 4020 5.473 16 4036 5.462 16 4052 5.472 16 4068 5.518 16 4084 5.712 16 4100 5.935 16 4116 5.664 16 4132 5.525 16 4148 5.489 16 4164 5.488 16 4180 5.493 16 4196 5.487 16 4212 5.487 16 4228 5.492 16 4244 5.496 16 4260 5.506 16 4276 5.511 16 4292 5.529 16 4308 5.575 16 4324 5.762 16 4340 5.969 16 4356 5.688 16 4372 5.555 16 4388 5.541 16 4404 5.536 16 4420 5.539 16 4436 5.533 16 4452 5.531 16 4468 5.54 16 4484 5.545 16 4500 5.533 16 4516 5.533 16 4532 5.536 16 4548 5.544 16 4564 5.544 16 4580 5.546 16 4596 5.54 16 4612 5.54 16 4628 5.547 16 4644 5.542 16 4660 5.547 16 4676 5.547 16 4692 5.55 16 4708 5.552 16 4724 5.556 16 4740 5.561 16 4756 5.564 16 4772 5.57 16 4788 5.571 16 4804 5.579 16 4820 5.595 16 4836 5.662 16 4852 5.939 16 4868 5.953 16 4884 5.667 16 4900 5.593 16 4916 5.584 16 4932 5.569 16 4948 5.565 16 4964 5.566 16 4980 5.566 16 4996 5.573 16 5012 5.581 16 5028 5.581 16 5044 5.581 16 5060 5.579 16 5076 5.575 16 5092 5.575 16 5108 5.575 16 5124 5.576 16 5140 5.58 16 5156 5.587 16 5172 5.599 16 5188 5.595 16 5204 5.589 16 5220 5.592 16 5236 5.595 16 5252 5.595 16 5268 5.6 16 5284 5.597 16 5300 5.593 16 5316 5.603 16 5332 5.602 16 5348 5.596 16 5364 5.598 16 5380 5.596 16 5396 5.601 16 5412 5.604 16 5428 5.603 16 5444 5.604 16 5460 5.605 16 5476 5.604 16 5492 5.606 16 5508 5.605 16 5524 5.607 16 5540 5.607 16 5556 5.604 16 5572 5.604 16 5588 5.608 16 5604 5.608 16 5620 5.611 16 5636 5.613 16 5652 5.614 16 5668 5.617 16 5684 5.623 16 5700 5.626 16 5716 5.626 16 5732 5.631 16 5748 5.634 16 5764 5.637 16 5780 5.647 16 5796 5.641 16 5812 5.631 16 5828 5.63 16 5844 5.629 16 5860 5.632 16 5876 5.643 16 5892 5.672 16 5908 5.651 16 5924 5.645 16 5940 5.646 16 5956 5.653 16 5972 5.653 16 5988 5.657 16 6004 5.657 16 6020 5.657 16 6036 5.662 16 6052 5.663 16 6068 5.665 16 6084 5.663 16 6100 5.665 16 6116 5.669 16 6132 5.669 16 6148 5.679 16 6164 5.683 16 6180 5.683 16 6196 5.682 16 6212 5.683 16 6228 5.686 16 6244 5.693 16 6260 5.694 16 6276 5.722 16 6292 5.725 16 6308 5.71 16 6324 5.703 16 6340 5.706 16 6356 5.706 16 6372 5.708 16 6388 5.702 16 6404 5.702 16 6420 5.704 16 6436 5.706 16 6452 5.714 16 6468 5.714 16 6484 5.72 16 6500 5.721 16 6516 5.731 16 6532 5.759 16 6548 5.896 16 6564 6.075 16 6580 5.843 16 6596 5.750 16 6612 5.731 16 6628 5.725 16 6644 5.722 16 6660 5.722 16 6676 5.721 16 6692 5.719 16 6708 5.719 16 6724 5.722 16 6740 5.723 16 6756 5.725 16 6772 5.728 16 6788 5.730 16 6804 5.732 16 6820 5.735 16 6836 5.737 16 6852 5.755 16 6868 5.893 16 6884 5.900 16 6900 5.858 16 6916 5.804 16 6932 5.778 16 6948 5.771 16 6964 5.762 16 6980 5.761 16 6996 5.768 16 7012 5.769 16 7028 5.769 16 7044 5.770 16 7060 5.772 16 7076 5.772 16 7092 5.772 16 7108 5.775 16 7124 5.777 16 7140 5.780 16 7156 5.790 16 7172 5.824 16 7188 5.858 16 7204 5.846 16 7220 5.816 16 7236 5.840 16 7252 5.841 16 7268 5.839 16 7284 5.837 16 7300 5.834 16 7316 5.827 16 7332 5.815 16 7348 5.813 16 7364 5.816 16 7380 5.814 16 7396 5.814 16 7412 5.816 16 7428 5.819 16 7444 5.823 16 7460 5.824 16 7476 5.826 16 7492 5.823 16 7508 5.826 16 7524 5.826 16 7540 5.828 16 7556 5.830 16 7572 5.836 16 7588 5.993 16 7604 6.766 16 7620 6.472 16 7636 6.437 16 7652 6.175 16 7668 5.979 16 7684 5.889 16 7700 5.868 16 7716 5.857 16 7732 5.852 16 7748 5.856 16 7764 5.872 16 7780 5.880 16 7796 5.855 16 7812 5.854 16 7828 5.855 16 7844 5.859 16 7860 5.860 16 7876 5.867 16 7892 5.872 16 7908 5.870 16 7924 5.869 16 7940 5.871 16 7956 5.872 16 7972 5.872 16 7988 5.871 16 8004 5.876 16 8020 5.876 16 8036 5.879 16 8052 5.879 16 8068 5.882 16 8084 5.887 16 8100 5.890 16 8116 5.895 16 8132 5.911 16 8148 5.933 16 8164 5.953 16 8180 5.956 16 8196 5.950 16 8212 5.940 16 8228 5.980 16 8244 5.939 16 8260 5.924 16 8276 5.937 16 8292 5.941 16 8308 5.935 16 8324 5.936 16 8340 5.927 16 8356 5.924 16 8372 5.926 16 8388 5.925 16 8404 5.925 16 8420 5.929 16 8436 5.945 16 8452 5.939 16 8468 5.938 16 8484 5.911 16 8500 5.968 16 8516 5.908 16 8532 5.932 16 8548 5.993 16 8564 5.887 16 8580 5.899 16 8596 6.015 16 8612 5.921 16 8628 5.847 16 8644 5.884 16 8660 6.048 16 8676 5.990 16 8692 5.851 16 8708 5.819 16 8724 5.856 16 8740 6.001 16 8756 6.055 16 8772 5.877 16 8788 5.807 16 8804 5.794 16 8820 5.809 16 8836 5.859 16 8852 6.022 16 8868 6.093 16 8884 5.901 16 8900 5.830 16 8916 5.813 16 8932 5.818 16 8948 5.825 16 8964 5.864 16 8980 5.914 16 8996 6.033 16 9012 6.220 16 9028 6.073 16 9044 5.906 16 9060 5.883 16 9076 5.899 16 9092 5.902 16 9108 5.888 16 9124 5.891 16 9140 5.894 16 9156 5.901 16 9172 5.900 16 9188 5.910 16 9204 5.958 16 9220 6.153 16 9236 6.171 16 9252 5.998 16 9268 5.937 16 9284 5.933 16 9300 5.987 16 9316 6.114 16 9332 6.201 16 9348 6.253 16 9364 6.208 16 9380 6.173 16 9396 6.031 16 9412 6.041 16 9428 6.125 16 9444 6.155 16 9460 6.125 16 9476 6.108 16 9492 6.133 16 9508 6.121 16 9524 6.217 16 9540 6.376 16 9556 6.339 16 9572 6.138 16 9588 6.096 16 9604 6.055 16 9620 6.048 16 9636 6.031 16 9652 6.022 16 9668 6.000 16 9684 5.965 16 9700 5.954 16 9716 5.951 16 9732 5.975 16 9748 5.989 16 9764 5.984 16 9780 5.966 16 9796 5.975 16 9812 5.965 16 9828 5.960 16 9844 5.948 16 9860 5.949 16 9876 5.944 16 9892 5.950 16 9908 5.943 16 9924 5.947 16 9940 5.948 16 9956 5.947 16 9972 5.952 16 9988 5.962 16 10004 5.987 16 10020 6.003 16 10036 6.145 16 10052 6.250 16 10068 6.079 16 10084 5.998 16 10100 5.980 16 10116 5.979 16 10132 5.963 16 10148 5.967 16 10164 5.950 16 10180 5.964 16 10196 5.952 16 10212 5.948 16 10228 5.934 16 10244 5.974 16 10260 5.953 16 10276 5.914 16 10292 5.905 16 10308 5.946 16 10324 5.956 16 10340 5.973 16 10356 5.982 16 10372 6.002 16 10388 5.950 16 10404 5.959 16 10420 5.996 16 sptable-1.0.pre20180612/lib/onedstds/spec16cal/hr7596blue.dat000066400000000000000000000072441331023215600231000ustar00rootroot00000000000000# HR 7596 3300 7.004 16 3316 7.005 16 3332 6.990 16 3348 6.977 16 3364 6.962 16 3380 6.958 16 3396 6.948 16 3412 6.944 16 3428 6.943 16 3444 6.951 16 3460 6.948 16 3476 6.940 16 3492 6.929 16 3508 6.915 16 3524 6.896 16 3540 6.892 16 3556 6.880 16 3572 6.875 16 3588 6.863 16 3604 6.857 16 3620 6.844 16 3636 6.833 16 3652 6.820 16 3668 6.815 16 3684 6.796 16 3700 6.734 16 3716 6.626 16 3732 6.490 16 3748 6.352 16 3764 6.218 16 3780 6.051 16 3796 6.034 16 3812 5.829 16 3828 5.979 16 3844 5.792 16 3860 5.623 16 3876 5.825 16 3892 5.876 16 3908 5.595 16 3924 5.541 16 3940 5.581 16 3956 5.802 16 3972 5.908 16 3988 5.604 16 4004 5.502 16 4020 5.483 16 4036 5.472 16 4052 5.482 16 4068 5.528 16 4084 5.722 16 4100 5.945 16 4116 5.674 16 4132 5.535 16 4148 5.499 16 4164 5.498 16 4180 5.503 16 4196 5.497 16 4212 5.497 16 4228 5.502 16 4244 5.506 16 4260 5.516 16 4276 5.521 16 4292 5.539 16 4308 5.585 16 4324 5.772 16 4340 5.979 16 4356 5.698 16 4372 5.565 16 4388 5.551 16 4404 5.546 16 4420 5.549 16 4436 5.543 16 4452 5.541 16 4468 5.550 16 4484 5.555 16 4500 5.543 16 4516 5.543 16 4532 5.546 16 4548 5.554 16 4564 5.554 16 4580 5.556 16 4596 5.550 16 4612 5.550 16 4628 5.557 16 4644 5.552 16 4660 5.557 16 4676 5.557 16 4692 5.560 16 4708 5.562 16 4724 5.566 16 4740 5.571 16 4756 5.574 16 4772 5.580 16 4788 5.581 16 4804 5.589 16 4820 5.605 16 4836 5.672 16 4852 5.949 16 4868 5.963 16 4884 5.677 16 4900 5.603 16 4916 5.594 16 4932 5.579 16 4948 5.575 16 4964 5.576 16 4980 5.576 16 4996 5.583 16 5012 5.591 16 5028 5.591 16 5044 5.591 16 5060 5.589 16 5076 5.585 16 5092 5.585 16 5108 5.585 16 5124 5.586 16 5140 5.590 16 5156 5.597 16 5172 5.609 16 5188 5.605 16 5204 5.599 16 5220 5.602 16 5236 5.605 16 5252 5.605 16 5268 5.610 16 5284 5.607 16 5300 5.603 16 5316 5.613 16 5332 5.612 16 5348 5.606 16 5364 5.608 16 5380 5.606 16 5396 5.611 16 5412 5.614 16 5428 5.613 16 5444 5.614 16 5460 5.615 16 5476 5.614 16 5492 5.616 16 5508 5.615 16 5524 5.617 16 5540 5.617 16 5556 5.614 16 5572 5.614 16 5588 5.618 16 5604 5.618 16 5620 5.621 16 5636 5.623 16 5652 5.624 16 5668 5.627 16 5684 5.633 16 5700 5.636 16 5716 5.636 16 5732 5.641 16 5748 5.644 16 5764 5.647 16 5780 5.657 16 5796 5.651 16 5812 5.641 16 5828 5.640 16 5844 5.639 16 5860 5.642 16 5876 5.653 16 5892 5.682 16 5908 5.661 16 5924 5.655 16 5940 5.656 16 5956 5.663 16 5972 5.663 16 5988 5.667 16 6004 5.667 16 6020 5.667 16 6036 5.672 16 6052 5.673 16 6068 5.675 16 6084 5.673 16 6100 5.675 16 6116 5.679 16 6132 5.679 16 6148 5.689 16 6164 5.693 16 6180 5.693 16 6196 5.692 16 6212 5.693 16 6228 5.696 16 6244 5.703 16 6260 5.704 16 6276 5.732 16 6292 5.735 16 6308 5.720 16 6324 5.713 16 6340 5.716 16 6356 5.716 16 6372 5.718 16 6388 5.712 16 6404 5.712 16 6420 5.714 16 6436 5.716 16 6452 5.724 16 6468 5.724 16 6484 5.730 16 6500 5.727 16 6516 5.736 16 6532 5.763 16 6548 5.897 16 6564 6.079 16 6580 5.860 16 6596 5.762 16 6612 5.739 16 6628 5.732 16 6644 5.730 16 6660 5.730 16 6676 5.729 16 6692 5.727 16 6708 5.728 16 6724 5.732 16 6740 5.732 16 6756 5.735 16 6772 5.739 16 6788 5.742 16 6804 5.745 16 6820 5.748 16 6836 5.749 16 6852 5.765 16 6868 5.894 16 6884 5.919 16 6900 5.873 16 6916 5.820 16 6932 5.795 16 6948 5.789 16 6964 5.778 16 6980 5.774 16 6996 5.781 16 7012 5.783 16 7028 5.782 16 7044 5.781 16 7060 5.782 16 7076 5.782 16 7092 5.781 16 7108 5.782 16 7124 5.784 16 7140 5.789 16 7156 5.799 16 7172 5.837 16 7188 5.879 16 7204 5.868 16 7220 5.829 16 7236 5.855 16 7252 5.857 16 7268 5.854 16 7284 5.852 16 7300 5.849 16 7316 5.839 16 7332 5.826 16 7348 5.822 16 7364 5.824 16 7380 5.823 16 7396 5.822 16 7412 5.825 16 7428 5.827 16 7444 5.832 16 7460 5.832 16 7476 5.835 16 7492 5.832 16 7508 5.836 16 7524 5.837 16 7540 5.834 16 7556 5.842 16 sptable-1.0.pre20180612/lib/onedstds/spec16cal/hr7596red.dat000066400000000000000000000074571331023215600227310ustar00rootroot00000000000000# HR 7596 6036 5.665 16 6052 5.663 16 6068 5.659 16 6084 5.662 16 6100 5.665 16 6116 5.669 16 6132 5.674 16 6148 5.687 16 6164 5.688 16 6180 5.691 16 6196 5.693 16 6212 5.694 16 6228 5.700 16 6244 5.709 16 6260 5.709 16 6276 5.742 16 6292 5.739 16 6308 5.725 16 6324 5.720 16 6340 5.722 16 6356 5.722 16 6372 5.722 16 6388 5.715 16 6404 5.714 16 6420 5.714 16 6436 5.716 16 6452 5.725 16 6468 5.725 16 6484 5.725 16 6500 5.724 16 6516 5.736 16 6532 5.765 16 6548 5.905 16 6564 6.081 16 6580 5.835 16 6596 5.748 16 6612 5.732 16 6628 5.727 16 6644 5.723 16 6660 5.724 16 6676 5.723 16 6692 5.720 16 6708 5.720 16 6724 5.722 16 6740 5.724 16 6756 5.725 16 6772 5.727 16 6788 5.727 16 6804 5.729 16 6820 5.732 16 6836 5.734 16 6852 5.754 16 6868 5.901 16 6884 5.890 16 6900 5.852 16 6916 5.798 16 6932 5.770 16 6948 5.763 16 6964 5.756 16 6980 5.757 16 6996 5.765 16 7012 5.764 16 7028 5.766 16 7044 5.768 16 7060 5.771 16 7076 5.771 16 7092 5.772 16 7108 5.777 16 7124 5.779 16 7140 5.780 16 7156 5.791 16 7172 5.820 16 7188 5.846 16 7204 5.833 16 7220 5.813 16 7236 5.835 16 7252 5.835 16 7268 5.834 16 7284 5.832 16 7300 5.829 16 7316 5.824 16 7332 5.814 16 7348 5.813 16 7364 5.817 16 7380 5.814 16 7396 5.815 16 7412 5.816 16 7428 5.821 16 7444 5.824 16 7460 5.825 16 7476 5.827 16 7492 5.823 16 7508 5.826 16 7524 5.826 16 7540 5.828 16 7556 5.830 16 7572 5.836 16 7588 5.993 16 7604 6.766 16 7620 6.472 16 7636 6.437 16 7652 6.175 16 7668 5.979 16 7684 5.889 16 7700 5.868 16 7716 5.857 16 7732 5.852 16 7748 5.856 16 7764 5.872 16 7780 5.880 16 7796 5.855 16 7812 5.854 16 7828 5.855 16 7844 5.859 16 7860 5.860 16 7876 5.867 16 7892 5.872 16 7908 5.870 16 7924 5.869 16 7940 5.871 16 7956 5.872 16 7972 5.872 16 7988 5.871 16 8004 5.876 16 8020 5.876 16 8036 5.879 16 8052 5.879 16 8068 5.882 16 8084 5.887 16 8100 5.890 16 8116 5.895 16 8132 5.911 16 8148 5.933 16 8164 5.953 16 8180 5.956 16 8196 5.950 16 8212 5.940 16 8228 5.980 16 8244 5.939 16 8260 5.924 16 8276 5.937 16 8292 5.941 16 8308 5.935 16 8324 5.936 16 8340 5.927 16 8356 5.924 16 8372 5.926 16 8388 5.925 16 8404 5.925 16 8420 5.929 16 8436 5.945 16 8452 5.939 16 8468 5.938 16 8484 5.911 16 8500 5.968 16 8516 5.908 16 8532 5.932 16 8548 5.993 16 8564 5.887 16 8580 5.899 16 8596 6.015 16 8612 5.921 16 8628 5.847 16 8644 5.884 16 8660 6.048 16 8676 5.990 16 8692 5.851 16 8708 5.819 16 8724 5.856 16 8740 6.001 16 8756 6.055 16 8772 5.877 16 8788 5.807 16 8804 5.794 16 8820 5.809 16 8836 5.859 16 8852 6.022 16 8868 6.093 16 8884 5.901 16 8900 5.830 16 8916 5.813 16 8932 5.818 16 8948 5.825 16 8964 5.864 16 8980 5.914 16 8996 6.033 16 9012 6.220 16 9028 6.073 16 9044 5.906 16 9060 5.883 16 9076 5.899 16 9092 5.902 16 9108 5.888 16 9124 5.891 16 9140 5.894 16 9156 5.901 16 9172 5.900 16 9188 5.910 16 9204 5.958 16 9220 6.153 16 9236 6.171 16 9252 5.998 16 9268 5.937 16 9284 5.933 16 9300 5.987 16 9316 6.114 16 9332 6.201 16 9348 6.253 16 9364 6.208 16 9380 6.173 16 9396 6.031 16 9412 6.041 16 9428 6.125 16 9444 6.155 16 9460 6.125 16 9476 6.108 16 9492 6.133 16 9508 6.121 16 9524 6.217 16 9540 6.376 16 9556 6.339 16 9572 6.138 16 9588 6.096 16 9604 6.055 16 9620 6.048 16 9636 6.031 16 9652 6.022 16 9668 6.000 16 9684 5.965 16 9700 5.954 16 9716 5.951 16 9732 5.975 16 9748 5.989 16 9764 5.984 16 9780 5.966 16 9796 5.975 16 9812 5.965 16 9828 5.960 16 9844 5.948 16 9860 5.949 16 9876 5.944 16 9892 5.950 16 9908 5.943 16 9924 5.947 16 9940 5.948 16 9956 5.947 16 9972 5.952 16 9988 5.962 16 10004 5.987 16 10020 6.003 16 10036 6.145 16 10052 6.250 16 10068 6.079 16 10084 5.998 16 10100 5.980 16 10116 5.979 16 10132 5.963 16 10148 5.967 16 10164 5.950 16 10180 5.964 16 10196 5.952 16 10212 5.948 16 10228 5.934 16 10244 5.974 16 10260 5.953 16 10276 5.914 16 10292 5.905 16 10308 5.946 16 10324 5.956 16 10340 5.973 16 10356 5.982 16 10372 6.002 16 10388 5.950 16 10404 5.959 16 10420 5.996 16 sptable-1.0.pre20180612/lib/onedstds/spec16cal/hr7950.dat000066400000000000000000000141521331023215600222160ustar00rootroot00000000000000# HR 7950 3300 5.033 16 3316 5.03 16 3332 5.031 16 3348 5.015 16 3364 5.007 16 3380 4.994 16 3396 4.985 16 3412 4.982 16 3428 4.98 16 3444 4.989 16 3460 4.99 16 3476 4.987 16 3492 4.979 16 3508 4.963 16 3524 4.949 16 3540 4.932 16 3556 4.931 16 3572 4.925 16 3588 4.917 16 3604 4.907 16 3620 4.895 16 3636 4.884 16 3652 4.876 16 3668 4.867 16 3684 4.85 16 3700 4.789 16 3716 4.683 16 3732 4.563 16 3748 4.435 16 3764 4.305 16 3780 4.129 16 3796 4.115 16 3812 3.89 16 3828 4.073 16 3844 3.841 16 3860 3.648 16 3876 3.906 16 3892 3.958 16 3908 3.628 16 3924 3.583 16 3940 3.623 16 3956 3.87 16 3972 3.989 16 3988 3.632 16 4004 3.505 16 4020 3.477 16 4036 3.475 16 4052 3.487 16 4068 3.538 16 4084 3.749 16 4100 4.032 16 4116 3.715 16 4132 3.55 16 4148 3.508 16 4164 3.51 16 4180 3.515 16 4196 3.505 16 4212 3.505 16 4228 3.513 16 4244 3.519 16 4260 3.529 16 4276 3.538 16 4292 3.565 16 4308 3.619 16 4324 3.821 16 4340 4.091 16 4356 3.764 16 4372 3.603 16 4388 3.582 16 4404 3.574 16 4420 3.566 16 4436 3.563 16 4452 3.57 16 4468 3.584 16 4484 3.592 16 4500 3.581 16 4516 3.584 16 4532 3.593 16 4548 3.607 16 4564 3.603 16 4580 3.604 16 4596 3.597 16 4612 3.599 16 4628 3.608 16 4644 3.602 16 4660 3.61 16 4676 3.611 16 4692 3.614 16 4708 3.616 16 4724 3.623 16 4740 3.63 16 4756 3.633 16 4772 3.641 16 4788 3.644 16 4804 3.655 16 4820 3.675 16 4836 3.754 16 4852 4.053 16 4868 4.095 16 4884 3.776 16 4900 3.682 16 4916 3.672 16 4932 3.663 16 4948 3.659 16 4964 3.661 16 4980 3.662 16 4996 3.672 16 5012 3.683 16 5028 3.683 16 5044 3.684 16 5060 3.684 16 5076 3.681 16 5092 3.681 16 5108 3.681 16 5124 3.688 16 5140 3.693 16 5156 3.703 16 5172 3.715 16 5188 3.716 16 5204 3.712 16 5220 3.715 16 5236 3.726 16 5252 3.719 16 5268 3.739 16 5284 3.729 16 5300 3.729 16 5316 3.743 16 5332 3.742 16 5348 3.734 16 5364 3.738 16 5380 3.739 16 5396 3.744 16 5412 3.747 16 5428 3.749 16 5444 3.747 16 5460 3.75 16 5476 3.754 16 5492 3.752 16 5508 3.758 16 5524 3.759 16 5540 3.762 16 5556 3.759 16 5572 3.765 16 5588 3.769 16 5604 3.771 16 5620 3.774 16 5636 3.778 16 5652 3.784 16 5668 3.791 16 5684 3.793 16 5700 3.798 16 5716 3.802 16 5732 3.807 16 5748 3.811 16 5764 3.815 16 5780 3.815 16 5796 3.816 16 5812 3.813 16 5828 3.812 16 5844 3.811 16 5860 3.814 16 5876 3.824 16 5892 3.841 16 5908 3.835 16 5924 3.834 16 5940 3.836 16 5956 3.844 16 5972 3.844 16 5988 3.847 16 6004 3.851 16 6020 3.854 16 6036 3.856 16 6052 3.859 16 6068 3.861 16 6084 3.86 16 6100 3.867 16 6116 3.87 16 6132 3.876 16 6148 3.886 16 6164 3.887 16 6180 3.883 16 6196 3.882 16 6212 3.885 16 6228 3.892 16 6244 3.903 16 6260 3.904 16 6276 3.92 16 6292 3.928 16 6308 3.919 16 6324 3.916 16 6340 3.918 16 6356 3.92 16 6372 3.923 16 6388 3.918 16 6404 3.918 16 6420 3.924 16 6436 3.927 16 6452 3.934 16 6468 3.937 16 6484 3.941 16 6500 3.946 16 6516 3.957 16 6532 3.989 16 6548 4.132 16 6564 4.336 16 6580 4.101 16 6596 3.989 16 6612 3.964 16 6628 3.957 16 6644 3.956 16 6660 3.954 16 6676 3.956 16 6692 3.954 16 6708 3.956 16 6724 3.959 16 6740 3.962 16 6756 3.966 16 6772 3.968 16 6788 3.973 16 6804 3.975 16 6820 3.980 16 6836 3.981 16 6852 3.995 16 6868 4.137 16 6884 4.145 16 6900 4.105 16 6916 4.052 16 6932 4.025 16 6948 4.019 16 6964 4.013 16 6980 4.012 16 6996 4.022 16 7012 4.023 16 7028 4.024 16 7044 4.024 16 7060 4.027 16 7076 4.029 16 7092 4.030 16 7108 4.037 16 7124 4.039 16 7140 4.040 16 7156 4.052 16 7172 4.089 16 7188 4.125 16 7204 4.111 16 7220 4.079 16 7236 4.106 16 7252 4.109 16 7268 4.108 16 7284 4.107 16 7300 4.105 16 7316 4.096 16 7332 4.084 16 7348 4.084 16 7364 4.085 16 7380 4.086 16 7396 4.086 16 7412 4.089 16 7428 4.091 16 7444 4.095 16 7460 4.098 16 7476 4.100 16 7492 4.102 16 7508 4.104 16 7524 4.108 16 7540 4.108 16 7556 4.112 16 7572 4.116 16 7588 4.273 16 7604 5.045 16 7620 4.755 16 7636 4.724 16 7652 4.459 16 7668 4.255 16 7684 4.172 16 7700 4.145 16 7716 4.137 16 7732 4.138 16 7748 4.139 16 7764 4.159 16 7780 4.174 16 7796 4.144 16 7812 4.146 16 7828 4.149 16 7844 4.152 16 7860 4.156 16 7876 4.163 16 7892 4.168 16 7908 4.166 16 7924 4.166 16 7940 4.168 16 7956 4.172 16 7972 4.170 16 7988 4.173 16 8004 4.177 16 8020 4.179 16 8036 4.182 16 8052 4.182 16 8068 4.187 16 8084 4.190 16 8100 4.194 16 8116 4.201 16 8132 4.220 16 8148 4.238 16 8164 4.259 16 8180 4.262 16 8196 4.256 16 8212 4.242 16 8228 4.284 16 8244 4.250 16 8260 4.240 16 8276 4.249 16 8292 4.255 16 8308 4.249 16 8324 4.249 16 8340 4.248 16 8356 4.235 16 8372 4.238 16 8388 4.240 16 8404 4.240 16 8420 4.245 16 8436 4.261 16 8452 4.260 16 8468 4.260 16 8484 4.232 16 8500 4.287 16 8516 4.236 16 8532 4.252 16 8548 4.325 16 8564 4.215 16 8580 4.218 16 8596 4.335 16 8612 4.256 16 8628 4.176 16 8644 4.212 16 8660 4.376 16 8676 4.328 16 8692 4.192 16 8708 4.156 16 8724 4.189 16 8740 4.330 16 8756 4.408 16 8772 4.231 16 8788 4.155 16 8804 4.144 16 8820 4.154 16 8836 4.201 16 8852 4.358 16 8868 4.452 16 8884 4.266 16 8900 4.184 16 8916 4.168 16 8932 4.167 16 8948 4.173 16 8964 4.208 16 8980 4.261 16 8996 4.381 16 9012 4.567 16 9028 4.442 16 9044 4.265 16 9060 4.247 16 9076 4.262 16 9092 4.265 16 9108 4.245 16 9124 4.237 16 9140 4.243 16 9156 4.250 16 9172 4.257 16 9188 4.264 16 9204 4.319 16 9220 4.507 16 9236 4.556 16 9252 4.373 16 9268 4.304 16 9284 4.292 16 9300 4.345 16 9316 4.464 16 9332 4.551 16 9348 4.599 16 9364 4.551 16 9380 4.517 16 9396 4.379 16 9412 4.406 16 9428 4.483 16 9444 4.508 16 9460 4.482 16 9476 4.459 16 9492 4.487 16 9508 4.476 16 9524 4.576 16 9540 4.731 16 9556 4.721 16 9572 4.518 16 9588 4.462 16 9604 4.424 16 9620 4.411 16 9636 4.392 16 9652 4.378 16 9668 4.364 16 9684 4.328 16 9700 4.313 16 9716 4.319 16 9732 4.336 16 9748 4.355 16 9764 4.342 16 9780 4.340 16 9796 4.342 16 9812 4.322 16 9828 4.329 16 9844 4.321 16 9860 4.321 16 9876 4.320 16 9892 4.325 16 9908 4.319 16 9924 4.313 16 9940 4.321 16 9956 4.321 16 9972 4.327 16 9988 4.335 16 10004 4.356 16 10020 4.386 16 10036 4.528 16 10052 4.659 16 10068 4.482 16 10084 4.394 16 10100 4.357 16 10116 4.339 16 10132 4.335 16 10148 4.337 16 10164 4.310 16 10180 4.321 16 10196 4.324 16 10212 4.333 16 10228 4.342 16 10244 4.349 16 10260 4.325 16 10276 4.340 16 10292 4.348 16 10308 4.352 16 10324 4.373 16 10340 4.379 16 10356 4.387 16 10372 4.404 16 10388 4.393 16 10404 4.409 16 sptable-1.0.pre20180612/lib/onedstds/spec16cal/hr7950blue.dat000066400000000000000000000072441331023215600230720ustar00rootroot00000000000000# HR 7950 3300 5.044 16 3316 5.041 16 3332 5.042 16 3348 5.026 16 3364 5.018 16 3380 5.005 16 3396 4.996 16 3412 4.993 16 3428 4.991 16 3444 5.000 16 3460 5.001 16 3476 4.998 16 3492 4.990 16 3508 4.974 16 3524 4.960 16 3540 4.943 16 3556 4.942 16 3572 4.936 16 3588 4.928 16 3604 4.918 16 3620 4.906 16 3636 4.895 16 3652 4.887 16 3668 4.878 16 3684 4.861 16 3700 4.800 16 3716 4.694 16 3732 4.574 16 3748 4.446 16 3764 4.316 16 3780 4.140 16 3796 4.126 16 3812 3.901 16 3828 4.084 16 3844 3.852 16 3860 3.659 16 3876 3.917 16 3892 3.969 16 3908 3.639 16 3924 3.594 16 3940 3.634 16 3956 3.881 16 3972 4.000 16 3988 3.643 16 4004 3.516 16 4020 3.488 16 4036 3.486 16 4052 3.498 16 4068 3.549 16 4084 3.760 16 4100 4.043 16 4116 3.726 16 4132 3.561 16 4148 3.519 16 4164 3.521 16 4180 3.526 16 4196 3.516 16 4212 3.516 16 4228 3.524 16 4244 3.530 16 4260 3.540 16 4276 3.549 16 4292 3.576 16 4308 3.630 16 4324 3.832 16 4340 4.102 16 4356 3.775 16 4372 3.614 16 4388 3.593 16 4404 3.585 16 4420 3.577 16 4436 3.574 16 4452 3.581 16 4468 3.595 16 4484 3.603 16 4500 3.592 16 4516 3.595 16 4532 3.604 16 4548 3.618 16 4564 3.614 16 4580 3.615 16 4596 3.608 16 4612 3.610 16 4628 3.619 16 4644 3.613 16 4660 3.621 16 4676 3.622 16 4692 3.625 16 4708 3.627 16 4724 3.634 16 4740 3.641 16 4756 3.644 16 4772 3.652 16 4788 3.655 16 4804 3.666 16 4820 3.686 16 4836 3.765 16 4852 4.064 16 4868 4.106 16 4884 3.787 16 4900 3.693 16 4916 3.683 16 4932 3.674 16 4948 3.670 16 4964 3.672 16 4980 3.673 16 4996 3.683 16 5012 3.694 16 5028 3.694 16 5044 3.695 16 5060 3.695 16 5076 3.692 16 5092 3.692 16 5108 3.692 16 5124 3.699 16 5140 3.704 16 5156 3.714 16 5172 3.726 16 5188 3.727 16 5204 3.723 16 5220 3.726 16 5236 3.737 16 5252 3.730 16 5268 3.750 16 5284 3.740 16 5300 3.740 16 5316 3.754 16 5332 3.753 16 5348 3.745 16 5364 3.749 16 5380 3.750 16 5396 3.755 16 5412 3.758 16 5428 3.760 16 5444 3.758 16 5460 3.761 16 5476 3.765 16 5492 3.763 16 5508 3.769 16 5524 3.770 16 5540 3.773 16 5556 3.770 16 5572 3.776 16 5588 3.780 16 5604 3.782 16 5620 3.785 16 5636 3.789 16 5652 3.795 16 5668 3.802 16 5684 3.804 16 5700 3.809 16 5716 3.813 16 5732 3.818 16 5748 3.822 16 5764 3.826 16 5780 3.826 16 5796 3.827 16 5812 3.824 16 5828 3.823 16 5844 3.822 16 5860 3.825 16 5876 3.835 16 5892 3.852 16 5908 3.846 16 5924 3.845 16 5940 3.847 16 5956 3.855 16 5972 3.855 16 5988 3.858 16 6004 3.862 16 6020 3.865 16 6036 3.867 16 6052 3.870 16 6068 3.872 16 6084 3.871 16 6100 3.878 16 6116 3.881 16 6132 3.887 16 6148 3.897 16 6164 3.898 16 6180 3.894 16 6196 3.893 16 6212 3.896 16 6228 3.903 16 6244 3.914 16 6260 3.915 16 6276 3.931 16 6292 3.939 16 6308 3.930 16 6324 3.927 16 6340 3.929 16 6356 3.931 16 6372 3.934 16 6388 3.929 16 6404 3.929 16 6420 3.935 16 6436 3.938 16 6452 3.945 16 6468 3.948 16 6484 3.952 16 6500 3.954 16 6516 3.964 16 6532 3.996 16 6548 4.136 16 6564 4.340 16 6580 4.118 16 6596 4.000 16 6612 3.974 16 6628 3.967 16 6644 3.964 16 6660 3.964 16 6676 3.966 16 6692 3.965 16 6708 3.966 16 6724 3.969 16 6740 3.972 16 6756 3.978 16 6772 3.979 16 6788 3.986 16 6804 3.987 16 6820 3.995 16 6836 3.994 16 6852 4.008 16 6868 4.141 16 6884 4.163 16 6900 4.121 16 6916 4.070 16 6932 4.042 16 6948 4.038 16 6964 4.029 16 6980 4.027 16 6996 4.037 16 7012 4.037 16 7028 4.038 16 7044 4.035 16 7060 4.039 16 7076 4.039 16 7092 4.040 16 7108 4.046 16 7124 4.047 16 7140 4.048 16 7156 4.060 16 7172 4.107 16 7188 4.150 16 7204 4.135 16 7220 4.094 16 7236 4.124 16 7252 4.129 16 7268 4.128 16 7284 4.127 16 7300 4.125 16 7316 4.112 16 7332 4.097 16 7348 4.096 16 7364 4.096 16 7380 4.098 16 7396 4.098 16 7412 4.101 16 7428 4.102 16 7444 4.107 16 7460 4.108 16 7476 4.112 16 7492 4.112 16 7508 4.119 16 7524 4.120 16 7540 4.114 16 7556 4.121 16 sptable-1.0.pre20180612/lib/onedstds/spec16cal/hr7950red.dat000066400000000000000000000074401331023215600227130ustar00rootroot00000000000000# HR 7950 6036 3.859 16 6052 3.862 16 6068 3.862 16 6084 3.866 16 6100 3.868 16 6116 3.872 16 6132 3.878 16 6148 3.890 16 6164 3.891 16 6180 3.888 16 6196 3.892 16 6212 3.895 16 6228 3.905 16 6244 3.914 16 6260 3.916 16 6276 3.937 16 6292 3.937 16 6308 3.933 16 6324 3.926 16 6340 3.931 16 6356 3.931 16 6372 3.932 16 6388 3.927 16 6404 3.928 16 6420 3.930 16 6436 3.933 16 6452 3.940 16 6468 3.940 16 6484 3.944 16 6500 3.948 16 6516 3.960 16 6532 3.993 16 6548 4.138 16 6564 4.342 16 6580 4.094 16 6596 3.988 16 6612 3.964 16 6628 3.958 16 6644 3.958 16 6660 3.955 16 6676 3.957 16 6692 3.954 16 6708 3.956 16 6724 3.959 16 6740 3.962 16 6756 3.965 16 6772 3.968 16 6788 3.970 16 6804 3.973 16 6820 3.975 16 6836 3.979 16 6852 3.993 16 6868 4.143 16 6884 4.137 16 6900 4.099 16 6916 4.045 16 6932 4.018 16 6948 4.011 16 6964 4.008 16 6980 4.007 16 6996 4.017 16 7012 4.020 16 7028 4.021 16 7044 4.023 16 7060 4.026 16 7076 4.029 16 7092 4.031 16 7108 4.039 16 7124 4.042 16 7140 4.043 16 7156 4.054 16 7172 4.081 16 7188 4.110 16 7204 4.097 16 7220 4.075 16 7236 4.098 16 7252 4.100 16 7268 4.098 16 7284 4.098 16 7300 4.096 16 7316 4.091 16 7332 4.082 16 7348 4.083 16 7364 4.084 16 7380 4.085 16 7396 4.085 16 7412 4.088 16 7428 4.090 16 7444 4.094 16 7460 4.098 16 7476 4.099 16 7492 4.103 16 7508 4.104 16 7524 4.108 16 7540 4.108 16 7556 4.112 16 7572 4.116 16 7588 4.273 16 7604 5.045 16 7620 4.755 16 7636 4.724 16 7652 4.459 16 7668 4.255 16 7684 4.172 16 7700 4.145 16 7716 4.137 16 7732 4.138 16 7748 4.139 16 7764 4.159 16 7780 4.174 16 7796 4.144 16 7812 4.146 16 7828 4.149 16 7844 4.152 16 7860 4.156 16 7876 4.163 16 7892 4.168 16 7908 4.166 16 7924 4.166 16 7940 4.168 16 7956 4.172 16 7972 4.170 16 7988 4.173 16 8004 4.177 16 8020 4.179 16 8036 4.182 16 8052 4.182 16 8068 4.187 16 8084 4.190 16 8100 4.194 16 8116 4.201 16 8132 4.220 16 8148 4.238 16 8164 4.259 16 8180 4.262 16 8196 4.256 16 8212 4.242 16 8228 4.284 16 8244 4.250 16 8260 4.240 16 8276 4.249 16 8292 4.255 16 8308 4.249 16 8324 4.249 16 8340 4.248 16 8356 4.235 16 8372 4.238 16 8388 4.240 16 8404 4.240 16 8420 4.245 16 8436 4.261 16 8452 4.260 16 8468 4.260 16 8484 4.232 16 8500 4.287 16 8516 4.236 16 8532 4.252 16 8548 4.325 16 8564 4.215 16 8580 4.218 16 8596 4.335 16 8612 4.256 16 8628 4.176 16 8644 4.212 16 8660 4.376 16 8676 4.328 16 8692 4.192 16 8708 4.156 16 8724 4.189 16 8740 4.330 16 8756 4.408 16 8772 4.231 16 8788 4.155 16 8804 4.144 16 8820 4.154 16 8836 4.201 16 8852 4.358 16 8868 4.452 16 8884 4.266 16 8900 4.184 16 8916 4.168 16 8932 4.167 16 8948 4.173 16 8964 4.208 16 8980 4.261 16 8996 4.381 16 9012 4.567 16 9028 4.442 16 9044 4.265 16 9060 4.247 16 9076 4.262 16 9092 4.265 16 9108 4.245 16 9124 4.237 16 9140 4.243 16 9156 4.250 16 9172 4.257 16 9188 4.264 16 9204 4.319 16 9220 4.507 16 9236 4.556 16 9252 4.373 16 9268 4.304 16 9284 4.292 16 9300 4.345 16 9316 4.464 16 9332 4.551 16 9348 4.599 16 9364 4.551 16 9380 4.517 16 9396 4.379 16 9412 4.406 16 9428 4.483 16 9444 4.508 16 9460 4.482 16 9476 4.459 16 9492 4.487 16 9508 4.476 16 9524 4.576 16 9540 4.731 16 9556 4.721 16 9572 4.518 16 9588 4.462 16 9604 4.424 16 9620 4.411 16 9636 4.392 16 9652 4.378 16 9668 4.364 16 9684 4.328 16 9700 4.313 16 9716 4.319 16 9732 4.336 16 9748 4.355 16 9764 4.342 16 9780 4.340 16 9796 4.342 16 9812 4.322 16 9828 4.329 16 9844 4.321 16 9860 4.321 16 9876 4.320 16 9892 4.325 16 9908 4.319 16 9924 4.313 16 9940 4.321 16 9956 4.321 16 9972 4.327 16 9988 4.335 16 10004 4.356 16 10020 4.386 16 10036 4.528 16 10052 4.659 16 10068 4.482 16 10084 4.394 16 10100 4.357 16 10116 4.339 16 10132 4.335 16 10148 4.337 16 10164 4.310 16 10180 4.321 16 10196 4.324 16 10212 4.333 16 10228 4.342 16 10244 4.349 16 10260 4.325 16 10276 4.340 16 10292 4.348 16 10308 4.352 16 10324 4.373 16 10340 4.379 16 10356 4.387 16 10372 4.404 16 10388 4.393 16 10404 4.409 16 sptable-1.0.pre20180612/lib/onedstds/spec16cal/hr8634.dat000066400000000000000000000141631331023215600222200ustar00rootroot00000000000000# HR 8634 3300 4.134 16 3316 4.129 16 3332 4.12 16 3348 4.112 16 3364 4.102 16 3380 4.109 16 3396 4.104 16 3412 4.114 16 3428 4.122 16 3444 4.129 16 3460 4.129 16 3476 4.127 16 3492 4.122 16 3508 4.111 16 3524 4.105 16 3540 4.099 16 3556 4.094 16 3572 4.083 16 3588 4.081 16 3604 4.079 16 3620 4.073 16 3636 4.069 16 3652 4.067 16 3668 4.07 16 3684 4.061 16 3700 4.023 16 3716 3.938 16 3732 3.818 16 3748 3.697 16 3764 3.591 16 3780 3.457 16 3796 3.463 16 3812 3.275 16 3828 3.409 16 3844 3.275 16 3860 3.112 16 3876 3.281 16 3892 3.374 16 3908 3.105 16 3924 3.053 16 3940 3.087 16 3956 3.276 16 3972 3.412 16 3988 3.141 16 4004 3.074 16 4020 3.06 16 4036 3.042 16 4052 3.042 16 4068 3.073 16 4084 3.214 16 4100 3.465 16 4116 3.222 16 4132 3.105 16 4148 3.081 16 4164 3.082 16 4180 3.087 16 4196 3.087 16 4212 3.09 16 4228 3.095 16 4244 3.101 16 4260 3.113 16 4276 3.118 16 4292 3.128 16 4308 3.161 16 4324 3.303 16 4340 3.542 16 4356 3.278 16 4372 3.171 16 4388 3.164 16 4404 3.155 16 4420 3.157 16 4436 3.158 16 4452 3.161 16 4468 3.181 16 4484 3.189 16 4500 3.178 16 4516 3.185 16 4532 3.184 16 4548 3.193 16 4564 3.195 16 4580 3.2 16 4596 3.204 16 4612 3.207 16 4628 3.216 16 4644 3.214 16 4660 3.219 16 4676 3.226 16 4692 3.227 16 4708 3.234 16 4724 3.239 16 4740 3.245 16 4756 3.251 16 4772 3.256 16 4788 3.26 16 4804 3.263 16 4820 3.279 16 4836 3.327 16 4852 3.557 16 4868 3.6 16 4884 3.342 16 4900 3.287 16 4916 3.284 16 4932 3.282 16 4948 3.282 16 4964 3.286 16 4980 3.289 16 4996 3.294 16 5012 3.306 16 5028 3.313 16 5044 3.316 16 5060 3.32 16 5076 3.314 16 5092 3.321 16 5108 3.321 16 5124 3.323 16 5140 3.326 16 5156 3.334 16 5172 3.34 16 5188 3.342 16 5204 3.344 16 5220 3.349 16 5236 3.356 16 5252 3.357 16 5268 3.363 16 5284 3.364 16 5300 3.366 16 5316 3.376 16 5332 3.377 16 5348 3.374 16 5364 3.378 16 5380 3.383 16 5396 3.388 16 5412 3.395 16 5428 3.396 16 5444 3.398 16 5460 3.398 16 5476 3.407 16 5492 3.41 16 5508 3.41 16 5524 3.414 16 5540 3.421 16 5556 3.423 16 5572 3.422 16 5588 3.431 16 5604 3.429 16 5620 3.437 16 5636 3.44 16 5652 3.446 16 5668 3.448 16 5684 3.457 16 5700 3.459 16 5716 3.466 16 5732 3.47 16 5748 3.474 16 5764 3.477 16 5780 3.479 16 5796 3.479 16 5812 3.475 16 5828 3.473 16 5844 3.474 16 5860 3.479 16 5876 3.489 16 5892 3.497 16 5908 3.494 16 5924 3.496 16 5940 3.503 16 5956 3.509 16 5972 3.512 16 5988 3.518 16 6004 3.517 16 6020 3.521 16 6036 3.527 16 6052 3.53 16 6068 3.533 16 6084 3.537 16 6100 3.54 16 6116 3.544 16 6132 3.549 16 6148 3.556 16 6164 3.559 16 6180 3.559 16 6196 3.56 16 6212 3.563 16 6228 3.57 16 6244 3.576 16 6260 3.581 16 6276 3.598 16 6292 3.606 16 6308 3.6 16 6324 3.595 16 6340 3.599 16 6356 3.602 16 6372 3.604 16 6388 3.602 16 6404 3.602 16 6420 3.606 16 6436 3.608 16 6452 3.613 16 6468 3.616 16 6484 3.62 16 6500 3.624 16 6516 3.634 16 6532 3.653 16 6548 3.759 16 6564 3.928 16 6580 3.745 16 6596 3.658 16 6612 3.644 16 6628 3.644 16 6644 3.645 16 6660 3.646 16 6676 3.650 16 6692 3.648 16 6708 3.649 16 6724 3.653 16 6740 3.657 16 6756 3.660 16 6772 3.665 16 6788 3.669 16 6804 3.673 16 6820 3.677 16 6836 3.680 16 6852 3.697 16 6868 3.835 16 6884 3.850 16 6900 3.809 16 6916 3.756 16 6932 3.730 16 6948 3.723 16 6964 3.714 16 6980 3.716 16 6996 3.725 16 7012 3.726 16 7028 3.729 16 7044 3.732 16 7060 3.736 16 7076 3.738 16 7092 3.738 16 7108 3.741 16 7124 3.745 16 7140 3.750 16 7156 3.760 16 7172 3.796 16 7188 3.829 16 7204 3.819 16 7220 3.787 16 7236 3.815 16 7252 3.821 16 7268 3.819 16 7284 3.818 16 7300 3.812 16 7316 3.809 16 7332 3.798 16 7348 3.799 16 7364 3.800 16 7380 3.801 16 7396 3.802 16 7412 3.804 16 7428 3.807 16 7444 3.810 16 7460 3.814 16 7476 3.818 16 7492 3.817 16 7508 3.818 16 7524 3.824 16 7540 3.826 16 7556 3.829 16 7572 3.835 16 7588 4.006 16 7604 4.776 16 7620 4.493 16 7636 4.452 16 7652 4.182 16 7668 3.978 16 7684 3.890 16 7700 3.864 16 7716 3.858 16 7732 3.856 16 7748 3.860 16 7764 3.876 16 7780 3.888 16 7796 3.869 16 7812 3.869 16 7828 3.874 16 7844 3.875 16 7860 3.878 16 7876 3.888 16 7892 3.895 16 7908 3.894 16 7924 3.892 16 7940 3.893 16 7956 3.901 16 7972 3.902 16 7988 3.900 16 8004 3.908 16 8020 3.908 16 8036 3.912 16 8052 3.912 16 8068 3.915 16 8084 3.920 16 8100 3.924 16 8116 3.931 16 8132 3.957 16 8148 3.986 16 8164 4.010 16 8180 4.004 16 8196 3.992 16 8212 3.978 16 8228 4.036 16 8244 3.990 16 8260 3.976 16 8276 3.995 16 8292 4.001 16 8308 3.990 16 8324 3.991 16 8340 3.982 16 8356 3.980 16 8372 3.978 16 8388 3.982 16 8404 3.981 16 8420 3.982 16 8436 3.998 16 8452 4.003 16 8468 4.003 16 8484 3.984 16 8500 4.019 16 8516 3.984 16 8532 3.991 16 8548 4.054 16 8564 3.967 16 8580 3.967 16 8596 4.076 16 8612 4.013 16 8628 3.928 16 8644 3.957 16 8660 4.099 16 8676 4.073 16 8692 3.943 16 8708 3.910 16 8724 3.940 16 8740 4.073 16 8756 4.152 16 8772 3.990 16 8788 3.919 16 8804 3.908 16 8820 3.918 16 8836 3.961 16 8852 4.102 16 8868 4.200 16 8884 4.024 16 8900 3.949 16 8916 3.934 16 8932 3.943 16 8948 3.962 16 8964 4.003 16 8980 4.050 16 8996 4.157 16 9012 4.325 16 9028 4.210 16 9044 4.035 16 9060 4.019 16 9076 4.048 16 9092 4.049 16 9108 4.038 16 9124 4.036 16 9140 4.054 16 9156 4.061 16 9172 4.062 16 9188 4.056 16 9204 4.083 16 9220 4.247 16 9236 4.310 16 9252 4.147 16 9268 4.090 16 9284 4.100 16 9300 4.173 16 9316 4.305 16 9332 4.422 16 9348 4.476 16 9364 4.424 16 9380 4.377 16 9396 4.208 16 9412 4.228 16 9428 4.327 16 9444 4.360 16 9460 4.334 16 9476 4.314 16 9492 4.334 16 9508 4.307 16 9524 4.400 16 9540 4.531 16 9556 4.541 16 9572 4.332 16 9588 4.295 16 9604 4.249 16 9620 4.233 16 9636 4.223 16 9652 4.195 16 9668 4.173 16 9684 4.127 16 9700 4.116 16 9716 4.126 16 9732 4.147 16 9748 4.162 16 9764 4.153 16 9780 4.138 16 9796 4.147 16 9812 4.127 16 9828 4.122 16 9844 4.124 16 9860 4.110 16 9876 4.114 16 9892 4.112 16 9908 4.112 16 9924 4.097 16 9940 4.106 16 9956 4.113 16 9972 4.114 16 9988 4.124 16 10004 4.130 16 10020 4.155 16 10036 4.278 16 10052 4.408 16 10068 4.245 16 10084 4.162 16 10100 4.140 16 10116 4.131 16 10132 4.118 16 10148 4.126 16 10164 4.119 16 10180 4.130 16 10196 4.125 16 10212 4.121 16 10228 4.114 16 10244 4.118 16 10260 4.129 16 10276 4.125 16 10292 4.100 16 10308 4.110 16 10324 4.143 16 10340 4.170 16 10356 4.173 16 10372 4.173 16 10388 4.173 16 10404 4.158 16 10420 4.167 16 sptable-1.0.pre20180612/lib/onedstds/spec16cal/hr8634blue.dat000066400000000000000000000072441331023215600230720ustar00rootroot00000000000000# HR 8634 3300 4.139 16 3316 4.134 16 3332 4.125 16 3348 4.117 16 3364 4.107 16 3380 4.114 16 3396 4.109 16 3412 4.119 16 3428 4.127 16 3444 4.134 16 3460 4.134 16 3476 4.132 16 3492 4.127 16 3508 4.116 16 3524 4.110 16 3540 4.104 16 3556 4.099 16 3572 4.088 16 3588 4.086 16 3604 4.084 16 3620 4.078 16 3636 4.074 16 3652 4.072 16 3668 4.075 16 3684 4.066 16 3700 4.028 16 3716 3.943 16 3732 3.823 16 3748 3.702 16 3764 3.596 16 3780 3.462 16 3796 3.468 16 3812 3.280 16 3828 3.414 16 3844 3.280 16 3860 3.117 16 3876 3.286 16 3892 3.379 16 3908 3.110 16 3924 3.058 16 3940 3.092 16 3956 3.281 16 3972 3.417 16 3988 3.146 16 4004 3.079 16 4020 3.065 16 4036 3.047 16 4052 3.047 16 4068 3.078 16 4084 3.219 16 4100 3.470 16 4116 3.227 16 4132 3.110 16 4148 3.086 16 4164 3.087 16 4180 3.092 16 4196 3.092 16 4212 3.095 16 4228 3.100 16 4244 3.106 16 4260 3.118 16 4276 3.123 16 4292 3.133 16 4308 3.166 16 4324 3.308 16 4340 3.547 16 4356 3.283 16 4372 3.176 16 4388 3.169 16 4404 3.160 16 4420 3.162 16 4436 3.163 16 4452 3.166 16 4468 3.186 16 4484 3.194 16 4500 3.183 16 4516 3.190 16 4532 3.189 16 4548 3.198 16 4564 3.200 16 4580 3.205 16 4596 3.209 16 4612 3.212 16 4628 3.221 16 4644 3.219 16 4660 3.224 16 4676 3.231 16 4692 3.232 16 4708 3.239 16 4724 3.244 16 4740 3.250 16 4756 3.256 16 4772 3.261 16 4788 3.265 16 4804 3.268 16 4820 3.284 16 4836 3.332 16 4852 3.562 16 4868 3.605 16 4884 3.347 16 4900 3.292 16 4916 3.289 16 4932 3.287 16 4948 3.287 16 4964 3.291 16 4980 3.294 16 4996 3.299 16 5012 3.311 16 5028 3.318 16 5044 3.321 16 5060 3.325 16 5076 3.319 16 5092 3.326 16 5108 3.326 16 5124 3.328 16 5140 3.331 16 5156 3.339 16 5172 3.345 16 5188 3.347 16 5204 3.349 16 5220 3.354 16 5236 3.361 16 5252 3.362 16 5268 3.368 16 5284 3.369 16 5300 3.371 16 5316 3.381 16 5332 3.382 16 5348 3.379 16 5364 3.383 16 5380 3.388 16 5396 3.393 16 5412 3.400 16 5428 3.401 16 5444 3.403 16 5460 3.403 16 5476 3.412 16 5492 3.415 16 5508 3.415 16 5524 3.419 16 5540 3.426 16 5556 3.428 16 5572 3.427 16 5588 3.436 16 5604 3.434 16 5620 3.442 16 5636 3.445 16 5652 3.451 16 5668 3.453 16 5684 3.462 16 5700 3.464 16 5716 3.471 16 5732 3.475 16 5748 3.479 16 5764 3.482 16 5780 3.484 16 5796 3.484 16 5812 3.480 16 5828 3.478 16 5844 3.479 16 5860 3.484 16 5876 3.494 16 5892 3.502 16 5908 3.499 16 5924 3.501 16 5940 3.508 16 5956 3.514 16 5972 3.517 16 5988 3.523 16 6004 3.522 16 6020 3.526 16 6036 3.532 16 6052 3.535 16 6068 3.538 16 6084 3.542 16 6100 3.545 16 6116 3.549 16 6132 3.554 16 6148 3.561 16 6164 3.564 16 6180 3.564 16 6196 3.565 16 6212 3.568 16 6228 3.575 16 6244 3.581 16 6260 3.586 16 6276 3.603 16 6292 3.611 16 6308 3.605 16 6324 3.600 16 6340 3.604 16 6356 3.607 16 6372 3.609 16 6388 3.607 16 6404 3.607 16 6420 3.611 16 6436 3.613 16 6452 3.618 16 6468 3.621 16 6484 3.625 16 6500 3.626 16 6516 3.634 16 6532 3.653 16 6548 3.754 16 6564 3.925 16 6580 3.763 16 6596 3.665 16 6612 3.649 16 6628 3.649 16 6644 3.649 16 6660 3.650 16 6676 3.655 16 6692 3.652 16 6708 3.654 16 6724 3.658 16 6740 3.662 16 6756 3.667 16 6772 3.671 16 6788 3.677 16 6804 3.682 16 6820 3.686 16 6836 3.688 16 6852 3.703 16 6868 3.827 16 6884 3.865 16 6900 3.821 16 6916 3.766 16 6932 3.739 16 6948 3.732 16 6964 3.722 16 6980 3.724 16 6996 3.732 16 7012 3.732 16 7028 3.735 16 7044 3.738 16 7060 3.741 16 7076 3.743 16 7092 3.742 16 7108 3.743 16 7124 3.748 16 7140 3.751 16 7156 3.762 16 7172 3.796 16 7188 3.831 16 7204 3.824 16 7220 3.789 16 7236 3.814 16 7252 3.824 16 7268 3.822 16 7284 3.822 16 7300 3.813 16 7316 3.812 16 7332 3.801 16 7348 3.804 16 7364 3.804 16 7380 3.807 16 7396 3.807 16 7412 3.811 16 7428 3.812 16 7444 3.817 16 7460 3.819 16 7476 3.824 16 7492 3.822 16 7508 3.831 16 7524 3.828 16 7540 3.825 16 7556 3.836 16 sptable-1.0.pre20180612/lib/onedstds/spec16cal/hr8634red.dat000066400000000000000000000074571331023215600227230ustar00rootroot00000000000000# HR 8634 6036 3.534 16 6052 3.537 16 6068 3.538 16 6084 3.540 16 6100 3.544 16 6116 3.547 16 6132 3.551 16 6148 3.561 16 6164 3.563 16 6180 3.563 16 6196 3.567 16 6212 3.572 16 6228 3.580 16 6244 3.589 16 6260 3.591 16 6276 3.614 16 6292 3.615 16 6308 3.610 16 6324 3.605 16 6340 3.610 16 6356 3.611 16 6372 3.613 16 6388 3.607 16 6404 3.609 16 6420 3.606 16 6436 3.611 16 6452 3.617 16 6468 3.621 16 6484 3.626 16 6500 3.627 16 6516 3.638 16 6532 3.657 16 6548 3.768 16 6564 3.935 16 6580 3.731 16 6596 3.655 16 6612 3.644 16 6628 3.643 16 6644 3.645 16 6660 3.647 16 6676 3.649 16 6692 3.648 16 6708 3.648 16 6724 3.652 16 6740 3.656 16 6756 3.658 16 6772 3.663 16 6788 3.666 16 6804 3.669 16 6820 3.673 16 6836 3.676 16 6852 3.695 16 6868 3.847 16 6884 3.840 16 6900 3.802 16 6916 3.750 16 6932 3.725 16 6948 3.719 16 6964 3.711 16 6980 3.713 16 6996 3.723 16 7012 3.724 16 7028 3.728 16 7044 3.731 16 7060 3.736 16 7076 3.738 16 7092 3.739 16 7108 3.743 16 7124 3.746 16 7140 3.753 16 7156 3.762 16 7172 3.801 16 7188 3.832 16 7204 3.818 16 7220 3.789 16 7236 3.820 16 7252 3.822 16 7268 3.821 16 7284 3.818 16 7300 3.816 16 7316 3.810 16 7332 3.800 16 7348 3.798 16 7364 3.801 16 7380 3.799 16 7396 3.801 16 7412 3.801 16 7428 3.806 16 7444 3.808 16 7460 3.813 16 7476 3.816 16 7492 3.816 16 7508 3.818 16 7524 3.824 16 7540 3.826 16 7556 3.829 16 7572 3.835 16 7588 4.006 16 7604 4.776 16 7620 4.493 16 7636 4.452 16 7652 4.182 16 7668 3.978 16 7684 3.890 16 7700 3.864 16 7716 3.858 16 7732 3.856 16 7748 3.860 16 7764 3.876 16 7780 3.888 16 7796 3.869 16 7812 3.869 16 7828 3.874 16 7844 3.875 16 7860 3.878 16 7876 3.888 16 7892 3.895 16 7908 3.894 16 7924 3.892 16 7940 3.893 16 7956 3.901 16 7972 3.902 16 7988 3.900 16 8004 3.908 16 8020 3.908 16 8036 3.912 16 8052 3.912 16 8068 3.915 16 8084 3.920 16 8100 3.924 16 8116 3.931 16 8132 3.957 16 8148 3.986 16 8164 4.010 16 8180 4.004 16 8196 3.992 16 8212 3.978 16 8228 4.036 16 8244 3.990 16 8260 3.976 16 8276 3.995 16 8292 4.001 16 8308 3.990 16 8324 3.991 16 8340 3.982 16 8356 3.980 16 8372 3.978 16 8388 3.982 16 8404 3.981 16 8420 3.982 16 8436 3.998 16 8452 4.003 16 8468 4.003 16 8484 3.984 16 8500 4.019 16 8516 3.984 16 8532 3.991 16 8548 4.054 16 8564 3.967 16 8580 3.967 16 8596 4.076 16 8612 4.013 16 8628 3.928 16 8644 3.957 16 8660 4.099 16 8676 4.073 16 8692 3.943 16 8708 3.910 16 8724 3.940 16 8740 4.073 16 8756 4.152 16 8772 3.990 16 8788 3.919 16 8804 3.908 16 8820 3.918 16 8836 3.961 16 8852 4.102 16 8868 4.200 16 8884 4.024 16 8900 3.949 16 8916 3.934 16 8932 3.943 16 8948 3.962 16 8964 4.003 16 8980 4.050 16 8996 4.157 16 9012 4.325 16 9028 4.210 16 9044 4.035 16 9060 4.019 16 9076 4.048 16 9092 4.049 16 9108 4.038 16 9124 4.036 16 9140 4.054 16 9156 4.061 16 9172 4.062 16 9188 4.056 16 9204 4.083 16 9220 4.247 16 9236 4.310 16 9252 4.147 16 9268 4.090 16 9284 4.100 16 9300 4.173 16 9316 4.305 16 9332 4.422 16 9348 4.476 16 9364 4.424 16 9380 4.377 16 9396 4.208 16 9412 4.228 16 9428 4.327 16 9444 4.360 16 9460 4.334 16 9476 4.314 16 9492 4.334 16 9508 4.307 16 9524 4.400 16 9540 4.531 16 9556 4.541 16 9572 4.332 16 9588 4.295 16 9604 4.249 16 9620 4.233 16 9636 4.223 16 9652 4.195 16 9668 4.173 16 9684 4.127 16 9700 4.116 16 9716 4.126 16 9732 4.147 16 9748 4.162 16 9764 4.153 16 9780 4.138 16 9796 4.147 16 9812 4.127 16 9828 4.122 16 9844 4.124 16 9860 4.110 16 9876 4.114 16 9892 4.112 16 9908 4.112 16 9924 4.097 16 9940 4.106 16 9956 4.113 16 9972 4.114 16 9988 4.124 16 10004 4.130 16 10020 4.155 16 10036 4.278 16 10052 4.408 16 10068 4.245 16 10084 4.162 16 10100 4.140 16 10116 4.131 16 10132 4.118 16 10148 4.126 16 10164 4.119 16 10180 4.130 16 10196 4.125 16 10212 4.121 16 10228 4.114 16 10244 4.118 16 10260 4.129 16 10276 4.125 16 10292 4.100 16 10308 4.110 16 10324 4.143 16 10340 4.170 16 10356 4.173 16 10372 4.173 16 10388 4.173 16 10404 4.158 16 10420 4.167 16 sptable-1.0.pre20180612/lib/onedstds/spec16cal/hr9087.dat000066400000000000000000000141361331023215600222230ustar00rootroot00000000000000# HR 9087 3300 5.381 16 3316 5.376 16 3332 5.377 16 3348 5.367 16 3364 5.361 16 3380 5.364 16 3396 5.371 16 3412 5.378 16 3428 5.394 16 3444 5.402 16 3460 5.407 16 3476 5.411 16 3492 5.412 16 3508 5.4 16 3524 5.395 16 3540 5.39 16 3556 5.388 16 3572 5.384 16 3588 5.381 16 3604 5.378 16 3620 5.377 16 3636 5.376 16 3652 5.376 16 3668 5.378 16 3684 5.383 16 3700 5.376 16 3716 5.34 16 3732 5.276 16 3748 5.203 16 3764 5.132 16 3780 5.035 16 3796 5.044 16 3812 4.901 16 3828 4.993 16 3844 4.904 16 3860 4.77 16 3876 4.896 16 3892 4.981 16 3908 4.775 16 3924 4.73 16 3940 4.747 16 3956 4.89 16 3972 5.017 16 3988 4.806 16 4004 4.756 16 4020 4.745 16 4036 4.734 16 4052 4.731 16 4068 4.75 16 4084 4.861 16 4100 5.057 16 4116 4.884 16 4132 4.79 16 4148 4.77 16 4164 4.768 16 4180 4.773 16 4196 4.773 16 4212 4.775 16 4228 4.782 16 4244 4.79 16 4260 4.8 16 4276 4.806 16 4292 4.816 16 4308 4.84 16 4324 4.954 16 4340 5.14 16 4356 4.949 16 4372 4.862 16 4388 4.858 16 4404 4.851 16 4420 4.853 16 4436 4.854 16 4452 4.868 16 4468 4.885 16 4484 4.884 16 4500 4.872 16 4516 4.882 16 4532 4.883 16 4548 4.894 16 4564 4.897 16 4580 4.901 16 4596 4.904 16 4612 4.906 16 4628 4.916 16 4644 4.917 16 4660 4.919 16 4676 4.924 16 4692 4.928 16 4708 4.935 16 4724 4.942 16 4740 4.949 16 4756 4.951 16 4772 4.959 16 4788 4.964 16 4804 4.967 16 4820 4.977 16 4836 5.014 16 4852 5.188 16 4868 5.233 16 4884 5.032 16 4900 4.993 16 4916 4.997 16 4932 4.994 16 4948 4.99 16 4964 4.993 16 4980 4.998 16 4996 5.006 16 5012 5.019 16 5028 5.022 16 5044 5.029 16 5060 5.03 16 5076 5.027 16 5092 5.029 16 5108 5.033 16 5124 5.035 16 5140 5.041 16 5156 5.049 16 5172 5.051 16 5188 5.052 16 5204 5.057 16 5220 5.064 16 5236 5.068 16 5252 5.071 16 5268 5.075 16 5284 5.077 16 5300 5.082 16 5316 5.093 16 5332 5.088 16 5348 5.089 16 5364 5.092 16 5380 5.094 16 5396 5.101 16 5412 5.104 16 5428 5.107 16 5444 5.108 16 5460 5.114 16 5476 5.117 16 5492 5.122 16 5508 5.125 16 5524 5.124 16 5540 5.131 16 5556 5.135 16 5572 5.139 16 5588 5.144 16 5604 5.147 16 5620 5.151 16 5636 5.158 16 5652 5.164 16 5668 5.172 16 5684 5.174 16 5700 5.183 16 5716 5.189 16 5732 5.193 16 5748 5.2 16 5764 5.202 16 5780 5.201 16 5796 5.2 16 5812 5.196 16 5828 5.2 16 5844 5.198 16 5860 5.204 16 5876 5.218 16 5892 5.223 16 5908 5.222 16 5924 5.224 16 5940 5.23 16 5956 5.239 16 5972 5.242 16 5988 5.245 16 6004 5.247 16 6020 5.253 16 6036 5.26 16 6052 5.26 16 6068 5.258 16 6084 5.265 16 6100 5.265 16 6116 5.265 16 6132 5.268 16 6148 5.279 16 6164 5.283 16 6180 5.278 16 6196 5.285 16 6212 5.29 16 6228 5.295 16 6244 5.296 16 6260 5.299 16 6276 5.318 16 6292 5.324 16 6308 5.317 16 6324 5.313 16 6340 5.316 16 6356 5.318 16 6372 5.323 16 6388 5.32 16 6404 5.321 16 6420 5.325 16 6436 5.328 16 6452 5.333 16 6468 5.337 16 6484 5.344 16 6500 5.347 16 6516 5.354 16 6532 5.368 16 6548 5.450 16 6564 5.596 16 6580 5.436 16 6596 5.375 16 6612 5.368 16 6628 5.366 16 6644 5.369 16 6660 5.372 16 6676 5.376 16 6692 5.374 16 6708 5.376 16 6724 5.380 16 6740 5.383 16 6756 5.391 16 6772 5.394 16 6788 5.398 16 6804 5.402 16 6820 5.407 16 6836 5.410 16 6852 5.427 16 6868 5.566 16 6884 5.573 16 6900 5.535 16 6916 5.485 16 6932 5.461 16 6948 5.454 16 6964 5.448 16 6980 5.448 16 6996 5.456 16 7012 5.459 16 7028 5.463 16 7044 5.463 16 7060 5.468 16 7076 5.469 16 7092 5.470 16 7108 5.475 16 7124 5.478 16 7140 5.483 16 7156 5.495 16 7172 5.530 16 7188 5.565 16 7204 5.552 16 7220 5.522 16 7236 5.552 16 7252 5.554 16 7268 5.552 16 7284 5.551 16 7300 5.548 16 7316 5.542 16 7332 5.532 16 7348 5.533 16 7364 5.533 16 7380 5.536 16 7396 5.535 16 7412 5.539 16 7428 5.542 16 7444 5.544 16 7460 5.546 16 7476 5.552 16 7492 5.553 16 7508 5.555 16 7524 5.559 16 7540 5.563 16 7556 5.565 16 7572 5.571 16 7588 5.736 16 7604 6.493 16 7620 6.214 16 7636 6.173 16 7652 5.910 16 7668 5.712 16 7684 5.630 16 7700 5.603 16 7716 5.595 16 7732 5.597 16 7748 5.599 16 7764 5.610 16 7780 5.621 16 7796 5.608 16 7812 5.610 16 7828 5.614 16 7844 5.618 16 7860 5.619 16 7876 5.626 16 7892 5.633 16 7908 5.634 16 7924 5.634 16 7940 5.637 16 7956 5.642 16 7972 5.642 16 7988 5.644 16 8004 5.650 16 8020 5.652 16 8036 5.656 16 8052 5.656 16 8068 5.658 16 8084 5.663 16 8100 5.667 16 8116 5.675 16 8132 5.699 16 8148 5.726 16 8164 5.752 16 8180 5.747 16 8196 5.733 16 8212 5.717 16 8228 5.770 16 8244 5.733 16 8260 5.722 16 8276 5.740 16 8292 5.745 16 8308 5.736 16 8324 5.736 16 8340 5.730 16 8356 5.727 16 8372 5.726 16 8388 5.728 16 8404 5.732 16 8420 5.730 16 8436 5.743 16 8452 5.745 16 8468 5.744 16 8484 5.735 16 8500 5.758 16 8516 5.739 16 8532 5.747 16 8548 5.786 16 8564 5.733 16 8580 5.734 16 8596 5.808 16 8612 5.765 16 8628 5.710 16 8644 5.732 16 8660 5.833 16 8676 5.813 16 8692 5.718 16 8708 5.695 16 8724 5.722 16 8740 5.823 16 8756 5.885 16 8772 5.764 16 8788 5.710 16 8804 5.704 16 8820 5.709 16 8836 5.741 16 8852 5.859 16 8868 5.934 16 8884 5.795 16 8900 5.737 16 8916 5.730 16 8932 5.737 16 8948 5.755 16 8964 5.794 16 8980 5.836 16 8996 5.928 16 9012 6.069 16 9028 5.969 16 9044 5.818 16 9060 5.807 16 9076 5.835 16 9092 5.832 16 9108 5.827 16 9124 5.834 16 9140 5.848 16 9156 5.856 16 9172 5.850 16 9188 5.848 16 9204 5.863 16 9220 6.007 16 9236 6.064 16 9252 5.913 16 9268 5.871 16 9284 5.902 16 9300 5.968 16 9316 6.107 16 9332 6.213 16 9348 6.261 16 9364 6.214 16 9380 6.162 16 9396 5.998 16 9412 6.024 16 9428 6.120 16 9444 6.148 16 9460 6.120 16 9476 6.097 16 9492 6.115 16 9508 6.096 16 9524 6.167 16 9540 6.276 16 9556 6.285 16 9572 6.106 16 9588 6.086 16 9604 6.034 16 9620 6.023 16 9636 6.008 16 9652 5.992 16 9668 5.965 16 9684 5.926 16 9700 5.916 16 9716 5.931 16 9732 5.954 16 9748 5.971 16 9764 5.964 16 9780 5.941 16 9796 5.952 16 9812 5.932 16 9828 5.918 16 9844 5.916 16 9860 5.902 16 9876 5.915 16 9892 5.909 16 9908 5.909 16 9924 5.902 16 9940 5.913 16 9956 5.926 16 9972 5.913 16 9988 5.934 16 10004 5.943 16 10020 5.959 16 10036 6.051 16 10052 6.167 16 10068 6.039 16 10084 5.946 16 10100 5.931 16 10116 5.935 16 10132 5.932 16 10148 5.911 16 10164 5.926 16 10180 5.921 16 10196 5.944 16 10212 5.894 16 10228 5.896 16 10244 5.922 16 10260 5.928 16 10276 5.929 16 10292 5.932 16 10308 6.021 16 10324 5.896 16 10340 6.116 16 10356 6.013 16 10372 6.025 16 10388 5.976 16 10404 6.018 16 sptable-1.0.pre20180612/lib/onedstds/spec16cal/hr9087blue.dat000066400000000000000000000072441331023215600230750ustar00rootroot00000000000000# HR 9087 3300 5.381 16 3316 5.376 16 3332 5.377 16 3348 5.367 16 3364 5.361 16 3380 5.364 16 3396 5.371 16 3412 5.378 16 3428 5.394 16 3444 5.402 16 3460 5.407 16 3476 5.411 16 3492 5.412 16 3508 5.400 16 3524 5.395 16 3540 5.390 16 3556 5.388 16 3572 5.384 16 3588 5.381 16 3604 5.378 16 3620 5.377 16 3636 5.376 16 3652 5.376 16 3668 5.378 16 3684 5.383 16 3700 5.376 16 3716 5.340 16 3732 5.276 16 3748 5.203 16 3764 5.132 16 3780 5.035 16 3796 5.044 16 3812 4.901 16 3828 4.993 16 3844 4.904 16 3860 4.770 16 3876 4.896 16 3892 4.981 16 3908 4.775 16 3924 4.730 16 3940 4.747 16 3956 4.890 16 3972 5.017 16 3988 4.806 16 4004 4.756 16 4020 4.745 16 4036 4.734 16 4052 4.731 16 4068 4.750 16 4084 4.861 16 4100 5.057 16 4116 4.884 16 4132 4.790 16 4148 4.770 16 4164 4.768 16 4180 4.773 16 4196 4.773 16 4212 4.775 16 4228 4.782 16 4244 4.790 16 4260 4.800 16 4276 4.806 16 4292 4.816 16 4308 4.840 16 4324 4.954 16 4340 5.140 16 4356 4.949 16 4372 4.862 16 4388 4.858 16 4404 4.851 16 4420 4.853 16 4436 4.854 16 4452 4.868 16 4468 4.885 16 4484 4.884 16 4500 4.872 16 4516 4.882 16 4532 4.883 16 4548 4.894 16 4564 4.897 16 4580 4.901 16 4596 4.904 16 4612 4.906 16 4628 4.916 16 4644 4.917 16 4660 4.919 16 4676 4.924 16 4692 4.928 16 4708 4.935 16 4724 4.942 16 4740 4.949 16 4756 4.951 16 4772 4.959 16 4788 4.964 16 4804 4.967 16 4820 4.977 16 4836 5.014 16 4852 5.188 16 4868 5.233 16 4884 5.032 16 4900 4.993 16 4916 4.997 16 4932 4.994 16 4948 4.990 16 4964 4.993 16 4980 4.998 16 4996 5.006 16 5012 5.019 16 5028 5.022 16 5044 5.029 16 5060 5.030 16 5076 5.027 16 5092 5.029 16 5108 5.033 16 5124 5.035 16 5140 5.041 16 5156 5.049 16 5172 5.051 16 5188 5.052 16 5204 5.057 16 5220 5.064 16 5236 5.068 16 5252 5.071 16 5268 5.075 16 5284 5.077 16 5300 5.082 16 5316 5.093 16 5332 5.088 16 5348 5.089 16 5364 5.092 16 5380 5.094 16 5396 5.101 16 5412 5.104 16 5428 5.107 16 5444 5.108 16 5460 5.114 16 5476 5.117 16 5492 5.122 16 5508 5.125 16 5524 5.124 16 5540 5.131 16 5556 5.135 16 5572 5.139 16 5588 5.144 16 5604 5.147 16 5620 5.151 16 5636 5.158 16 5652 5.164 16 5668 5.172 16 5684 5.174 16 5700 5.183 16 5716 5.189 16 5732 5.193 16 5748 5.200 16 5764 5.202 16 5780 5.201 16 5796 5.200 16 5812 5.196 16 5828 5.200 16 5844 5.198 16 5860 5.204 16 5876 5.218 16 5892 5.223 16 5908 5.222 16 5924 5.224 16 5940 5.230 16 5956 5.239 16 5972 5.242 16 5988 5.245 16 6004 5.247 16 6020 5.253 16 6036 5.260 16 6052 5.260 16 6068 5.258 16 6084 5.265 16 6100 5.265 16 6116 5.265 16 6132 5.268 16 6148 5.279 16 6164 5.283 16 6180 5.278 16 6196 5.285 16 6212 5.290 16 6228 5.295 16 6244 5.296 16 6260 5.299 16 6276 5.318 16 6292 5.324 16 6308 5.317 16 6324 5.313 16 6340 5.316 16 6356 5.318 16 6372 5.323 16 6388 5.320 16 6404 5.321 16 6420 5.325 16 6436 5.328 16 6452 5.333 16 6468 5.337 16 6484 5.344 16 6500 5.343 16 6516 5.350 16 6532 5.363 16 6548 5.441 16 6564 5.592 16 6580 5.440 16 6596 5.375 16 6612 5.366 16 6628 5.365 16 6644 5.367 16 6660 5.372 16 6676 5.374 16 6692 5.373 16 6708 5.375 16 6724 5.379 16 6740 5.383 16 6756 5.391 16 6772 5.395 16 6788 5.402 16 6804 5.407 16 6820 5.411 16 6836 5.414 16 6852 5.429 16 6868 5.559 16 6884 5.579 16 6900 5.538 16 6916 5.492 16 6932 5.466 16 6948 5.460 16 6964 5.453 16 6980 5.452 16 6996 5.460 16 7012 5.463 16 7028 5.466 16 7044 5.465 16 7060 5.469 16 7076 5.470 16 7092 5.470 16 7108 5.477 16 7124 5.476 16 7140 5.482 16 7156 5.494 16 7172 5.528 16 7188 5.564 16 7204 5.554 16 7220 5.520 16 7236 5.549 16 7252 5.553 16 7268 5.550 16 7284 5.550 16 7300 5.547 16 7316 5.540 16 7332 5.529 16 7348 5.534 16 7364 5.531 16 7380 5.537 16 7396 5.534 16 7412 5.540 16 7428 5.545 16 7444 5.545 16 7460 5.545 16 7476 5.554 16 7492 5.554 16 7508 5.562 16 7524 5.563 16 7540 5.559 16 7556 5.569 16 sptable-1.0.pre20180612/lib/onedstds/spec16cal/hr9087red.dat000066400000000000000000000074401331023215600227160ustar00rootroot00000000000000# HR 9087 6036 5.246 16 6052 5.251 16 6068 5.248 16 6084 5.256 16 6100 5.258 16 6116 5.261 16 6132 5.264 16 6148 5.274 16 6164 5.278 16 6180 5.279 16 6196 5.284 16 6212 5.291 16 6228 5.298 16 6244 5.305 16 6260 5.310 16 6276 5.336 16 6292 5.335 16 6308 5.329 16 6324 5.324 16 6340 5.331 16 6356 5.330 16 6372 5.334 16 6388 5.329 16 6404 5.331 16 6420 5.332 16 6436 5.335 16 6452 5.342 16 6468 5.345 16 6484 5.348 16 6500 5.350 16 6516 5.359 16 6532 5.373 16 6548 5.458 16 6564 5.600 16 6580 5.432 16 6596 5.374 16 6612 5.369 16 6628 5.367 16 6644 5.371 16 6660 5.372 16 6676 5.377 16 6692 5.375 16 6708 5.377 16 6724 5.380 16 6740 5.382 16 6756 5.390 16 6772 5.392 16 6788 5.394 16 6804 5.397 16 6820 5.402 16 6836 5.405 16 6852 5.425 16 6868 5.572 16 6884 5.566 16 6900 5.531 16 6916 5.478 16 6932 5.455 16 6948 5.448 16 6964 5.443 16 6980 5.443 16 6996 5.452 16 7012 5.455 16 7028 5.459 16 7044 5.461 16 7060 5.466 16 7076 5.467 16 7092 5.470 16 7108 5.473 16 7124 5.479 16 7140 5.483 16 7156 5.496 16 7172 5.531 16 7188 5.565 16 7204 5.549 16 7220 5.524 16 7236 5.554 16 7252 5.554 16 7268 5.554 16 7284 5.552 16 7300 5.548 16 7316 5.543 16 7332 5.534 16 7348 5.532 16 7364 5.534 16 7380 5.535 16 7396 5.535 16 7412 5.537 16 7428 5.539 16 7444 5.542 16 7460 5.546 16 7476 5.550 16 7492 5.552 16 7508 5.555 16 7524 5.559 16 7540 5.563 16 7556 5.565 16 7572 5.571 16 7588 5.736 16 7604 6.493 16 7620 6.214 16 7636 6.173 16 7652 5.910 16 7668 5.712 16 7684 5.630 16 7700 5.603 16 7716 5.595 16 7732 5.597 16 7748 5.599 16 7764 5.610 16 7780 5.621 16 7796 5.608 16 7812 5.610 16 7828 5.614 16 7844 5.618 16 7860 5.619 16 7876 5.626 16 7892 5.633 16 7908 5.634 16 7924 5.634 16 7940 5.637 16 7956 5.642 16 7972 5.642 16 7988 5.644 16 8004 5.650 16 8020 5.652 16 8036 5.656 16 8052 5.656 16 8068 5.658 16 8084 5.663 16 8100 5.667 16 8116 5.675 16 8132 5.699 16 8148 5.726 16 8164 5.752 16 8180 5.747 16 8196 5.733 16 8212 5.717 16 8228 5.770 16 8244 5.733 16 8260 5.722 16 8276 5.740 16 8292 5.745 16 8308 5.736 16 8324 5.736 16 8340 5.730 16 8356 5.727 16 8372 5.726 16 8388 5.728 16 8404 5.732 16 8420 5.730 16 8436 5.743 16 8452 5.745 16 8468 5.744 16 8484 5.735 16 8500 5.758 16 8516 5.739 16 8532 5.747 16 8548 5.786 16 8564 5.733 16 8580 5.734 16 8596 5.808 16 8612 5.765 16 8628 5.710 16 8644 5.732 16 8660 5.833 16 8676 5.813 16 8692 5.718 16 8708 5.695 16 8724 5.722 16 8740 5.823 16 8756 5.885 16 8772 5.764 16 8788 5.710 16 8804 5.704 16 8820 5.709 16 8836 5.741 16 8852 5.859 16 8868 5.934 16 8884 5.795 16 8900 5.737 16 8916 5.730 16 8932 5.737 16 8948 5.755 16 8964 5.794 16 8980 5.836 16 8996 5.928 16 9012 6.069 16 9028 5.969 16 9044 5.818 16 9060 5.807 16 9076 5.835 16 9092 5.832 16 9108 5.827 16 9124 5.834 16 9140 5.848 16 9156 5.856 16 9172 5.850 16 9188 5.848 16 9204 5.863 16 9220 6.007 16 9236 6.064 16 9252 5.913 16 9268 5.871 16 9284 5.902 16 9300 5.968 16 9316 6.107 16 9332 6.213 16 9348 6.261 16 9364 6.214 16 9380 6.162 16 9396 5.998 16 9412 6.024 16 9428 6.120 16 9444 6.148 16 9460 6.120 16 9476 6.097 16 9492 6.115 16 9508 6.096 16 9524 6.167 16 9540 6.276 16 9556 6.285 16 9572 6.106 16 9588 6.086 16 9604 6.034 16 9620 6.023 16 9636 6.008 16 9652 5.992 16 9668 5.965 16 9684 5.926 16 9700 5.916 16 9716 5.931 16 9732 5.954 16 9748 5.971 16 9764 5.964 16 9780 5.941 16 9796 5.952 16 9812 5.932 16 9828 5.918 16 9844 5.916 16 9860 5.902 16 9876 5.915 16 9892 5.909 16 9908 5.909 16 9924 5.902 16 9940 5.913 16 9956 5.926 16 9972 5.913 16 9988 5.934 16 10004 5.943 16 10020 5.959 16 10036 6.051 16 10052 6.167 16 10068 6.039 16 10084 5.946 16 10100 5.931 16 10116 5.935 16 10132 5.932 16 10148 5.911 16 10164 5.926 16 10180 5.921 16 10196 5.944 16 10212 5.894 16 10228 5.896 16 10244 5.922 16 10260 5.928 16 10276 5.929 16 10292 5.932 16 10308 6.021 16 10324 5.896 16 10340 6.116 16 10356 6.013 16 10372 6.025 16 10388 5.976 16 10404 6.018 16 sptable-1.0.pre20180612/lib/onedstds/spec16cal/names.men000066400000000000000000000012451331023215600223710ustar00rootroot00000000000000# Table of alternate names mapped to the names in this directory hd30739 hr1544 hd30739blue hr1544blue hd30739red hr1544red hd74280 hr3454 hd74280blue hr3454blue hd74280red hr3454red hd100889 hr4468 hd100889blue hr4468blue hd100889red hr4468red hd114330 hr4963 hd114330blue hr4963blue hd114330red hr4963red hd129956 hr5501 hd129956blue hr5501blue hd129956red hr5501red hd15318 hr718 hd15318blue hr718blue hd15318red hr718red hd188350 hr7596 hd188350blue hr7596blue hd188350red hr7596red hd198001 hr7950 hd198001blue hr7950blue hd198001red hr7950red hd214923 hr8634 hd214923blue hr8634blue hd214923red hr8634red hd224926 hr9087 hd224926blue hr9087blue hd224926red hr9087red sptable-1.0.pre20180612/lib/onedstds/spec16cal/standards.men000066400000000000000000000017341331023215600232540ustar00rootroot00000000000000Standard stars in onedstds$spec16cal/: Combined red and blue 3300A-10300A: hd15318 hd74280 hd114330 hd188350 hd214923 hd30739 hd100889 hd129956 hd198001 hd224926 hr1544 hr4468 hr5501 hr7596 hr8634 hr3454 hr4963 hr718 hr7950 hr9087 Blue 3300A-7550A: hd15318blue hd74280blue hd114330blue hd188350blue hd214923blue hd30739blue hd100889blue hd129956blue hd198001blue hd224926blue hr1544blue hr4468blue hr5501blue hr7596blue hr8634blue hr3454blue hr4963blue hr718blue hr7950blue hr9087blue Red 6020A-10300A: hd15318red hd74280red hd114330red hd188350red hd214923red hd30739red hd100889red hd129956red hd198001red hd224926red hr1544red hr4468red hr5501red hr7596red hr8634red hr3454red hr4963red hr718red hr7950red hr9087red sptable-1.0.pre20180612/lib/onedstds/spec50cal/000077500000000000000000000000001331023215600205615ustar00rootroot00000000000000sptable-1.0.pre20180612/lib/onedstds/spec50cal/bd284211.dat000066400000000000000000000047461331023215600223350ustar00rootroot00000000000000# BD284211 3200.00 9.63 50. 3250.00 9.58 50. 3300.00 9.56 50. 3350.00 9.57 50. 3400.00 9.60 50. 3450.00 9.64 50. 3500.00 9.67 50. 3550.00 9.68 50. 3600.00 9.71 50. 3650.00 9.74 50. 3700.00 9.77 50. 3750.00 9.80 50. 3800.00 9.83 50. 3850.00 9.87 50. 3900.00 9.89 50. 3950.00 9.93 50. 4000.00 9.93 50. 4050.00 9.93 50. 4100.00 10.02 50. 4150.00 9.98 50. 4200.00 10.01 50. 4250.00 10.04 50. 4300.00 10.07 50. 4350.00 10.16 50. 4400.00 10.10 50. 4450.00 10.13 50. 4500.00 10.15 50. 4550.00 10.18 50. 4600.00 10.19 50. 4650.00 10.21 50. 4700.00 10.26 50. 4750.00 10.25 50. 4800.00 10.28 50. 4850.00 10.37 50. 4900.00 10.33 50. 4950.00 10.34 50. 5000.00 10.36 50. 5050.00 10.39 50. 5100.00 10.40 50. 5150.00 10.42 50. 5200.00 10.43 50. 5250.00 10.45 50. 5300.00 10.45 50. 5350.00 10.48 50. 5400.00 10.52 50. 5450.00 10.52 50. 5500.00 10.53 50. 5550.00 10.56 50. 5600.00 10.58 50. 5650.00 10.61 50. 5700.00 10.64 50. 5750.00 10.65 50. 5800.00 10.67 50. 5850.00 10.68 50. 5900.00 10.71 50. 5950.00 10.74 50. 6000.00 10.76 50. 6050.00 10.77 50. 6100.00 10.78 50. 6150.00 10.80 50. 6200.00 10.82 50. 6250.00 10.84 50. 6300.00 10.88 50. 6350.00 10.88 50. 6400.00 10.88 50. 6450.00 10.91 50. 6500.00 10.93 50. 6550.00 11.00 50. 6600.00 10.95 50. 6650.00 10.94 50. 6700.00 10.94 50. 6750.00 10.95 50. 6800.00 10.94 50. 6850.00 11.02 50. 6900.00 11.08 50. 6950.00 11.01 50. 7000.00 11.04 50. 7050.00 11.03 50. 7100.00 11.04 50. 7150.00 11.09 50. 7200.00 11.21 50. 7250.00 11.21 50. 7300.00 11.18 50. 7350 11.14 50 7400 11.13 50 7450 11.15 50 7500 11.16 50 7750 11.22 50 7800 11.23 50 7850 11.24 50 7900 11.26 50 7950 11.28 50 8000 11.26 50 8050 11.30 50 8600 11.33 50 8650 11.34 50 8700 11.33 50 8750 11.35 50 8800 11.35 50 8850 11.35 50 8900 11.36 50 9700 11.62 50 9750 11.63 50 9800 11.63 50 9850 11.59 50 9900 11.57 50 9950 11.63 50 10000 11.64 50 10050 11.71 50 10100 11.75 50 10150 11.73 50 10200 11.74 50 sptable-1.0.pre20180612/lib/onedstds/spec50cal/cygob2no9.dat000066400000000000000000000043611331023215600230720ustar00rootroot00000000000000# CygOB2No9 3200.00 15.10 50. 3250.00 15.24 50. 3300.00 15.14 50. 3350.00 14.95 50. 3400.00 14.83 50. 3450.00 14.67 50. 3500.00 14.50 50. 3550.00 14.42 50. 3600.00 14.30 50. 3650.00 14.19 50. 3700.00 14.09 50. 3750.00 13.93 50. 3800.00 13.82 50. 3850.00 13.70 50. 3900.00 13.62 50. 3950.00 13.57 50. 4000.00 13.46 50. 4050.00 13.32 50. 4100.00 13.24 50. 4150.00 13.12 50. 4200.00 13.07 50. 4250.00 12.98 50. 4300.00 12.90 50. 4350.00 12.82 50. 4400.00 12.74 50. 4450.00 12.65 50. 4500.00 12.50 50. 4550.00 12.41 50. 4600.00 12.33 50. 4650.00 12.15 50. 4700.00 12.10 50. 4750.00 12.14 50. 4800.00 12.05 50. 4850.00 11.99 50. 4900.00 11.91 50. 4950.00 11.80 50. 5000.00 11.70 50. 5050.00 11.62 50. 5100.00 11.50 50. 5150.00 11.40 50. 5200.00 11.31 50. 5250.00 11.20 50. 5300.00 11.10 50. 5350.00 11.03 50. 5400.00 11.01 50. 5450.00 10.91 50. 5500.00 10.81 50. 5550.00 10.71 50. 5600.00 10.63 50. 5650.00 10.57 50. 5700.00 10.51 50. 5750.00 10.45 50. 5800.00 10.43 50. 5850.00 10.33 50. 5900.00 10.32 50. 5950.00 10.26 50. 6000.00 10.22 50. 6050.00 10.15 50. 6100.00 10.09 50. 6150.00 10.09 50. 6200.00 10.08 50. 6250.00 10.01 50. 6300.00 10.04 50. 6350.00 9.94 50. 6400.00 9.88 50. 6450.00 9.84 50. 6500.00 9.80 50. 6550.00 9.63 50. 6600.00 9.64 50. 6650.00 9.61 50. 6700.00 9.54 50. 6750.00 9.50 50. 6800.00 9.45 50. 6850.00 9.48 50. 6900.00 9.49 50. 6950.00 9.38 50. 7000.00 9.33 50. 7050.00 9.27 50. 7100.00 9.21 50. 7150.00 9.23 50. 7200.00 9.31 50. 7250.00 9.26 50. 7300.00 9.21 50. 7350.00 9.12 50. 7400.00 9.08 50. 7450.00 9.03 50. 7500.00 8.98 50. 7550.00 8.96 50. 7600.00 9.41 50. 7650.00 9.28 50. 7700.00 8.94 50. 7750.00 8.84 50. 7800.00 8.77 50. 7850.00 8.70 50. 7900.00 8.68 50. 7950.00 8.64 50. 8000.00 8.61 50. 8050.00 8.58 50. 8100.00 8.55 50. sptable-1.0.pre20180612/lib/onedstds/spec50cal/eg81.dat000066400000000000000000000043541331023215600220250ustar00rootroot00000000000000# EG81 3200.00 12.58 50. 3250.00 12.52 50. 3300.00 12.51 50. 3350.00 12.50 50. 3400.00 12.55 50. 3450.00 12.58 50. 3500.00 12.61 50. 3550.00 12.62 50. 3600.00 12.66 50. 3650.00 12.68 50. 3700.00 12.72 50. 3750.00 12.71 50. 3800.00 12.76 50. 3850.00 12.78 50. 3900.00 12.80 50. 3950.00 12.83 50. 4000.00 12.82 50. 4050.00 12.81 50. 4100.00 12.91 50. 4150.00 12.84 50. 4200.00 12.83 50. 4250.00 12.84 50. 4300.00 12.87 50. 4350.00 13.01 50. 4400.00 12.94 50. 4450.00 12.97 50. 4500.00 12.96 50. 4550.00 12.98 50. 4600.00 12.98 50. 4650.00 13.01 50. 4700.00 13.05 50. 4750.00 13.04 50. 4800.00 13.07 50. 4850.00 13.20 50. 4900.00 13.15 50. 4950.00 13.12 50. 5000.00 13.16 50. 5050.00 13.17 50. 5100.00 13.19 50. 5150.00 13.22 50. 5200.00 13.23 50. 5250.00 13.22 50. 5300.00 13.24 50. 5350.00 13.25 50. 5400.00 13.27 50. 5450.00 13.27 50. 5500.00 13.29 50. 5550.00 13.30 50. 5600.00 13.29 50. 5650.00 13.33 50. 5700.00 13.33 50. 5750.00 13.34 50. 5800.00 13.35 50. 5850.00 13.38 50. 5900.00 13.45 50. 5950.00 13.42 50. 6000.00 13.43 50. 6050.00 13.45 50. 6100.00 13.46 50. 6150.00 13.51 50. 6200.00 13.54 50. 6250.00 13.56 50. 6300.00 13.57 50. 6350.00 13.53 50. 6400.00 13.56 50. 6450.00 13.53 50. 6500.00 13.54 50. 6550.00 13.62 50. 6600.00 13.55 50. 6650.00 13.57 50. 6700.00 13.60 50. 6750.00 13.59 50. 6800.00 13.60 50. 6850.00 13.63 50. 6900.00 13.69 50. 6950.00 13.57 50. 7000.00 13.55 50. 7050.00 13.52 50. 7100.00 13.58 50. 7150.00 13.63 50. 7200.00 13.67 50. 7250.00 13.58 50. 7300.00 13.55 50. 7350.00 13.46 50. 7400.00 13.45 50. 7450.00 13.43 50. 7500.00 13.45 50. 7550.00 13.41 50. 7600.00 13.85 50. 7650.00 13.80 50. 7700.00 13.52 50. 7750.00 13.44 50. 7800.00 13.43 50. 7850.00 13.42 50. 7900.00 13.43 50. 7950.00 13.43 50. 8000.00 13.35 50. 8050.00 13.36 50. 8100.00 13.34 50. sptable-1.0.pre20180612/lib/onedstds/spec50cal/feige110.dat000066400000000000000000000047461331023215600225670ustar00rootroot00000000000000# Feige110 3200.00 11.11 50. 3250.00 11.01 50. 3300.00 11.00 50. 3350.00 11.01 50. 3400.00 11.04 50. 3450.00 11.07 50. 3500.00 11.10 50. 3550.00 11.12 50. 3600.00 11.16 50. 3650.00 11.18 50. 3700.00 11.18 50. 3750.00 11.22 50. 3800.00 11.21 50. 3850.00 11.21 50. 3900.00 11.27 50. 3950.00 11.36 50. 4000.00 11.30 50. 4050.00 11.28 50. 4100.00 11.41 50. 4150.00 11.33 50. 4200.00 11.35 50. 4250.00 11.37 50. 4300.00 11.41 50. 4350.00 11.52 50. 4400.00 11.44 50. 4450.00 11.46 50. 4500.00 11.49 50. 4550.00 11.51 50. 4600.00 11.51 50. 4650.00 11.54 50. 4700.00 11.58 50. 4750.00 11.58 50. 4800.00 11.60 50. 4850.00 11.73 50. 4900.00 11.67 50. 4950.00 11.67 50. 5000.00 11.68 50. 5050.00 11.71 50. 5100.00 11.72 50. 5150.00 11.75 50. 5200.00 11.75 50. 5250.00 11.78 50. 5300.00 11.79 50. 5350.00 11.81 50. 5400.00 11.87 50. 5450.00 11.85 50. 5500.00 11.87 50. 5550.00 11.87 50. 5600.00 11.90 50. 5650.00 11.92 50. 5700.00 11.95 50. 5750.00 11.96 50. 5800.00 11.98 50. 5850.00 12.00 50. 5900.00 12.01 50. 5950.00 12.06 50. 6000.00 12.05 50. 6050.00 12.08 50. 6100.00 12.09 50. 6150.00 12.12 50. 6200.00 12.15 50. 6250.00 12.13 50. 6300.00 12.20 50. 6350.00 12.19 50. 6400.00 12.19 50. 6450.00 12.22 50. 6500.00 12.23 50. 6550.00 12.32 50. 6600.00 12.26 50. 6650.00 12.24 50. 6700.00 12.25 50. 6750.00 12.28 50. 6800.00 12.25 50. 6850.00 12.33 50. 6900.00 12.40 50. 6950.00 12.32 50. 7000.00 12.34 50. 7050.00 12.35 50. 7100.00 12.35 50. 7150.00 12.40 50. 7200.00 12.47 50. 7250.00 12.47 50. 7300.00 12.45 50. 7350 12.45 50 7400 12.44 50 7450 12.45 50 7500 12.46 50 7750 12.53 50 7800 12.53 50 7850 12.55 50 7900 12.57 50 7950 12.58 50 8000 12.57 50 8050 12.61 50 8600 12.64 50 8650 12.65 50 8700 12.64 50 8750 12.66 50 8800 12.67 50 8850 12.68 50 8900 12.68 50 9700 12.94 50 9750 12.99 50 9800 12.95 50 9850 12.86 50 9900 12.86 50 9950 13.00 50 10000 13.02 50 10050 13.01 50 10100 12.98 50 10150 13.00 50 10200 13.01 50 sptable-1.0.pre20180612/lib/onedstds/spec50cal/feige34.dat000066400000000000000000000047451331023215600225130ustar00rootroot00000000000000# Feige34 3200.00 10.29 50. 3250.00 10.24 50. 3300.00 10.24 50. 3350.00 10.24 50. 3400.00 10.27 50. 3450.00 10.31 50. 3500.00 10.34 50. 3550.00 10.35 50. 3600.00 10.38 50. 3650.00 10.41 50. 3700.00 10.42 50. 3750.00 10.47 50. 3800.00 10.50 50. 3850.00 10.53 50. 3900.00 10.57 50. 3950.00 10.60 50. 4000.00 10.58 50. 4050.00 10.59 50. 4100.00 10.69 50. 4150.00 10.64 50. 4200.00 10.67 50. 4250.00 10.69 50. 4300.00 10.72 50. 4350.00 10.82 50. 4400.00 10.76 50. 4450.00 10.79 50. 4500.00 10.81 50. 4550.00 10.83 50. 4600.00 10.85 50. 4650.00 10.87 50. 4700.00 10.92 50. 4750.00 10.93 50. 4800.00 10.94 50. 4850.00 11.05 50. 4900.00 11.00 50. 4950.00 11.00 50. 5000.00 11.03 50. 5050.00 11.06 50. 5100.00 11.08 50. 5150.00 11.10 50. 5200.00 11.11 50. 5250.00 11.14 50. 5300.00 11.15 50. 5350.00 11.18 50. 5400.00 11.22 50. 5450.00 11.22 50. 5500.00 11.24 50. 5550.00 11.25 50. 5600.00 11.26 50. 5650.00 11.28 50. 5700.00 11.31 50. 5750.00 11.33 50. 5800.00 11.34 50. 5850.00 11.36 50. 5900.00 11.39 50. 5950.00 11.40 50. 6000.00 11.42 50. 6050.00 11.44 50. 6100.00 11.46 50. 6150.00 11.48 50. 6200.00 11.49 50. 6250.00 11.52 50. 6300.00 11.56 50. 6350.00 11.55 50. 6400.00 11.56 50. 6450.00 11.58 50. 6500.00 11.60 50. 6550.00 11.69 50. 6600.00 11.64 50. 6650.00 11.63 50. 6700.00 11.65 50. 6750.00 11.66 50. 6800.00 11.67 50. 6850.00 11.72 50. 6900.00 11.78 50. 6950.00 11.71 50. 7000.00 11.72 50. 7050.00 11.70 50. 7100.00 11.74 50. 7150.00 11.78 50. 7200.00 11.83 50. 7250.00 11.82 50. 7300.00 11.82 50. 7350 11.79 50 7400 11.79 50 7450 11.81 50 7500 11.81 50 7750 11.86 50 7800 11.89 50 7850 11.88 50 7900 11.88 50 7950 11.91 50 8000 11.88 50 8050 11.91 50 8600 11.94 50 8650 11.94 50 8700 11.93 50 8750 11.93 50 8800 11.94 50 8850 11.93 50 8900 11.95 50 9700 12.14 50 9750 12.14 50 9800 12.18 50 9850 12.12 50 9900 12.17 50 9950 12.23 50 10000 12.27 50 10050 12.28 50 10100 12.31 50 10150 12.29 50 10200 12.29 50 sptable-1.0.pre20180612/lib/onedstds/spec50cal/feige66.dat000066400000000000000000000047451331023215600225200ustar00rootroot00000000000000# Feige66 3200.00 9.71 50. 3250.00 9.70 50. 3300.00 9.72 50. 3350.00 9.72 50. 3400.00 9.75 50. 3450.00 9.78 50. 3500.00 9.79 50. 3550.00 9.80 50. 3600.00 9.81 50. 3650.00 9.85 50. 3700.00 9.87 50. 3750.00 9.88 50. 3800.00 9.92 50. 3850.00 9.92 50. 3900.00 9.96 50. 3950.00 9.97 50. 4000.00 9.92 50. 4050.00 9.90 50. 4100.00 10.06 50. 4150.00 9.95 50. 4200.00 9.96 50. 4250.00 9.98 50. 4300.00 10.02 50. 4350.00 10.16 50. 4400.00 10.05 50. 4450.00 10.08 50. 4500.00 10.10 50. 4550.00 10.11 50. 4600.00 10.13 50. 4650.00 10.16 50. 4700.00 10.18 50. 4750.00 10.21 50. 4800.00 10.23 50. 4850.00 10.38 50. 4900.00 10.30 50. 4950.00 10.29 50. 5000.00 10.32 50. 5050.00 10.35 50. 5100.00 10.36 50. 5150.00 10.39 50. 5200.00 10.41 50. 5250.00 10.42 50. 5300.00 10.44 50. 5350.00 10.46 50. 5400.00 10.47 50. 5450.00 10.49 50. 5500.00 10.51 50. 5550.00 10.53 50. 5600.00 10.55 50. 5650.00 10.57 50. 5700.00 10.59 50. 5750.00 10.61 50. 5800.00 10.62 50. 5850.00 10.65 50. 5900.00 10.67 50. 5950.00 10.69 50. 6000.00 10.72 50. 6050.00 10.75 50. 6100.00 10.76 50. 6150.00 10.78 50. 6200.00 10.80 50. 6250.00 10.85 50. 6300.00 10.87 50. 6350.00 10.87 50. 6400.00 10.89 50. 6450.00 10.92 50. 6500.00 10.93 50. 6550.00 11.04 50. 6600.00 10.97 50. 6650.00 10.96 50. 6700.00 10.97 50. 6750.00 10.97 50. 6800.00 10.97 50. 6850.00 11.03 50. 6900.00 11.08 50. 6950.00 11.03 50. 7000.00 11.02 50. 7050.00 11.02 50. 7100.00 11.03 50. 7150.00 11.06 50. 7200.00 11.13 50. 7250.00 11.14 50. 7300.00 11.13 50. 7350 11.13 50 7400 11.13 50 7450 11.14 50 7500 11.15 50 7750 11.19 50 7800 11.23 50 7850 11.22 50 7900 11.22 50 7950 11.25 50 8000 11.23 50 8050 11.26 50 8600 11.29 50 8650 11.29 50 8700 11.30 50 8750 11.29 50 8800 11.30 50 8850 11.30 50 8900 11.30 50 9700 11.53 50 9750 11.53 50 9800 11.57 50 9850 11.54 50 9900 11.59 50 9950 11.64 50 10000 11.66 50 10050 11.77 50 10100 11.78 50 10150 11.74 50 10200 11.77 50 sptable-1.0.pre20180612/lib/onedstds/spec50cal/feige67.dat000066400000000000000000000047451331023215600225210ustar00rootroot00000000000000# Feige67 3200.00 10.91 50. 3250.00 10.83 50. 3300.00 10.86 50. 3350.00 10.85 50. 3400.00 10.88 50. 3450.00 10.91 50. 3500.00 10.94 50. 3550.00 10.95 50. 3600.00 10.99 50. 3650.00 11.02 50. 3700.00 11.04 50. 3750.00 11.07 50. 3800.00 11.10 50. 3850.00 11.13 50. 3900.00 11.18 50. 3950.00 11.21 50. 4000.00 11.20 50. 4050.00 11.20 50. 4100.00 11.29 50. 4150.00 11.25 50. 4200.00 11.28 50. 4250.00 11.30 50. 4300.00 11.33 50. 4350.00 11.42 50. 4400.00 11.36 50. 4450.00 11.39 50. 4500.00 11.42 50. 4550.00 11.46 50. 4600.00 11.47 50. 4650.00 11.49 50. 4700.00 11.55 50. 4750.00 11.55 50. 4800.00 11.57 50. 4850.00 11.68 50. 4900.00 11.63 50. 4950.00 11.63 50. 5000.00 11.66 50. 5050.00 11.68 50. 5100.00 11.71 50. 5150.00 11.73 50. 5200.00 11.75 50. 5250.00 11.78 50. 5300.00 11.79 50. 5350.00 11.83 50. 5400.00 11.86 50. 5450.00 11.87 50. 5500.00 11.87 50. 5550.00 11.89 50. 5600.00 11.89 50. 5650.00 11.92 50. 5700.00 11.95 50. 5750.00 11.96 50. 5800.00 11.98 50. 5850.00 11.99 50. 5900.00 12.02 50. 5950.00 12.05 50. 6000.00 12.06 50. 6050.00 12.08 50. 6100.00 12.11 50. 6150.00 12.15 50. 6200.00 12.16 50. 6250.00 12.19 50. 6300.00 12.21 50. 6350.00 12.22 50. 6400.00 12.23 50. 6450.00 12.27 50. 6500.00 12.28 50. 6550.00 12.38 50. 6600.00 12.31 50. 6650.00 12.30 50. 6700.00 12.31 50. 6750.00 12.32 50. 6800.00 12.32 50. 6850.00 12.38 50. 6900.00 12.43 50. 6950.00 12.39 50. 7000.00 12.39 50. 7050.00 12.39 50. 7100.00 12.40 50. 7150.00 12.42 50. 7200.00 12.50 50. 7250.00 12.50 50. 7300.00 12.50 50. 7350 12.46 50 7400 12.46 50 7450 12.48 50 7500 12.48 50 7750 12.53 50 7800 12.56 50 7850 12.56 50 7900 12.57 50 7950 12.59 50 8000 12.57 50 8050 12.61 50 8600 12.64 50 8650 12.65 50 8700 12.63 50 8750 12.64 50 8800 12.65 50 8850 12.63 50 8900 12.65 50 9700 12.90 50 9750 12.92 50 9800 12.94 50 9850 12.89 50 9900 12.94 50 9950 13.02 50 10000 13.06 50 10050 13.08 50 10100 13.10 50 10150 13.12 50 10200 13.15 50 sptable-1.0.pre20180612/lib/onedstds/spec50cal/g191b2b.dat000066400000000000000000000047451331023215600223340ustar00rootroot00000000000000# G191B2B 3200.00 10.91 50. 3250.00 10.94 50. 3300.00 10.90 50. 3350.00 10.90 50. 3400.00 10.92 50. 3450.00 10.95 50. 3500.00 10.99 50. 3550.00 10.99 50. 3600.00 11.02 50. 3650.00 11.04 50. 3700.00 11.06 50. 3750.00 11.11 50. 3800.00 11.14 50. 3850.00 11.16 50. 3900.00 11.19 50. 3950.00 11.23 50. 4000.00 11.21 50. 4050.00 11.21 50. 4100.00 11.31 50. 4150.00 11.25 50. 4200.00 11.26 50. 4250.00 11.30 50. 4300.00 11.35 50. 4350.00 11.44 50. 4400.00 11.37 50. 4450.00 11.38 50. 4500.00 11.40 50. 4550.00 11.41 50. 4600.00 11.44 50. 4650.00 11.46 50. 4700.00 11.48 50. 4750.00 11.52 50. 4800.00 11.55 50. 4850.00 11.68 50. 4900.00 11.64 50. 4950.00 11.62 50. 5000.00 11.64 50. 5050.00 11.66 50. 5100.00 11.67 50. 5150.00 11.69 50. 5200.00 11.72 50. 5250.00 11.73 50. 5300.00 11.76 50. 5350.00 11.78 50. 5400.00 11.80 50. 5450.00 11.82 50. 5500.00 11.85 50. 5550.00 11.85 50. 5600.00 11.86 50. 5650.00 11.89 50. 5700.00 11.90 50. 5750.00 11.92 50. 5800.00 11.93 50. 5850.00 11.95 50. 5900.00 11.97 50. 5950.00 11.99 50. 6000.00 12.01 50. 6050.00 12.04 50. 6100.00 12.05 50. 6150.00 12.08 50. 6200.00 12.10 50. 6250.00 12.12 50. 6300.00 12.16 50. 6350.00 12.17 50. 6400.00 12.19 50. 6450.00 12.21 50. 6500.00 12.23 50. 6550.00 12.31 50. 6600.00 12.26 50. 6650.00 12.24 50. 6700.00 12.24 50. 6750.00 12.25 50. 6800.00 12.26 50. 6850.00 12.32 50. 6900.00 12.36 50. 6950.00 12.30 50. 7000.00 12.31 50. 7050.00 12.33 50. 7100.00 12.34 50. 7150.00 12.36 50. 7200.00 12.47 50. 7250.00 12.46 50. 7300.00 12.43 50. 7350 12.43 50 7400 12.42 50 7450 12.44 50 7500 12.45 50 7750 12.51 50 7800 12.53 50 7850 12.53 50 7900 12.55 50 7950 12.57 50 8000 12.56 50 8050 12.59 50 8600 12.63 50 8650 12.62 50 8700 12.63 50 8750 12.64 50 8800 12.64 50 8850 12.65 50 8900 12.66 50 9700 12.93 50 9750 12.95 50 9800 12.95 50 9850 12.87 50 9900 12.88 50 9950 13.00 50 10000 12.99 50 10050 12.98 50 10100 12.98 50 10150 12.96 50 10200 12.95 50 sptable-1.0.pre20180612/lib/onedstds/spec50cal/gd140.dat000066400000000000000000000047431331023215600221020ustar00rootroot00000000000000# GD140 3200.00 12.17 50. 3250.00 12.17 50. 3300.00 12.13 50. 3350.00 12.14 50. 3400.00 12.18 50. 3450.00 12.20 50. 3500.00 12.22 50. 3550.00 12.16 50. 3600.00 12.19 50. 3650.00 12.23 50. 3700.00 12.27 50. 3750.00 12.27 50. 3800.00 12.28 50. 3850.00 12.32 50. 3900.00 12.34 50. 3950.00 12.40 50. 4000.00 12.30 50. 4050.00 12.21 50. 4100.00 12.54 50. 4150.00 12.26 50. 4200.00 12.14 50. 4250.00 12.15 50. 4300.00 12.35 50. 4350.00 12.64 50. 4400.00 12.29 50. 4450.00 12.19 50. 4500.00 12.17 50. 4550.00 12.18 50. 4600.00 12.21 50. 4650.00 12.22 50. 4700.00 12.26 50. 4750.00 12.32 50. 4800.00 12.43 50. 4850.00 12.80 50. 4900.00 12.60 50. 4950.00 12.41 50. 5000.00 12.38 50. 5050.00 12.39 50. 5100.00 12.41 50. 5150.00 12.42 50. 5200.00 12.44 50. 5250.00 12.46 50. 5300.00 12.46 50. 5350.00 12.49 50. 5400.00 12.52 50. 5450.00 12.52 50. 5500.00 12.51 50. 5550.00 12.50 50. 5600.00 12.49 50. 5650.00 12.53 50. 5700.00 12.56 50. 5750.00 12.58 50. 5800.00 12.61 50. 5850.00 12.62 50. 5900.00 12.65 50. 5950.00 12.68 50. 6000.00 12.72 50. 6050.00 12.75 50. 6100.00 12.76 50. 6150.00 12.79 50. 6200.00 12.82 50. 6250.00 12.84 50. 6300.00 12.86 50. 6350.00 12.87 50. 6400.00 12.89 50. 6450.00 12.93 50. 6500.00 13.05 50. 6550.00 13.26 50. 6600.00 13.14 50. 6650.00 13.01 50. 6700.00 12.94 50. 6750.00 12.93 50. 6800.00 12.96 50. 6850.00 13.00 50. 6900.00 13.04 50. 6950.00 12.99 50. 7000.00 12.97 50. 7050.00 12.98 50. 7100.00 12.99 50. 7150.00 13.00 50. 7200.00 13.08 50. 7250.00 13.10 50. 7300.00 13.11 50. 7350 13.04 50 7400 13.03 50 7450 13.05 50 7500 13.06 50 7750 13.09 50 7800 13.13 50 7850 13.12 50 7900 13.11 50 7950 13.15 50 8000 13.12 50 8050 13.15 50 8600 13.18 50 8650 13.18 50 8700 13.18 50 8750 13.17 50 8800 13.17 50 8850 13.16 50 8900 13.18 50 9700 13.41 50 9750 13.41 50 9800 13.42 50 9850 13.40 50 9900 13.48 50 9950 13.60 50 10000 13.71 50 10050 13.68 50 10100 13.68 50 10150 13.65 50 10200 13.73 50 sptable-1.0.pre20180612/lib/onedstds/spec50cal/hd192281.dat000066400000000000000000000043601331023215600223400ustar00rootroot00000000000000# HD192281 3200.00 8.35 50. 3250.00 8.27 50. 3300.00 8.19 50. 3350.00 8.14 50. 3400.00 8.11 50. 3450.00 8.11 50. 3500.00 8.08 50. 3550.00 8.02 50. 3600.00 8.00 50. 3650.00 8.00 50. 3700.00 7.98 50. 3750.00 7.97 50. 3800.00 7.91 50. 3850.00 7.90 50. 3900.00 7.90 50. 3950.00 7.92 50. 4000.00 7.86 50. 4050.00 7.81 50. 4100.00 7.84 50. 4150.00 7.78 50. 4200.00 7.79 50. 4250.00 7.78 50. 4300.00 7.77 50. 4350.00 7.80 50. 4400.00 7.75 50. 4450.00 7.75 50. 4500.00 7.71 50. 4550.00 7.70 50. 4600.00 7.68 50. 4650.00 7.63 50. 4700.00 7.65 50. 4750.00 7.66 50. 4800.00 7.65 50. 4850.00 7.69 50. 4900.00 7.63 50. 4950.00 7.61 50. 5000.00 7.60 50. 5050.00 7.58 50. 5100.00 7.56 50. 5150.00 7.54 50. 5200.00 7.51 50. 5250.00 7.49 50. 5300.00 7.47 50. 5350.00 7.47 50. 5400.00 7.50 50. 5450.00 7.47 50. 5500.00 7.45 50. 5550.00 7.44 50. 5600.00 7.44 50. 5650.00 7.44 50. 5700.00 7.43 50. 5750.00 7.44 50. 5800.00 7.44 50. 5850.00 7.41 50. 5900.00 7.43 50. 5950.00 7.42 50. 6000.00 7.42 50. 6050.00 7.41 50. 6100.00 7.40 50. 6150.00 7.42 50. 6200.00 7.42 50. 6250.00 7.42 50. 6300.00 7.45 50. 6350.00 7.41 50. 6400.00 7.41 50. 6450.00 7.41 50. 6500.00 7.41 50. 6550.00 7.45 50. 6600.00 7.39 50. 6650.00 7.38 50. 6700.00 7.37 50. 6750.00 7.35 50. 6800.00 7.34 50. 6850.00 7.40 50. 6900.00 7.44 50. 6950.00 7.36 50. 7000.00 7.37 50. 7050.00 7.36 50. 7100.00 7.35 50. 7150.00 7.39 50. 7200.00 7.46 50. 7250.00 7.45 50. 7300.00 7.42 50. 7350.00 7.38 50. 7400.00 7.36 50. 7450.00 7.36 50. 7500.00 7.34 50. 7550.00 7.35 50. 7600.00 7.85 50. 7650.00 7.69 50. 7700.00 7.37 50. 7750.00 7.33 50. 7800.00 7.32 50. 7850.00 7.32 50. 7900.00 7.33 50. 7950.00 7.31 50. 8000.00 7.33 50. 8050.00 7.32 50. 8100.00 7.34 50. sptable-1.0.pre20180612/lib/onedstds/spec50cal/hd217086.dat000066400000000000000000000043601331023215600223410ustar00rootroot00000000000000# HD217086 3200.00 8.95 50. 3250.00 8.85 50. 3300.00 8.76 50. 3350.00 8.70 50. 3400.00 8.65 50. 3450.00 8.65 50. 3500.00 8.60 50. 3550.00 8.53 50. 3600.00 8.52 50. 3650.00 8.49 50. 3700.00 8.47 50. 3750.00 8.45 50. 3800.00 8.37 50. 3850.00 8.33 50. 3900.00 8.31 50. 3950.00 8.30 50. 4000.00 8.24 50. 4050.00 8.19 50. 4100.00 8.23 50. 4150.00 8.15 50. 4200.00 8.15 50. 4250.00 8.12 50. 4300.00 8.11 50. 4350.00 8.14 50. 4400.00 8.08 50. 4450.00 8.08 50. 4500.00 8.00 50. 4550.00 7.97 50. 4600.00 7.94 50. 4650.00 7.91 50. 4700.00 7.91 50. 4750.00 7.89 50. 4800.00 7.88 50. 4850.00 7.92 50. 4900.00 7.86 50. 4950.00 7.81 50. 5000.00 7.79 50. 5050.00 7.76 50. 5100.00 7.72 50. 5150.00 7.69 50. 5200.00 7.64 50. 5250.00 7.61 50. 5300.00 7.58 50. 5350.00 7.56 50. 5400.00 7.58 50. 5450.00 7.54 50. 5500.00 7.51 50. 5550.00 7.48 50. 5600.00 7.48 50. 5650.00 7.46 50. 5700.00 7.45 50. 5750.00 7.45 50. 5800.00 7.47 50. 5850.00 7.42 50. 5900.00 7.44 50. 5950.00 7.40 50. 6000.00 7.40 50. 6050.00 7.39 50. 6100.00 7.37 50. 6150.00 7.37 50. 6200.00 7.39 50. 6250.00 7.38 50. 6300.00 7.41 50. 6350.00 7.37 50. 6400.00 7.35 50. 6450.00 7.33 50. 6500.00 7.35 50. 6550.00 7.39 50. 6600.00 7.31 50. 6650.00 7.27 50. 6700.00 7.25 50. 6750.00 7.24 50. 6800.00 7.21 50. 6850.00 7.29 50. 6900.00 7.32 50. 6950.00 7.26 50. 7000.00 7.24 50. 7050.00 7.22 50. 7100.00 7.20 50. 7150.00 7.24 50. 7200.00 7.37 50. 7250.00 7.37 50. 7300.00 7.32 50. 7350.00 7.24 50. 7400.00 7.21 50. 7450.00 7.19 50. 7500.00 7.16 50. 7550.00 7.16 50. 7600.00 7.71 50. 7650.00 7.58 50. 7700.00 7.17 50. 7750.00 7.14 50. 7800.00 7.11 50. 7850.00 7.12 50. 7900.00 7.13 50. 7950.00 7.12 50. 8000.00 7.09 50. 8050.00 7.07 50. 8100.00 7.09 50. sptable-1.0.pre20180612/lib/onedstds/spec50cal/hilt600.dat000066400000000000000000000047501331023215600224470ustar00rootroot00000000000000# Hiltner600 3200.00 11.10 50. 3250.00 10.98 50. 3300.00 10.97 50. 3350.00 10.90 50. 3400.00 10.89 50. 3450.00 10.91 50. 3500.00 10.91 50. 3550.00 10.86 50. 3600.00 10.82 50. 3650.00 10.84 50. 3700.00 10.83 50. 3750.00 10.75 50. 3800.00 10.64 50. 3850.00 10.57 50. 3900.00 10.57 50. 3950.00 10.58 50. 4000.00 10.51 50. 4050.00 10.46 50. 4100.00 10.58 50. 4150.00 10.48 50. 4200.00 10.45 50. 4250.00 10.45 50. 4300.00 10.46 50. 4350.00 10.55 50. 4400.00 10.46 50. 4450.00 10.46 50. 4500.00 10.44 50. 4550.00 10.43 50. 4600.00 10.44 50. 4650.00 10.44 50. 4700.00 10.44 50. 4750.00 10.45 50. 4800.00 10.45 50. 4850.00 10.55 50. 4900.00 10.48 50. 4950.00 10.44 50. 5000.00 10.45 50. 5050.00 10.46 50. 5100.00 10.45 50. 5150.00 10.45 50. 5200.00 10.44 50. 5250.00 10.44 50. 5300.00 10.43 50. 5350.00 10.43 50. 5400.00 10.41 50. 5450.00 10.43 50. 5500.00 10.42 50. 5550.00 10.42 50. 5600.00 10.42 50. 5650.00 10.44 50. 5700.00 10.45 50. 5750.00 10.44 50. 5800.00 10.44 50. 5850.00 10.44 50. 5900.00 10.50 50. 5950.00 10.48 50. 6000.00 10.49 50. 6050.00 10.50 50. 6100.00 10.51 50. 6150.00 10.54 50. 6200.00 10.54 50. 6250.00 10.56 50. 6300.00 10.58 50. 6350.00 10.57 50. 6400.00 10.58 50. 6450.00 10.57 50. 6500.00 10.58 50. 6550.00 10.67 50. 6600.00 10.60 50. 6650.00 10.56 50. 6700.00 10.57 50. 6750.00 10.56 50. 6800.00 10.55 50. 6850.00 10.61 50. 6900.00 10.63 50. 6950.00 10.55 50. 7000.00 10.53 50. 7050.00 10.55 50. 7100.00 10.52 50. 7150.00 10.55 50. 7200.00 10.63 50. 7250.00 10.61 50. 7300.00 10.60 50. 7350 10.57 50 7400 10.56 50 7450 10.56 50 7500 10.56 50 7750 10.58 50 7800 10.60 50 7850 10.57 50 7900 10.60 50 7950 10.60 50 8000 10.59 50 8050 10.62 50 8600 10.58 50 8650 10.57 50 8700 10.51 50 8750 10.57 50 8800 10.51 50 8850 10.55 50 8900 10.52 50 9700 10.68 50 9750 10.66 50 9800 10.67 50 9850 10.61 50 9900 10.58 50 9950 10.61 50 10000 10.61 50 10050 10.69 50 10100 10.63 50 10150 10.59 50 10200 10.53 50 sptable-1.0.pre20180612/lib/onedstds/spec50cal/hz14.dat000066400000000000000000000043541331023215600220470ustar00rootroot00000000000000# HZ14 3200.00 13.38 50. 3250.00 13.39 50. 3300.00 13.36 50. 3350.00 13.36 50. 3400.00 13.37 50. 3450.00 13.41 50. 3500.00 13.42 50. 3550.00 13.45 50. 3600.00 13.47 50. 3650.00 13.49 50. 3700.00 13.49 50. 3750.00 13.54 50. 3800.00 13.57 50. 3850.00 13.59 50. 3900.00 13.61 50. 3950.00 13.64 50. 4000.00 13.57 50. 4050.00 13.51 50. 4100.00 13.79 50. 4150.00 13.54 50. 4200.00 13.46 50. 4250.00 13.50 50. 4300.00 13.65 50. 4350.00 13.91 50. 4400.00 13.61 50. 4450.00 13.56 50. 4500.00 13.54 50. 4550.00 13.56 50. 4600.00 13.57 50. 4650.00 13.59 50. 4700.00 13.61 50. 4750.00 13.66 50. 4800.00 13.76 50. 4850.00 14.10 50. 4900.00 13.96 50. 4950.00 13.84 50. 5000.00 13.83 50. 5050.00 13.81 50. 5100.00 13.82 50. 5150.00 13.83 50. 5200.00 13.86 50. 5250.00 13.89 50. 5300.00 13.90 50. 5350.00 13.94 50. 5400.00 13.97 50. 5450.00 13.98 50. 5500.00 14.00 50. 5550.00 14.00 50. 5600.00 14.05 50. 5650.00 14.07 50. 5700.00 14.10 50. 5750.00 14.11 50. 5800.00 14.12 50. 5850.00 14.11 50. 5900.00 14.11 50. 5950.00 14.15 50. 6000.00 14.16 50. 6050.00 14.19 50. 6100.00 14.22 50. 6150.00 14.23 50. 6200.00 14.25 50. 6250.00 14.29 50. 6300.00 14.30 50. 6350.00 14.33 50. 6400.00 14.34 50. 6450.00 14.36 50. 6500.00 14.43 50. 6550.00 14.63 50. 6600.00 14.52 50. 6650.00 14.42 50. 6700.00 14.39 50. 6750.00 14.40 50. 6800.00 14.41 50. 6850.00 14.47 50. 6900.00 14.49 50. 6950.00 14.47 50. 7000.00 14.45 50. 7050.00 14.45 50. 7100.00 14.50 50. 7150.00 14.50 50. 7200.00 14.62 50. 7250.00 14.58 50. 7300.00 14.53 50. 7350.00 14.57 50. 7400.00 14.61 50. 7450.00 14.57 50. 7500.00 14.65 50. 7550.00 14.62 50. 7600.00 14.99 50. 7650.00 14.95 50. 7700.00 14.65 50. 7750.00 14.65 50. 7800.00 14.57 50. 7850.00 14.64 50. 7900.00 14.69 50. 7950.00 14.59 50. 8000.00 14.61 50. 8050.00 14.77 50. 8100.00 14.97 50. sptable-1.0.pre20180612/lib/onedstds/spec50cal/hz44.dat000066400000000000000000000047421331023215600220530ustar00rootroot00000000000000# HZ44 3200.00 10.95 50. 3250.00 10.86 50. 3300.00 10.86 50. 3350.00 10.90 50. 3400.00 10.90 50. 3450.00 10.94 50. 3500.00 10.96 50. 3550.00 10.95 50. 3600.00 10.98 50. 3650.00 10.99 50. 3700.00 11.02 50. 3750.00 11.02 50. 3800.00 11.10 50. 3850.00 11.09 50. 3900.00 11.12 50. 3950.00 11.15 50. 4000.00 11.17 50. 4050.00 11.16 50. 4100.00 11.25 50. 4150.00 11.20 50. 4200.00 11.21 50. 4250.00 11.21 50. 4300.00 11.25 50. 4350.00 11.37 50. 4400.00 11.32 50. 4450.00 11.36 50. 4500.00 11.35 50. 4550.00 11.38 50. 4600.00 11.37 50. 4650.00 11.41 50. 4700.00 11.45 50. 4750.00 11.41 50. 4800.00 11.44 50. 4850.00 11.57 50. 4900.00 11.53 50. 4950.00 11.51 50. 5000.00 11.54 50. 5050.00 11.55 50. 5100.00 11.56 50. 5150.00 11.59 50. 5200.00 11.59 50. 5250.00 11.62 50. 5300.00 11.64 50. 5350.00 11.66 50. 5400.00 11.73 50. 5450.00 11.71 50. 5500.00 11.72 50. 5550.00 11.74 50. 5600.00 11.75 50. 5650.00 11.77 50. 5700.00 11.80 50. 5750.00 11.81 50. 5800.00 11.82 50. 5850.00 11.86 50. 5900.00 11.89 50. 5950.00 11.88 50. 6000.00 11.88 50. 6050.00 11.91 50. 6100.00 11.93 50. 6150.00 11.95 50. 6200.00 11.97 50. 6250.00 11.99 50. 6300.00 12.03 50. 6350.00 12.04 50. 6400.00 12.06 50. 6450.00 12.08 50. 6500.00 12.09 50. 6550.00 12.20 50. 6600.00 12.13 50. 6650.00 12.13 50. 6700.00 12.16 50. 6750.00 12.13 50. 6800.00 12.15 50. 6850.00 12.21 50. 6900.00 12.27 50. 6950.00 12.20 50. 7000.00 12.23 50. 7050.00 12.25 50. 7100.00 12.23 50. 7150.00 12.29 50. 7200.00 12.36 50. 7250.00 12.36 50. 7300.00 12.35 50. 7350 12.30 50 7400 12.29 50 7450 12.31 50 7500 12.32 50 7750 12.37 50 7800 12.41 50 7850 12.40 50 7900 12.41 50 7950 12.44 50 8000 12.41 50 8050 12.45 50 8600 12.49 50 8650 12.49 50 8700 12.48 50 8750 12.48 50 8800 12.49 50 8850 12.48 50 8900 12.49 50 9700 12.75 50 9750 12.73 50 9800 12.76 50 9850 12.73 50 9900 12.78 50 9950 12.84 50 10000 12.93 50 10050 12.95 50 10100 12.98 50 10150 12.95 50 10200 12.97 50 sptable-1.0.pre20180612/lib/onedstds/spec50cal/names.men000066400000000000000000000002301331023215600223600ustar00rootroot00000000000000# Table of alternate names mapped to the names in this directory eg158 feige110 eg20 feige24 eg71 feige34 eg247 g191b2b eg42 hz14 eg139 wolf1346 sptable-1.0.pre20180612/lib/onedstds/spec50cal/pg0205134.dat000066400000000000000000000043611331023215600224240ustar00rootroot00000000000000# PG0205134 3200.00 14.34 50. 3250.00 14.31 50. 3300.00 14.30 50. 3350.00 14.30 50. 3400.00 14.32 50. 3450.00 14.36 50. 3500.00 14.38 50. 3550.00 14.41 50. 3600.00 14.45 50. 3650.00 14.47 50. 3700.00 14.49 50. 3750.00 14.54 50. 3800.00 14.59 50. 3850.00 14.60 50. 3900.00 14.62 50. 3950.00 14.65 50. 4000.00 14.62 50. 4050.00 14.61 50. 4100.00 14.71 50. 4150.00 14.65 50. 4200.00 14.65 50. 4250.00 14.69 50. 4300.00 14.75 50. 4350.00 14.84 50. 4400.00 14.74 50. 4450.00 14.71 50. 4500.00 14.69 50. 4550.00 14.69 50. 4600.00 14.68 50. 4650.00 14.70 50. 4700.00 14.69 50. 4750.00 14.76 50. 4800.00 14.84 50. 4850.00 14.95 50. 4900.00 14.91 50. 4950.00 14.86 50. 5000.00 14.90 50. 5050.00 14.90 50. 5100.00 14.90 50. 5150.00 14.92 50. 5200.00 14.93 50. 5250.00 14.89 50. 5300.00 14.88 50. 5350.00 14.87 50. 5400.00 14.86 50. 5450.00 14.88 50. 5500.00 14.88 50. 5550.00 14.87 50. 5600.00 14.88 50. 5650.00 14.85 50. 5700.00 14.86 50. 5750.00 14.82 50. 5800.00 14.81 50. 5850.00 14.83 50. 5900.00 14.96 50. 5950.00 14.86 50. 6000.00 14.84 50. 6050.00 14.79 50. 6100.00 14.77 50. 6150.00 14.84 50. 6200.00 14.94 50. 6250.00 14.95 50. 6300.00 14.85 50. 6350.00 14.80 50. 6400.00 14.76 50. 6450.00 14.73 50. 6500.00 14.70 50. 6550.00 14.71 50. 6600.00 14.65 50. 6650.00 14.67 50. 6700.00 14.75 50. 6750.00 14.80 50. 6800.00 14.78 50. 6850.00 14.86 50. 6900.00 14.83 50. 6950.00 14.64 50. 7000.00 14.62 50. 7050.00 14.57 50. 7100.00 14.69 50. 7150.00 14.80 50. 7200.00 14.85 50. 7250.00 14.77 50. 7300.00 14.68 50. 7350.00 14.65 50. 7400.00 14.68 50. 7450.00 14.66 50. 7500.00 14.67 50. 7550.00 14.70 50. 7600.00 15.09 50. 7650.00 14.98 50. 7700.00 14.78 50. 7750.00 14.71 50. 7800.00 14.71 50. 7850.00 14.79 50. 7900.00 14.62 50. 7950.00 14.61 50. 8000.00 14.68 50. 8050.00 14.99 50. 8100.00 15.42 50. sptable-1.0.pre20180612/lib/onedstds/spec50cal/pg0216032.dat000066400000000000000000000043611331023215600224230ustar00rootroot00000000000000# PG0216032 3200.00 13.74 50. 3250.00 13.78 50. 3300.00 13.77 50. 3350.00 13.77 50. 3400.00 13.79 50. 3450.00 13.83 50. 3500.00 13.86 50. 3550.00 13.88 50. 3600.00 13.92 50. 3650.00 13.95 50. 3700.00 13.96 50. 3750.00 14.00 50. 3800.00 14.02 50. 3850.00 14.00 50. 3900.00 14.09 50. 3950.00 14.16 50. 4000.00 14.15 50. 4050.00 14.13 50. 4100.00 14.19 50. 4150.00 14.16 50. 4200.00 14.20 50. 4250.00 14.23 50. 4300.00 14.26 50. 4350.00 14.33 50. 4400.00 14.29 50. 4450.00 14.30 50. 4500.00 14.32 50. 4550.00 14.34 50. 4600.00 14.37 50. 4650.00 14.39 50. 4700.00 14.42 50. 4750.00 14.45 50. 4800.00 14.48 50. 4850.00 14.58 50. 4900.00 14.53 50. 4950.00 14.56 50. 5000.00 14.55 50. 5050.00 14.59 50. 5100.00 14.61 50. 5150.00 14.61 50. 5200.00 14.65 50. 5250.00 14.68 50. 5300.00 14.66 50. 5350.00 14.70 50. 5400.00 14.77 50. 5450.00 14.76 50. 5500.00 14.80 50. 5550.00 14.77 50. 5600.00 14.82 50. 5650.00 14.82 50. 5700.00 14.85 50. 5750.00 14.86 50. 5800.00 14.85 50. 5850.00 14.88 50. 5900.00 14.88 50. 5950.00 14.95 50. 6000.00 15.01 50. 6050.00 15.05 50. 6100.00 15.03 50. 6150.00 15.05 50. 6200.00 15.03 50. 6250.00 15.05 50. 6300.00 15.16 50. 6350.00 15.12 50. 6400.00 15.14 50. 6450.00 15.21 50. 6500.00 15.21 50. 6550.00 15.23 50. 6600.00 15.28 50. 6650.00 15.25 50. 6700.00 15.27 50. 6750.00 15.16 50. 6800.00 15.24 50. 6850.00 15.23 50. 6900.00 15.39 50. 6950.00 15.22 50. 7000.00 15.29 50. 7050.00 15.35 50. 7100.00 15.32 50. 7150.00 15.39 50. 7200.00 15.44 50. 7250.00 15.39 50. 7300.00 15.41 50. 7350.00 15.61 50. 7400.00 15.38 50. 7450.00 15.44 50. 7500.00 15.49 50. 7550.00 15.34 50. 7600.00 16.41 50. 7650.00 15.62 50. 7700.00 15.37 50. 7750.00 15.32 50. 7800.00 15.39 50. 7850.00 15.28 50. 7900.00 15.16 50. 7950.00 15.27 50. 8000.00 15.66 50. 8050.00 15.48 50. 8100.00 15.60 50. sptable-1.0.pre20180612/lib/onedstds/spec50cal/pg0310149.dat000066400000000000000000000043611331023215600224270ustar00rootroot00000000000000# PG0310149 3200.00 15.20 50. 3250.00 15.14 50. 3300.00 15.17 50. 3350.00 15.18 50. 3400.00 15.16 50. 3450.00 15.17 50. 3500.00 15.19 50. 3550.00 15.21 50. 3600.00 15.27 50. 3650.00 15.27 50. 3700.00 15.30 50. 3750.00 15.29 50. 3800.00 15.37 50. 3850.00 15.37 50. 3900.00 15.37 50. 3950.00 15.37 50. 4000.00 15.37 50. 4050.00 15.41 50. 4100.00 15.39 50. 4150.00 15.40 50. 4200.00 15.40 50. 4250.00 15.40 50. 4300.00 15.43 50. 4350.00 15.49 50. 4400.00 15.48 50. 4450.00 15.49 50. 4500.00 15.46 50. 4550.00 15.47 50. 4600.00 15.41 50. 4650.00 15.46 50. 4700.00 15.49 50. 4750.00 15.43 50. 4800.00 15.49 50. 4850.00 15.61 50. 4900.00 15.61 50. 4950.00 15.57 50. 5000.00 15.59 50. 5050.00 15.54 50. 5100.00 15.56 50. 5150.00 15.59 50. 5200.00 15.58 50. 5250.00 15.57 50. 5300.00 15.62 50. 5350.00 15.64 50. 5400.00 15.71 50. 5450.00 15.68 50. 5500.00 15.64 50. 5550.00 15.63 50. 5600.00 15.64 50. 5650.00 15.64 50. 5700.00 15.66 50. 5750.00 15.68 50. 5800.00 15.67 50. 5850.00 15.67 50. 5900.00 15.73 50. 5950.00 15.67 50. 6000.00 15.73 50. 6050.00 15.69 50. 6100.00 15.70 50. 6150.00 15.73 50. 6200.00 15.73 50. 6250.00 15.76 50. 6300.00 15.85 50. 6350.00 15.74 50. 6400.00 15.84 50. 6450.00 15.80 50. 6500.00 15.82 50. 6550.00 15.89 50. 6600.00 15.82 50. 6650.00 15.83 50. 6700.00 15.87 50. 6750.00 15.80 50. 6800.00 15.78 50. 6850.00 15.81 50. 6900.00 15.86 50. 6950.00 15.81 50. 7000.00 15.88 50. 7050.00 15.81 50. 7100.00 15.86 50. 7150.00 15.95 50. 7200.00 16.06 50. 7250.00 16.08 50. 7300.00 15.96 50. 7350.00 15.96 50. 7400.00 16.03 50. 7450.00 16.16 50. 7500.00 16.13 50. 7550.00 15.97 50. 7600.00 16.32 50. 7650.00 16.39 50. 7700.00 16.06 50. 7750.00 16.26 50. 7800.00 16.16 50. 7850.00 15.96 50. 7900.00 15.96 50. 7950.00 16.00 50. 8000.00 15.93 50. 8050.00 16.43 50. 8100.00 16.70 50. sptable-1.0.pre20180612/lib/onedstds/spec50cal/pg0823546.dat000066400000000000000000000047471331023215600224510ustar00rootroot00000000000000# PG0823546 3200.00 13.56 50. 3250.00 13.41 50. 3300.00 13.46 50. 3350.00 13.46 50. 3400.00 13.58 50. 3450.00 13.60 50. 3500.00 13.56 50. 3550.00 13.54 50. 3600.00 13.58 50. 3650.00 13.66 50. 3700.00 13.69 50. 3750.00 13.69 50. 3800.00 13.74 50. 3850.00 13.76 50. 3900.00 13.80 50. 3950.00 13.86 50. 4000.00 13.83 50. 4050.00 13.86 50. 4100.00 13.92 50. 4150.00 13.89 50. 4200.00 13.95 50. 4250.00 13.93 50. 4300.00 13.95 50. 4350.00 14.01 50. 4400.00 14.00 50. 4450.00 14.00 50. 4500.00 14.06 50. 4550.00 14.11 50. 4600.00 14.11 50. 4650.00 14.14 50. 4700.00 14.19 50. 4750.00 14.15 50. 4800.00 14.17 50. 4850.00 14.25 50. 4900.00 14.19 50. 4950.00 14.22 50. 5000.00 14.25 50. 5050.00 14.27 50. 5100.00 14.30 50. 5150.00 14.31 50. 5200.00 14.31 50. 5250.00 14.33 50. 5300.00 14.34 50. 5350.00 14.34 50. 5400.00 14.39 50. 5450.00 14.39 50. 5500.00 14.39 50. 5550.00 14.36 50. 5600.00 14.39 50. 5650.00 14.35 50. 5700.00 14.42 50. 5750.00 14.43 50. 5800.00 14.45 50. 5850.00 14.46 50. 5900.00 14.46 50. 5950.00 14.51 50. 6000.00 14.54 50. 6050.00 14.57 50. 6100.00 14.59 50. 6150.00 14.57 50. 6200.00 14.62 50. 6250.00 14.69 50. 6300.00 14.58 50. 6350.00 14.65 50. 6400.00 14.66 50. 6450.00 14.73 50. 6500.00 14.73 50. 6550.00 14.81 50. 6600.00 14.67 50. 6650.00 14.67 50. 6700.00 14.74 50. 6750.00 14.69 50. 6800.00 14.71 50. 6850.00 14.89 50. 6900.00 14.86 50. 6950.00 14.72 50. 7000.00 14.71 50. 7050.00 14.74 50. 7100.00 14.79 50. 7150.00 14.76 50. 7200.00 14.88 50. 7250.00 15.02 50. 7300.00 14.84 50. 7350 14.80 50 7400 14.80 50 7450 14.82 50 7500 14.82 50 7750 14.86 50 7800 14.89 50 7850 14.86 50 7900 14.88 50 7950 14.91 50 8000 14.88 50 8050 14.92 50 8600 14.94 50 8650 14.90 50 8700 14.91 50 8750 14.88 50 8800 14.88 50 8850 14.89 50 8900 14.94 50 9700 15.18 50 9750 15.44 50 9800 15.19 50 9850 14.91 50 9900 15.10 50 9950 15.86 50 10000 15.96 50 10050 15.22 50 10100 15.11 50 10150 15.19 50 10200 15.08 50 sptable-1.0.pre20180612/lib/onedstds/spec50cal/pg0846249.dat000066400000000000000000000043611331023215600224460ustar00rootroot00000000000000# PG0846249 3200.00 15.82 50. 3250.00 15.81 50. 3300.00 15.81 50. 3350.00 15.84 50. 3400.00 15.85 50. 3450.00 15.90 50. 3500.00 15.92 50. 3550.00 15.98 50. 3600.00 15.99 50. 3650.00 16.03 50. 3700.00 16.05 50. 3750.00 16.09 50. 3800.00 16.15 50. 3850.00 16.17 50. 3900.00 16.22 50. 3950.00 16.23 50. 4000.00 16.23 50. 4050.00 16.22 50. 4100.00 16.31 50. 4150.00 16.28 50. 4200.00 16.28 50. 4250.00 16.34 50. 4300.00 16.38 50. 4350.00 16.47 50. 4400.00 16.50 50. 4450.00 16.48 50. 4500.00 16.48 50. 4550.00 16.50 50. 4600.00 16.52 50. 4650.00 16.56 50. 4700.00 16.60 50. 4750.00 16.63 50. 4800.00 16.66 50. 4850.00 16.75 50. 4900.00 16.71 50. 4950.00 16.69 50. 5000.00 16.75 50. 5050.00 16.74 50. 5100.00 16.75 50. 5150.00 16.78 50. 5200.00 16.82 50. 5250.00 16.81 50. 5300.00 16.82 50. 5350.00 16.86 50. 5400.00 16.92 50. 5450.00 16.93 50. 5500.00 16.91 50. 5550.00 16.93 50. 5600.00 16.98 50. 5650.00 16.99 50. 5700.00 16.97 50. 5750.00 17.01 50. 5800.00 17.03 50. 5850.00 17.03 50. 5900.00 17.10 50. 5950.00 17.08 50. 6000.00 17.13 50. 6050.00 17.16 50. 6100.00 17.15 50. 6150.00 17.13 50. 6200.00 17.19 50. 6250.00 17.11 50. 6300.00 17.25 50. 6350.00 17.19 50. 6400.00 17.27 50. 6450.00 17.31 50. 6500.00 17.34 50. 6550.00 17.32 50. 6600.00 17.35 50. 6650.00 17.27 50. 6700.00 17.24 50. 6750.00 17.33 50. 6800.00 17.29 50. 6850.00 17.33 50. 6900.00 17.46 50. 6950.00 17.49 50. 7000.00 17.26 50. 7050.00 17.29 50. 7100.00 17.52 50. 7150.00 17.37 50. 7200.00 17.39 50. 7250.00 17.36 50. 7300.00 17.36 50. 7350.00 17.49 50. 7400.00 17.27 50. 7450.00 17.51 50. 7500.00 17.43 50. 7550.00 17.48 50. 7600.00 17.75 50. 7650.00 17.44 50. 7700.00 0.00 50. 7750.00 0.00 50. 7800.00 0.00 50. 7850.00 0.00 50. 7900.00 0.00 50. 7950.00 0.00 50. 8000.00 0.00 50. 8050.00 0.00 50. 8100.00 0.00 50. sptable-1.0.pre20180612/lib/onedstds/spec50cal/pg0934554.dat000066400000000000000000000043611331023215600224430ustar00rootroot00000000000000# PG0934554 3200.00 11.39 50. 3250.00 11.45 50. 3300.00 11.27 50. 3350.00 11.29 50. 3400.00 11.43 50. 3450.00 11.30 50. 3500.00 11.28 50. 3550.00 11.28 50. 3600.00 11.31 50. 3650.00 11.41 50. 3700.00 11.45 50. 3750.00 11.46 50. 3800.00 11.49 50. 3850.00 11.49 50. 3900.00 11.55 50. 3950.00 11.62 50. 4000.00 11.59 50. 4050.00 11.58 50. 4100.00 11.70 50. 4150.00 11.64 50. 4200.00 11.69 50. 4250.00 11.66 50. 4300.00 11.68 50. 4350.00 11.76 50. 4400.00 11.71 50. 4450.00 11.75 50. 4500.00 11.76 50. 4550.00 11.82 50. 4600.00 11.82 50. 4650.00 11.86 50. 4700.00 11.93 50. 4750.00 11.88 50. 4800.00 11.89 50. 4850.00 12.00 50. 4900.00 11.95 50. 4950.00 11.95 50. 5000.00 11.98 50. 5050.00 12.00 50. 5100.00 12.06 50. 5150.00 12.09 50. 5200.00 12.08 50. 5250.00 12.09 50. 5300.00 0.00 50. 5350.00 0.00 50. 5400.00 0.00 50. 5450.00 0.00 50. 5500.00 0.00 50. 5550.00 0.00 50. 5600.00 12.17 50. 5650.00 12.21 50. 5700.00 12.21 50. 5750.00 12.23 50. 5800.00 12.24 50. 5850.00 12.27 50. 5900.00 12.30 50. 5950.00 12.29 50. 6000.00 12.32 50. 6050.00 12.35 50. 6100.00 12.35 50. 6150.00 12.38 50. 6200.00 12.38 50. 6250.00 12.43 50. 6300.00 12.44 50. 6350.00 12.43 50. 6400.00 12.45 50. 6450.00 12.46 50. 6500.00 12.50 50. 6550.00 12.56 50. 6600.00 12.51 50. 6650.00 12.51 50. 6700.00 12.52 50. 6750.00 12.51 50. 6800.00 12.52 50. 6850.00 12.56 50. 6900.00 12.62 50. 6950.00 12.54 50. 7000.00 12.54 50. 7050.00 12.56 50. 7100.00 12.54 50. 7150.00 12.59 50. 7200.00 12.68 50. 7250.00 12.64 50. 7300.00 12.62 50. 7350.00 12.60 50. 7400.00 12.61 50. 7450.00 12.59 50. 7500.00 12.61 50. 7550.00 12.65 50. 7600.00 13.09 50. 7650.00 13.00 50. 7700.00 12.67 50. 7750.00 12.67 50. 7800.00 12.69 50. 7850.00 12.70 50. 7900.00 12.68 50. 7950.00 12.71 50. 8000.00 12.72 50. 8050.00 12.74 50. 8100.00 12.79 50. sptable-1.0.pre20180612/lib/onedstds/spec50cal/pg0939262.dat000066400000000000000000000043611331023215600224440ustar00rootroot00000000000000# PG0939262 3200.00 13.87 50. 3250.00 13.85 50. 3300.00 13.88 50. 3350.00 13.88 50. 3400.00 13.91 50. 3450.00 13.94 50. 3500.00 13.99 50. 3550.00 14.01 50. 3600.00 14.04 50. 3650.00 14.05 50. 3700.00 14.08 50. 3750.00 14.13 50. 3800.00 14.18 50. 3850.00 14.21 50. 3900.00 14.23 50. 3950.00 14.25 50. 4000.00 14.25 50. 4050.00 14.26 50. 4100.00 14.34 50. 4150.00 14.31 50. 4200.00 14.31 50. 4250.00 14.36 50. 4300.00 14.40 50. 4350.00 14.50 50. 4400.00 14.43 50. 4450.00 14.43 50. 4500.00 14.45 50. 4550.00 14.45 50. 4600.00 14.47 50. 4650.00 14.49 50. 4700.00 14.50 50. 4750.00 14.55 50. 4800.00 14.58 50. 4850.00 14.71 50. 4900.00 14.68 50. 4950.00 14.65 50. 5000.00 14.68 50. 5050.00 14.66 50. 5100.00 14.68 50. 5150.00 14.69 50. 5200.00 14.73 50. 5250.00 14.76 50. 5300.00 14.79 50. 5350.00 14.80 50. 5400.00 14.83 50. 5450.00 14.86 50. 5500.00 14.88 50. 5550.00 14.89 50. 5600.00 14.91 50. 5650.00 14.90 50. 5700.00 14.93 50. 5750.00 14.96 50. 5800.00 14.98 50. 5850.00 14.96 50. 5900.00 14.97 50. 5950.00 15.01 50. 6000.00 15.02 50. 6050.00 15.03 50. 6100.00 15.04 50. 6150.00 15.08 50. 6200.00 15.13 50. 6250.00 15.15 50. 6300.00 15.14 50. 6350.00 15.18 50. 6400.00 15.20 50. 6450.00 15.21 50. 6500.00 15.24 50. 6550.00 15.30 50. 6600.00 15.28 50. 6650.00 15.26 50. 6700.00 15.27 50. 6750.00 15.25 50. 6800.00 15.29 50. 6850.00 15.31 50. 6900.00 15.34 50. 6950.00 15.32 50. 7000.00 15.30 50. 7050.00 15.36 50. 7100.00 15.34 50. 7150.00 15.41 50. 7200.00 15.49 50. 7250.00 15.43 50. 7300.00 15.46 50. 7350.00 15.41 50. 7400.00 15.40 50. 7450.00 15.43 50. 7500.00 15.43 50. 7550.00 15.43 50. 7600.00 15.62 50. 7650.00 15.53 50. 7700.00 15.44 50. 7750.00 15.37 50. 7800.00 15.37 50. 7850.00 15.55 50. 7900.00 15.14 50. 7950.00 15.22 50. 8000.00 15.26 50. 8050.00 15.42 50. 8100.00 15.59 50. sptable-1.0.pre20180612/lib/onedstds/spec50cal/pg1121145.dat000066400000000000000000000043611331023215600224240ustar00rootroot00000000000000# PG1121145 3200.00 15.90 50. 3250.00 15.87 50. 3300.00 15.91 50. 3350.00 15.93 50. 3400.00 15.95 50. 3450.00 16.02 50. 3500.00 16.07 50. 3550.00 16.09 50. 3600.00 16.13 50. 3650.00 16.15 50. 3700.00 16.15 50. 3750.00 16.21 50. 3800.00 16.26 50. 3850.00 16.29 50. 3900.00 16.32 50. 3950.00 16.34 50. 4000.00 16.35 50. 4050.00 16.33 50. 4100.00 16.46 50. 4150.00 16.41 50. 4200.00 16.42 50. 4250.00 16.46 50. 4300.00 16.51 50. 4350.00 16.62 50. 4400.00 16.55 50. 4450.00 16.54 50. 4500.00 16.57 50. 4550.00 16.59 50. 4600.00 16.59 50. 4650.00 16.64 50. 4700.00 16.70 50. 4750.00 16.69 50. 4800.00 16.66 50. 4850.00 16.77 50. 4900.00 16.73 50. 4950.00 16.73 50. 5000.00 16.75 50. 5050.00 16.76 50. 5100.00 16.75 50. 5150.00 16.79 50. 5200.00 16.85 50. 5250.00 16.82 50. 5300.00 16.90 50. 5350.00 16.88 50. 5400.00 16.93 50. 5450.00 16.93 50. 5500.00 16.92 50. 5550.00 16.97 50. 5600.00 17.02 50. 5650.00 17.03 50. 5700.00 17.02 50. 5750.00 17.06 50. 5800.00 17.02 50. 5850.00 17.05 50. 5900.00 17.09 50. 5950.00 17.09 50. 6000.00 17.07 50. 6050.00 17.14 50. 6100.00 17.12 50. 6150.00 17.11 50. 6200.00 17.15 50. 6250.00 17.19 50. 6300.00 17.22 50. 6350.00 17.29 50. 6400.00 17.26 50. 6450.00 17.22 50. 6500.00 17.27 50. 6550.00 17.45 50. 6600.00 17.31 50. 6650.00 17.39 50. 6700.00 17.32 50. 6750.00 17.29 50. 6800.00 17.38 50. 6850.00 17.42 50. 6900.00 17.41 50. 6950.00 17.41 50. 7000.00 17.44 50. 7050.00 17.38 50. 7100.00 17.38 50. 7150.00 17.38 50. 7200.00 17.43 50. 7250.00 17.61 50. 7300.00 17.57 50. 7350.00 17.61 50. 7400.00 17.60 50. 7450.00 17.49 50. 7500.00 17.75 50. 7550.00 17.84 50. 7600.00 17.73 50. 7650.00 18.02 50. 7700.00 17.26 50. 7750.00 18.21 50. 7800.00 17.98 50. 7850.00 18.78 50. 7900.00 17.17 50. 7950.00 17.84 50. 8000.00 17.13 50. 8050.00 17.31 50. 8100.00 17.36 50. sptable-1.0.pre20180612/lib/onedstds/spec50cal/pg1545035.dat000066400000000000000000000043611331023215600224340ustar00rootroot00000000000000# PG1545035 3200.00 13.57 50. 3250.00 13.59 50. 3300.00 13.63 50. 3350.00 13.63 50. 3400.00 13.64 50. 3450.00 13.61 50. 3500.00 13.66 50. 3550.00 13.67 50. 3600.00 13.69 50. 3650.00 13.73 50. 3700.00 13.76 50. 3750.00 13.77 50. 3800.00 13.80 50. 3850.00 13.84 50. 3900.00 13.88 50. 3950.00 13.90 50. 4000.00 13.86 50. 4050.00 13.86 50. 4100.00 13.94 50. 4150.00 13.90 50. 4200.00 13.92 50. 4250.00 13.93 50. 4300.00 13.96 50. 4350.00 14.04 50. 4400.00 13.98 50. 4450.00 14.01 50. 4500.00 14.04 50. 4550.00 14.06 50. 4600.00 14.06 50. 4650.00 14.07 50. 4700.00 14.13 50. 4750.00 14.14 50. 4800.00 14.14 50. 4850.00 14.22 50. 4900.00 14.19 50. 4950.00 14.19 50. 5000.00 14.18 50. 5050.00 14.22 50. 5100.00 14.23 50. 5150.00 14.25 50. 5200.00 14.24 50. 5250.00 14.27 50. 5300.00 14.26 50. 5350.00 14.30 50. 5400.00 14.35 50. 5450.00 14.34 50. 5500.00 14.36 50. 5550.00 14.33 50. 5600.00 14.35 50. 5650.00 14.39 50. 5700.00 14.42 50. 5750.00 14.41 50. 5800.00 14.41 50. 5850.00 14.48 50. 5900.00 14.46 50. 5950.00 14.51 50. 6000.00 14.56 50. 6050.00 14.65 50. 6100.00 14.62 50. 6150.00 14.64 50. 6200.00 14.66 50. 6250.00 14.74 50. 6300.00 14.73 50. 6350.00 14.70 50. 6400.00 14.81 50. 6450.00 14.77 50. 6500.00 14.80 50. 6550.00 14.87 50. 6600.00 14.83 50. 6650.00 14.80 50. 6700.00 14.80 50. 6750.00 14.78 50. 6800.00 14.79 50. 6850.00 14.78 50. 6900.00 14.87 50. 6950.00 14.78 50. 7000.00 14.84 50. 7050.00 14.91 50. 7100.00 14.84 50. 7150.00 14.90 50. 7200.00 14.99 50. 7250.00 14.85 50. 7300.00 14.94 50. 7350.00 14.97 50. 7400.00 14.97 50. 7450.00 14.92 50. 7500.00 14.91 50. 7550.00 14.93 50. 7600.00 15.54 50. 7650.00 15.34 50. 7700.00 14.80 50. 7750.00 14.78 50. 7800.00 15.24 50. 7850.00 15.03 50. 7900.00 14.79 50. 7950.00 14.90 50. 8000.00 15.05 50. 8050.00 15.03 50. 8100.00 14.91 50. sptable-1.0.pre20180612/lib/onedstds/spec50cal/pg1708602.dat000066400000000000000000000042541331023215600224360ustar00rootroot00000000000000# PG1708602 3200.00 13.11 50. 3250.00 13.00 50. 3300.00 13.02 50. 3350.00 13.03 50. 3400.00 13.03 50. 3450.00 13.11 50. 3500.00 13.15 50. 3550.00 13.12 50. 3600.00 13.14 50. 3650.00 13.18 50. 3700.00 13.21 50. 3750.00 13.22 50. 3800.00 13.24 50. 3850.00 13.25 50. 3900.00 13.30 50. 3950.00 13.34 50. 4000.00 13.32 50. 4050.00 13.33 50. 4100.00 13.40 50. 4150.00 13.37 50. 4200.00 13.41 50. 4250.00 13.43 50. 4300.00 13.45 50. 4350.00 13.54 50. 4400.00 13.50 50. 4450.00 13.51 50. 4500.00 13.53 50. 4550.00 13.57 50. 4600.00 13.57 50. 4650.00 13.58 50. 4700.00 13.62 50. 4750.00 13.63 50. 4800.00 13.65 50. 4850.00 13.75 50. 4900.00 13.70 50. 4950.00 13.71 50. 5000.00 13.73 50. 5050.00 13.77 50. 5100.00 13.77 50. 5150.00 13.78 50. 5200.00 13.78 50. 5250.00 13.81 50. 5300.00 13.81 50. 5350.00 13.85 50. 5400.00 13.94 50. 5450.00 13.93 50. 5500.00 13.92 50. 5550.00 13.92 50. 5600.00 13.90 50. 5650.00 13.95 50. 5700.00 13.98 50. 5750.00 13.98 50. 5800.00 13.99 50. 5850.00 13.99 50. 5900.00 14.02 50. 5950.00 14.08 50. 6000.00 14.09 50. 6050.00 14.12 50. 6100.00 14.11 50. 6150.00 14.12 50. 6200.00 14.19 50. 6250.00 14.19 50. 6300.00 14.24 50. 6350.00 14.26 50. 6400.00 14.21 50. 6450.00 14.26 50. 6500.00 14.27 50. 6550.00 14.33 50. 6600.00 14.30 50. 6650.00 14.27 50. 6700.00 14.28 50. 6750.00 14.28 50. 6800.00 14.27 50. 6850.00 14.38 50. 6900.00 14.42 50. 6950.00 14.36 50. 7000.00 14.35 50. 7050.00 14.38 50. 7100.00 14.41 50. 7150.00 14.39 50. 7200.00 14.56 50. 7250.00 14.56 50. 7300.00 14.60 50. 7350.00 14.44 50. 7400.00 14.45 50. 7450.00 14.52 50. 7500.00 14.46 50. 7550.00 14.44 50. 7600.00 15.02 50. 7650.00 14.96 50. 7700.00 14.48 50. 7750.00 14.32 50. 7800.00 14.29 50. 7850.00 14.26 50. 7900.00 14.46 50. 7950.00 14.42 50. sptable-1.0.pre20180612/lib/onedstds/spec50cal/standards.men000066400000000000000000000011631331023215600232460ustar00rootroot00000000000000Standard stars in onedstds$spec50cal/ (3200A - 8100 A) bd284211 eg247 feige34 hd192281 pg0205134 pg0934554 wolf1346 cygob2no9 eg42 feige66 hd217086 pg0216032 pg0939262 eg139 eg71 feige67 hilt600 pg0310149 pg1121145 eg158 eg81 g191b2b hz14 pg0823546 pg1545035 eg20 feige110 gd140 hz44 pg0846249 pg1708602 Standard stars in onedstds$spec50cal/ (3200A - 10200A) bd284211 eg247 feige34 g191b2b hz44 eg139 eg71 feige66 gd140 pg0823546 eg158 feige110 feige67 hilt600 wolf1346 sptable-1.0.pre20180612/lib/onedstds/spec50cal/wolf1346.dat000066400000000000000000000047461331023215600225530ustar00rootroot00000000000000# Wolf1346 3200.00 11.36 50. 3250.00 11.39 50. 3300.00 11.37 50. 3350.00 11.36 50. 3400.00 11.34 50. 3450.00 11.41 50. 3500.00 11.41 50. 3550.00 11.39 50. 3600.00 11.42 50. 3650.00 11.45 50. 3700.00 11.45 50. 3750.00 11.47 50. 3800.00 11.47 50. 3850.00 11.46 50. 3900.00 11.48 50. 3950.00 11.55 50. 4000.00 11.40 50. 4050.00 11.29 50. 4100.00 11.65 50. 4150.00 11.31 50. 4200.00 11.20 50. 4250.00 11.24 50. 4300.00 11.42 50. 4350.00 11.71 50. 4400.00 11.33 50. 4450.00 11.26 50. 4500.00 11.27 50. 4550.00 11.25 50. 4600.00 11.27 50. 4650.00 11.28 50. 4700.00 11.29 50. 4750.00 11.35 50. 4800.00 11.46 50. 4850.00 11.82 50. 4900.00 11.62 50. 4950.00 11.47 50. 5000.00 11.44 50. 5050.00 11.46 50. 5100.00 11.45 50. 5150.00 11.47 50. 5200.00 11.48 50. 5250.00 11.49 50. 5300.00 11.50 50. 5350.00 11.51 50. 5400.00 11.51 50. 5450.00 11.55 50. 5500.00 11.57 50. 5550.00 11.59 50. 5600.00 11.61 50. 5650.00 11.62 50. 5700.00 11.64 50. 5750.00 11.65 50. 5800.00 11.65 50. 5850.00 11.67 50. 5900.00 11.69 50. 5950.00 11.71 50. 6000.00 11.72 50. 6050.00 11.74 50. 6100.00 11.75 50. 6150.00 11.77 50. 6200.00 11.79 50. 6250.00 11.82 50. 6300.00 11.84 50. 6350.00 11.84 50. 6400.00 11.85 50. 6450.00 11.89 50. 6500.00 11.98 50. 6550.00 12.21 50. 6600.00 12.08 50. 6650.00 11.94 50. 6700.00 11.91 50. 6750.00 11.91 50. 6800.00 11.90 50. 6850.00 11.97 50. 6900.00 12.02 50. 6950.00 11.96 50. 7000.00 11.98 50. 7050.00 11.98 50. 7100.00 12.00 50. 7150.00 12.04 50. 7200.00 12.13 50. 7250.00 12.12 50. 7300.00 12.12 50. 7350 12.06 50 7400 12.05 50 7450 12.07 50 7500 12.08 50 7750 12.13 50 7800 12.15 50 7850 12.15 50 7900 12.16 50 7950 12.18 50 8000 12.16 50 8050 12.19 50 8600 12.22 50 8650 12.22 50 8700 12.22 50 8750 12.23 50 8800 12.23 50 8850 12.23 50 8900 12.24 50 9700 12.45 50 9750 12.47 50 9800 12.47 50 9850 12.42 50 9900 12.45 50 9950 12.58 50 10000 12.63 50 10050 12.69 50 10100 12.65 50 10150 12.61 50 10200 12.63 50 sptable-1.0.pre20180612/lib/onedstds/spechayescal/000077500000000000000000000000001331023215600214465ustar00rootroot00000000000000sptable-1.0.pre20180612/lib/onedstds/spechayescal/bd284211.dat000066400000000000000000000012301331023215600232030ustar00rootroot00000000000000# BD284211 3200.00 9.63 50. 3250.00 9.58 50. 3300.00 9.56 50. 3350.00 9.57 50. 3400.00 9.60 50. 3450.00 9.64 50. 3500.00 9.67 50. 3571.00 9.70 50. 3636.00 9.73 50. 3704.00 9.77 50. 3862.00 9.87 50. 4036.00 9.92 50. 4167.00 9.99 50. 4255.00 10.04 50. 4464.00 10.14 50. 4566.00 10.18 50. 4785.00 10.27 50. 5000.00 10.36 50. 5263.00 10.45 50. 5556.00 10.56 100. 5840.00 10.68 100. 6056.00 10.77 100. 6436.00 10.90 100. 6790.00 10.95 100. 7100.00 11.04 100. 7550.00 11.18 100. 7780.00 11.17 100. 8090.00 11.25 100. sptable-1.0.pre20180612/lib/onedstds/spechayescal/cygob2no9.dat000066400000000000000000000012311331023215600237500ustar00rootroot00000000000000# CygOB2No9 3200.00 15.10 50. 3250.00 15.24 50. 3300.00 15.14 50. 3350.00 14.95 50. 3400.00 14.83 50. 3450.00 14.67 50. 3500.00 14.50 50. 3571.00 14.34 50. 3636.00 14.23 50. 3704.00 14.08 50. 3862.00 13.69 50. 4036.00 13.36 50. 4167.00 13.10 50. 4255.00 12.98 50. 4464.00 12.59 50. 4566.00 12.38 50. 4785.00 12.08 50. 5000.00 11.70 50. 5263.00 11.18 50. 5556.00 10.70 100. 5840.00 10.36 100. 6056.00 10.14 100. 6436.00 9.85 100. 6790.00 9.46 100. 7100.00 9.22 100. 7550.00 8.98 100. 7780.00 8.80 100. 8090.00 8.57 100. sptable-1.0.pre20180612/lib/onedstds/spechayescal/eg81.dat000066400000000000000000000012241331023215600227030ustar00rootroot00000000000000# EG81 3200.00 12.58 50. 3250.00 12.52 50. 3300.00 12.51 50. 3350.00 12.50 50. 3400.00 12.55 50. 3450.00 12.58 50. 3500.00 12.61 50. 3571.00 12.64 50. 3636.00 12.68 50. 3704.00 12.72 50. 3862.00 12.78 50. 4036.00 12.83 50. 4167.00 12.82 50. 4255.00 12.84 50. 4464.00 12.99 50. 4566.00 12.97 50. 4785.00 13.07 50. 5000.00 13.16 50. 5263.00 13.23 50. 5556.00 13.30 100. 5840.00 13.39 100. 6056.00 13.44 100. 6436.00 13.54 100. 6790.00 13.60 100. 7100.00 13.59 100. 7550.00 13.45 100. 7780.00 13.44 100. 8090.00 13.35 100. sptable-1.0.pre20180612/lib/onedstds/spechayescal/feige110.dat000066400000000000000000000012301331023215600234350ustar00rootroot00000000000000# Feige110 3200.00 11.11 50. 3250.00 11.01 50. 3300.00 11.00 50. 3350.00 11.01 50. 3400.00 11.04 50. 3450.00 11.07 50. 3500.00 11.10 50. 3571.00 11.14 50. 3636.00 11.18 50. 3704.00 11.19 50. 3862.00 11.25 50. 4036.00 11.27 50. 4167.00 11.33 50. 4255.00 11.38 50. 4464.00 11.48 50. 4566.00 11.50 50. 4785.00 11.60 50. 5000.00 11.68 50. 5263.00 11.79 50. 5556.00 11.88 100. 5840.00 12.00 100. 6056.00 12.08 100. 6436.00 12.21 100. 6790.00 12.27 100. 7100.00 12.36 100. 7550.00 12.49 100. 7780.00 12.46 100. 8090.00 12.57 100. sptable-1.0.pre20180612/lib/onedstds/spechayescal/feige34.dat000066400000000000000000000012271331023215600233700ustar00rootroot00000000000000# Feige34 3200.00 10.29 50. 3250.00 10.24 50. 3300.00 10.24 50. 3350.00 10.24 50. 3400.00 10.27 50. 3450.00 10.31 50. 3500.00 10.34 50. 3571.00 10.37 50. 3636.00 10.40 50. 3704.00 10.43 50. 3862.00 10.54 50. 4036.00 10.58 50. 4167.00 10.65 50. 4255.00 10.70 50. 4464.00 10.79 50. 4566.00 10.84 50. 4785.00 10.94 50. 5000.00 11.03 50. 5263.00 11.14 50. 5556.00 11.25 100. 5840.00 11.36 100. 6056.00 11.44 100. 6436.00 11.58 100. 6790.00 11.67 100. 7100.00 11.74 100. 7550.00 11.84 100. 7780.00 11.84 100. 8090.00 11.93 100. sptable-1.0.pre20180612/lib/onedstds/spechayescal/feige66.dat000066400000000000000000000012271331023215600233750ustar00rootroot00000000000000# Feige66 3200.00 9.71 50. 3250.00 9.70 50. 3300.00 9.72 50. 3350.00 9.72 50. 3400.00 9.75 50. 3450.00 9.78 50. 3500.00 9.79 50. 3571.00 9.81 50. 3636.00 9.85 50. 3704.00 9.88 50. 3862.00 9.93 50. 4036.00 9.89 50. 4167.00 9.94 50. 4255.00 9.98 50. 4464.00 10.09 50. 4566.00 10.11 50. 4785.00 10.22 50. 5000.00 10.32 50. 5263.00 10.43 50. 5556.00 10.53 100. 5840.00 10.65 100. 6056.00 10.75 100. 6436.00 10.91 100. 6790.00 10.97 100. 7100.00 11.03 100. 7550.00 11.18 100. 7780.00 11.23 100. 8090.00 11.32 100. sptable-1.0.pre20180612/lib/onedstds/spechayescal/feige67.dat000066400000000000000000000012271331023215600233760ustar00rootroot00000000000000# Feige67 3200.00 10.91 50. 3250.00 10.83 50. 3300.00 10.86 50. 3350.00 10.85 50. 3400.00 10.88 50. 3450.00 10.91 50. 3500.00 10.94 50. 3571.00 10.96 50. 3636.00 11.01 50. 3704.00 11.04 50. 3862.00 11.14 50. 4036.00 11.19 50. 4167.00 11.25 50. 4255.00 11.30 50. 4464.00 11.40 50. 4566.00 11.46 50. 4785.00 11.57 50. 5000.00 11.66 50. 5263.00 11.79 50. 5556.00 11.89 100. 5840.00 11.99 100. 6056.00 12.09 100. 6436.00 12.25 100. 6790.00 12.32 100. 7100.00 12.40 100. 7550.00 12.55 100. 7780.00 12.58 100. 8090.00 12.67 100. sptable-1.0.pre20180612/lib/onedstds/spechayescal/g191b2b.dat000066400000000000000000000012271331023215600232110ustar00rootroot00000000000000# G191B2B 3200.00 10.91 50. 3250.00 10.94 50. 3300.00 10.90 50. 3350.00 10.90 50. 3400.00 10.92 50. 3450.00 10.95 50. 3500.00 10.99 50. 3571.00 11.00 50. 3636.00 11.04 50. 3704.00 11.07 50. 3862.00 11.17 50. 4036.00 11.20 50. 4167.00 11.25 50. 4255.00 11.30 50. 4464.00 11.39 50. 4566.00 11.42 50. 4785.00 11.54 50. 5000.00 11.64 50. 5263.00 11.74 50. 5556.00 11.85 100. 5840.00 11.95 100. 6056.00 12.04 100. 6436.00 12.20 100. 6790.00 12.26 100. 7100.00 12.34 100. 7550.00 12.44 100. 7780.00 12.46 100. 8090.00 12.59 100. sptable-1.0.pre20180612/lib/onedstds/spechayescal/gd140.dat000066400000000000000000000012251331023215600227570ustar00rootroot00000000000000# GD140 3200.00 12.17 50. 3250.00 12.17 50. 3300.00 12.13 50. 3350.00 12.14 50. 3400.00 12.18 50. 3450.00 12.20 50. 3500.00 12.22 50. 3571.00 12.17 50. 3636.00 12.22 50. 3704.00 12.27 50. 3862.00 12.33 50. 4036.00 12.19 50. 4167.00 12.19 50. 4255.00 12.16 50. 4464.00 12.17 50. 4566.00 12.18 50. 4785.00 12.38 50. 5000.00 12.38 50. 5263.00 12.46 50. 5556.00 12.50 100. 5840.00 12.62 100. 6056.00 12.75 100. 6436.00 12.92 100. 6790.00 12.95 100. 7100.00 12.99 100. 7550.00 13.11 100. 7780.00 13.14 100. 8090.00 13.26 100. sptable-1.0.pre20180612/lib/onedstds/spechayescal/hd192281.dat000066400000000000000000000012301331023215600232160ustar00rootroot00000000000000# HD192281 3200.00 8.35 50. 3250.00 8.27 50. 3300.00 8.19 50. 3350.00 8.14 50. 3400.00 8.11 50. 3450.00 8.11 50. 3500.00 8.08 50. 3571.00 8.01 50. 3636.00 8.01 50. 3704.00 7.98 50. 3862.00 7.91 50. 4036.00 7.84 50. 4167.00 7.78 50. 4255.00 7.78 50. 4464.00 7.74 50. 4566.00 7.69 50. 4785.00 7.65 50. 5000.00 7.60 50. 5263.00 7.49 50. 5556.00 7.44 100. 5840.00 7.43 100. 6056.00 7.41 100. 6436.00 7.41 100. 6790.00 7.34 100. 7100.00 7.35 100. 7550.00 7.38 100. 7780.00 7.33 100. 8090.00 7.34 100. sptable-1.0.pre20180612/lib/onedstds/spechayescal/hd217086.dat000066400000000000000000000012301331023215600232170ustar00rootroot00000000000000# HD217086 3200.00 8.95 50. 3250.00 8.85 50. 3300.00 8.76 50. 3350.00 8.70 50. 3400.00 8.65 50. 3450.00 8.65 50. 3500.00 8.60 50. 3571.00 8.53 50. 3636.00 8.50 50. 3704.00 8.46 50. 3862.00 8.31 50. 4036.00 8.20 50. 4167.00 8.15 50. 4255.00 8.12 50. 4464.00 8.05 50. 4566.00 7.96 50. 4785.00 7.89 50. 5000.00 7.79 50. 5263.00 7.60 50. 5556.00 7.49 100. 5840.00 7.45 100. 6056.00 7.38 100. 6436.00 7.34 100. 6790.00 7.22 100. 7100.00 7.21 100. 7550.00 7.19 100. 7780.00 7.13 100. 8090.00 7.09 100. sptable-1.0.pre20180612/lib/onedstds/spechayescal/hiltner600.dat000066400000000000000000000012321331023215600240310ustar00rootroot00000000000000# Hiltner600 3200.00 11.10 50. 3250.00 10.98 50. 3300.00 10.97 50. 3350.00 10.90 50. 3400.00 10.89 50. 3450.00 10.91 50. 3500.00 10.91 50. 3571.00 10.84 50. 3636.00 10.84 50. 3704.00 10.82 50. 3862.00 10.57 50. 4036.00 10.48 50. 4167.00 10.47 50. 4255.00 10.45 50. 4464.00 10.46 50. 4566.00 10.43 50. 4785.00 10.45 50. 5000.00 10.45 50. 5263.00 10.43 50. 5556.00 10.42 100. 5840.00 10.45 100. 6056.00 10.50 100. 6436.00 10.57 100. 6790.00 10.55 100. 7100.00 10.53 100. 7550.00 10.60 100. 7780.00 10.61 100. 8090.00 10.66 100. sptable-1.0.pre20180612/lib/onedstds/spechayescal/hz14.dat000066400000000000000000000012241331023215600227250ustar00rootroot00000000000000# HZ14 3200.00 13.38 50. 3250.00 13.39 50. 3300.00 13.36 50. 3350.00 13.36 50. 3400.00 13.37 50. 3450.00 13.41 50. 3500.00 13.42 50. 3571.00 13.46 50. 3636.00 13.49 50. 3704.00 13.49 50. 3862.00 13.60 50. 4036.00 13.48 50. 4167.00 13.49 50. 4255.00 13.50 50. 4464.00 13.55 50. 4566.00 13.56 50. 4785.00 13.72 50. 5000.00 13.83 50. 5263.00 13.89 50. 5556.00 14.01 100. 5840.00 14.11 100. 6056.00 14.20 100. 6436.00 14.36 100. 6790.00 14.41 100. 7100.00 14.48 100. 7550.00 14.66 100. 7780.00 14.61 100. 8090.00 14.89 100. sptable-1.0.pre20180612/lib/onedstds/spechayescal/hz44.dat000066400000000000000000000012241331023215600227300ustar00rootroot00000000000000# HZ44 3200.00 10.95 50. 3250.00 10.86 50. 3300.00 10.86 50. 3350.00 10.90 50. 3400.00 10.90 50. 3450.00 10.94 50. 3500.00 10.96 50. 3571.00 10.96 50. 3636.00 10.99 50. 3704.00 11.03 50. 3862.00 11.09 50. 4036.00 11.19 50. 4167.00 11.20 50. 4255.00 11.21 50. 4464.00 11.39 50. 4566.00 11.37 50. 4785.00 11.43 50. 5000.00 11.54 50. 5263.00 11.62 50. 5556.00 11.73 100. 5840.00 11.86 100. 6056.00 11.92 100. 6436.00 12.07 100. 6790.00 12.14 100. 7100.00 12.25 100. 7550.00 12.36 100. 7780.00 12.39 100. 8090.00 12.46 100. sptable-1.0.pre20180612/lib/onedstds/spechayescal/names.men000066400000000000000000000002121331023215600232450ustar00rootroot00000000000000# Table of alternate names mapped to the names in this directory eg158 feige110 eg71 feige34 eg247 g191b2b eg42 hz14 eg139 wolf1346 sptable-1.0.pre20180612/lib/onedstds/spechayescal/pg0205134.dat000066400000000000000000000012311331023215600233020ustar00rootroot00000000000000# PG0205134 3200.00 14.34 50. 3250.00 14.31 50. 3300.00 14.30 50. 3350.00 14.30 50. 3400.00 14.32 50. 3450.00 14.36 50. 3500.00 14.38 50. 3571.00 14.43 50. 3636.00 14.46 50. 3704.00 14.49 50. 3862.00 14.61 50. 4036.00 14.61 50. 4167.00 14.63 50. 4255.00 14.70 50. 4464.00 14.70 50. 4566.00 14.68 50. 4785.00 14.82 50. 5000.00 14.90 50. 5263.00 14.89 50. 5556.00 14.87 100. 5840.00 14.84 100. 6056.00 14.80 100. 6436.00 14.74 100. 6790.00 14.79 100. 7100.00 14.70 100. 7550.00 14.72 100. 7780.00 14.71 100. 8090.00 15.33 100. sptable-1.0.pre20180612/lib/onedstds/spechayescal/pg0216032.dat000066400000000000000000000012311331023215600233010ustar00rootroot00000000000000# PG0216032 3200.00 13.74 50. 3250.00 13.78 50. 3300.00 13.77 50. 3350.00 13.77 50. 3400.00 13.79 50. 3450.00 13.83 50. 3500.00 13.86 50. 3571.00 13.89 50. 3636.00 13.95 50. 3704.00 13.96 50. 3862.00 14.04 50. 4036.00 14.12 50. 4167.00 14.18 50. 4255.00 14.22 50. 4464.00 14.31 50. 4566.00 14.36 50. 4785.00 14.48 50. 5000.00 14.55 50. 5263.00 14.66 50. 5556.00 14.79 100. 5840.00 14.86 100. 6056.00 15.04 100. 6436.00 15.19 100. 6790.00 15.17 100. 7100.00 15.33 100. 7550.00 15.53 100. 7780.00 15.35 100. 8090.00 15.62 100. sptable-1.0.pre20180612/lib/onedstds/spechayescal/pg0310149.dat000066400000000000000000000012311331023215600233050ustar00rootroot00000000000000# PG0310149 3200.00 15.20 50. 3250.00 15.14 50. 3300.00 15.17 50. 3350.00 15.18 50. 3400.00 15.16 50. 3450.00 15.17 50. 3500.00 15.19 50. 3571.00 15.24 50. 3636.00 15.28 50. 3704.00 15.30 50. 3862.00 15.38 50. 4036.00 15.41 50. 4167.00 15.39 50. 4255.00 15.40 50. 4464.00 15.49 50. 4566.00 15.45 50. 4785.00 15.47 50. 5000.00 15.59 50. 5263.00 15.59 50. 5556.00 15.63 100. 5840.00 15.68 100. 6056.00 15.69 100. 6436.00 15.81 100. 6790.00 15.78 100. 7100.00 15.86 100. 7550.00 16.02 100. 7780.00 16.21 100. 8090.00 16.70 100. sptable-1.0.pre20180612/lib/onedstds/spechayescal/pg0823546.dat000066400000000000000000000012311331023215600233170ustar00rootroot00000000000000# PG0823546 3200.00 13.56 50. 3250.00 13.41 50. 3300.00 13.46 50. 3350.00 13.46 50. 3400.00 13.58 50. 3450.00 13.60 50. 3500.00 13.56 50. 3571.00 13.53 50. 3636.00 13.65 50. 3704.00 13.69 50. 3862.00 13.77 50. 4036.00 13.85 50. 4167.00 13.91 50. 4255.00 13.93 50. 4464.00 14.00 50. 4566.00 14.09 50. 4785.00 14.16 50. 5000.00 14.25 50. 5263.00 14.32 50. 5556.00 14.36 100. 5840.00 14.46 100. 6056.00 14.57 100. 6436.00 14.70 100. 6790.00 14.72 100. 7100.00 14.82 100. 7550.00 14.92 100. 7780.00 14.68 100. 8090.00 14.90 100. sptable-1.0.pre20180612/lib/onedstds/spechayescal/pg0846249.dat000066400000000000000000000011511331023215600233250ustar00rootroot00000000000000# PG0846249 3200.00 15.82 50. 3250.00 15.81 50. 3300.00 15.81 50. 3350.00 15.84 50. 3400.00 15.85 50. 3450.00 15.90 50. 3500.00 15.92 50. 3571.00 15.98 50. 3636.00 16.03 50. 3704.00 16.05 50. 3862.00 16.18 50. 4036.00 16.21 50. 4167.00 16.27 50. 4255.00 16.34 50. 4464.00 16.49 50. 4566.00 16.50 50. 4785.00 16.64 50. 5000.00 16.75 50. 5263.00 16.80 50. 5556.00 16.94 100. 5840.00 17.04 100. 6056.00 17.16 100. 6436.00 17.29 100. 6790.00 17.31 100. 7100.00 17.43 100. 7550.00 17.48 100. sptable-1.0.pre20180612/lib/onedstds/spechayescal/pg0934554.dat000066400000000000000000000012311331023215600233210ustar00rootroot00000000000000# PG0934554 3200.00 11.39 50. 3250.00 11.45 50. 3300.00 11.27 50. 3350.00 11.29 50. 3400.00 11.43 50. 3450.00 11.30 50. 3500.00 11.28 50. 3571.00 11.27 50. 3636.00 11.40 50. 3704.00 11.45 50. 3862.00 11.50 50. 4036.00 11.57 50. 4167.00 11.65 50. 4255.00 11.66 50. 4464.00 11.76 50. 4566.00 11.83 50. 4785.00 11.89 50. 5000.00 11.98 50. 5263.00 1.83 50. 5556.00 1.00 100. 5840.00 12.26 100. 6056.00 12.34 100. 6436.00 12.46 100. 6790.00 12.51 100. 7100.00 12.55 100. 7550.00 12.67 100. 7780.00 12.68 100. 8090.00 12.77 100. sptable-1.0.pre20180612/lib/onedstds/spechayescal/pg0939262.dat000066400000000000000000000012311331023215600233220ustar00rootroot00000000000000# PG0939262 3200.00 13.87 50. 3250.00 13.85 50. 3300.00 13.88 50. 3350.00 13.88 50. 3400.00 13.91 50. 3450.00 13.94 50. 3500.00 13.99 50. 3571.00 14.03 50. 3636.00 14.05 50. 3704.00 14.08 50. 3862.00 14.21 50. 4036.00 14.25 50. 4167.00 14.31 50. 4255.00 14.36 50. 4464.00 14.44 50. 4566.00 14.45 50. 4785.00 14.58 50. 5000.00 14.68 50. 5263.00 14.77 50. 5556.00 14.89 100. 5840.00 14.96 100. 6056.00 15.03 100. 6436.00 15.21 100. 6790.00 15.27 100. 7100.00 15.37 100. 7550.00 15.47 100. 7780.00 15.37 100. 8090.00 15.58 100. sptable-1.0.pre20180612/lib/onedstds/spechayescal/pg1121145.dat000066400000000000000000000012311331023215600233020ustar00rootroot00000000000000# PG1121145 3200.00 15.90 50. 3250.00 15.87 50. 3300.00 15.91 50. 3350.00 15.93 50. 3400.00 15.95 50. 3450.00 16.02 50. 3500.00 16.07 50. 3571.00 16.11 50. 3636.00 16.14 50. 3704.00 16.15 50. 3862.00 16.29 50. 4036.00 16.33 50. 4167.00 16.39 50. 4255.00 16.46 50. 4464.00 16.55 50. 4566.00 16.58 50. 4785.00 16.69 50. 5000.00 16.75 50. 5263.00 16.83 50. 5556.00 16.97 100. 5840.00 17.04 100. 6056.00 17.12 100. 6436.00 17.25 100. 6790.00 17.30 100. 7100.00 17.38 100. 7550.00 17.68 100. 7780.00 18.16 100. 8090.00 17.60 100. sptable-1.0.pre20180612/lib/onedstds/spechayescal/pg1545035.dat000066400000000000000000000012311331023215600233120ustar00rootroot00000000000000# PG1545035 3200.00 13.57 50. 3250.00 13.59 50. 3300.00 13.63 50. 3350.00 13.63 50. 3400.00 13.64 50. 3450.00 13.61 50. 3500.00 13.66 50. 3571.00 13.69 50. 3636.00 13.74 50. 3704.00 13.76 50. 3862.00 13.84 50. 4036.00 13.86 50. 4167.00 13.89 50. 4255.00 13.93 50. 4464.00 14.01 50. 4566.00 14.06 50. 4785.00 14.14 50. 5000.00 14.18 50. 5263.00 14.27 50. 5556.00 14.34 100. 5840.00 14.44 100. 6056.00 14.62 100. 6436.00 14.79 100. 6790.00 14.78 100. 7100.00 14.86 100. 7550.00 15.01 100. 7780.00 14.99 100. 8090.00 14.92 100. sptable-1.0.pre20180612/lib/onedstds/spechayescal/pg1708602.dat000066400000000000000000000012011331023215600233100ustar00rootroot00000000000000# PG1708602 3200.00 13.11 50. 3250.00 13.00 50. 3300.00 13.02 50. 3350.00 13.03 50. 3400.00 13.03 50. 3450.00 13.11 50. 3500.00 13.15 50. 3571.00 13.13 50. 3636.00 13.17 50. 3704.00 13.21 50. 3862.00 13.27 50. 4036.00 13.32 50. 4167.00 13.37 50. 4255.00 13.43 50. 4464.00 13.52 50. 4566.00 13.56 50. 4785.00 13.65 50. 5000.00 13.73 50. 5263.00 13.80 50. 5556.00 13.92 100. 5840.00 13.99 100. 6056.00 14.12 100. 6436.00 14.24 100. 6790.00 14.29 100. 7100.00 14.39 100. 7550.00 14.45 100. 7780.00 14.31 100. sptable-1.0.pre20180612/lib/onedstds/spechayescal/standards.men000066400000000000000000000006401331023215600241320ustar00rootroot00000000000000Standard stars in onedstds$spechayescal/ bd284211 eg139 feige67 hd217086 pg0216032 pg0939262 cygob2no9 eg158 feige110 hiltner600 pg0310149 pg1121145 eg42 eg247 g191b2b hz14 pg0823546 pg1545035 eg71 feige34 gd140 hz44 pg0846249 pg1708602 eg81 feige66 hd192281 pg0205134 pg0934554 wolf1346 sptable-1.0.pre20180612/lib/onedstds/spechayescal/wolf1346.dat000066400000000000000000000012301331023215600234210ustar00rootroot00000000000000# Wolf1346 3200.00 11.36 50. 3250.00 11.39 50. 3300.00 11.37 50. 3350.00 11.36 50. 3400.00 11.34 50. 3450.00 11.41 50. 3500.00 11.41 50. 3571.00 11.40 50. 3636.00 11.45 50. 3704.00 11.45 50. 3862.00 11.48 50. 4036.00 11.26 50. 4167.00 11.25 50. 4255.00 11.25 50. 4464.00 11.26 50. 4566.00 11.25 50. 4785.00 11.42 50. 5000.00 11.44 50. 5263.00 11.49 50. 5556.00 11.59 100. 5840.00 11.67 100. 6056.00 11.74 100. 6436.00 11.88 100. 6790.00 11.91 100. 7100.00 12.00 100. 7550.00 12.11 100. 7780.00 12.08 100. 8090.00 12.13 100. sptable-1.0.pre20180612/lib/root.hd000066400000000000000000000003411331023215600164550ustar00rootroot00000000000000# Root help directory. This dummy package is necessary in order to have # a package appear as a module, so that the user can type "help " # (with the given as a task). _sptable pkg = sptable$lib/root1.hd sptable-1.0.pre20180612/lib/root1.hd000066400000000000000000000004201331023215600165340ustar00rootroot00000000000000# Root task entry for the package help tree. Defines as both a # task and a package in the help database. sptable men = sptable$sptable.men, hlp = sptable$sptable.men, sys = sptable$sptable.hlp, pkg = sptable$sptable.hd, src = sptable$sptable.cl sptable-1.0.pre20180612/lib/s.h000066400000000000000000000044041331023215600155740ustar00rootroot00000000000000# Spectrum I/O definitions. define S_MAXDIM 3 define S_LENSTR 99 # Lengths of strings define S_LEN 214 # Length of SIO structure define S_FILE Memc[P2C($1)] # Spectrum file name define S_TBCOLS Memc[P2C($1+50)]# Table columns define S_TITLE Memc[P2C($1+100)]# Spectrum file title define S_STRBUF Memc[P2C($1+150)]# String buffer define S_NDIM Memi[$1+200] # Logical dim of spectrum file define S_PDIM Memi[$1+201] # Physical dim of spectrum file define S_NDISP Memi[$1+202] # Number of dispersion points define S_NSPEC Memi[$1+203] # Number of spectra define S_NAUX Memi[$1+204] # Number of auxilary elements define S_PIXTYPE Memi[$1+205] # Pixel type of spectral data define S_DTYPE Memi[$1+206] # Dispersion type define S_W Memd[P2D($1+208)] # Linear wavelength origin define S_DW Memd[P2D($1+210)] # Linear dispersion define S_IM Memi[$1+212] # IMIO pointer for images define S_TB Memi[$1+213] # Table pointer for tables # This is a temporary procedure mapping for experimenting. # The following require an image pointer. #define s_accf imaccf #define s_addd imaddd #define s_addi imaddi #define s_addr imaddr #define s_astr imastr #define s_delf imdelf #define s_flush imflush #define s_getd imgetd #define s_geti imgeti #define s_getr imgetr #define s_gsr imgl3r #define s_gs3r imgs3r #define s_gstr imgstr #define s_map immap #define s_ofnl imofnl #define s_psr impl3r #define s_ps3r imps3r #define s_seti imseti #define s_unmap imunmap # The following do not use an image pointer. #define s_access imaccess #define s_delete imdelete #define s_gcluster imgcluster #define s_gimage imgimage #define s_gsection imgsection #define s_rename imrename #define s_tclose imtclose #define s_tgetim imtgetim #define s_topen imtopen #define s_topenp imtopenp #define s_trew imtrew # The following have a modified argument list. #define s_mwopens mw_openim #define s_mwsaves mw_saveim #define s_gnfn imgnfn #define s_cfnl imcfnl #define S_MAXDIM 3 # #define S_TITLE IM_TITLE($1) #define S_NDIM IM_NDIM($1) #define S_NDISP IM_LEN($1,1) #define S_NSPEC IM_LEN($1,2) #define S_NAUX IM_LEN($1,3) #define S_PIXTYPE IM_PIXTYPE($1) # #define S_FILE IM_HDRFILE($1) #define S_PDIM IM_NPHYSDIM($1) sptable-1.0.pre20180612/lib/scr/000077500000000000000000000000001331023215600157465ustar00rootroot00000000000000sptable-1.0.pre20180612/lib/scr/README000066400000000000000000000002651331023215600166310ustar00rootroot00000000000000SCR -- Runtime files used to draw or display text or graphics on a terminal screen. igsfit.key -- Interactive general surface fitting package used in twodspec.longslit.fitcoords sptable-1.0.pre20180612/lib/scr/cosmicrays.key000066400000000000000000000027571331023215600206470ustar00rootroot00000000000000 COSMIC RAY DETECTION AND REPLACEMENT INTERACTIVE IMAGE CURSOR COMMANDS When using the image display cursor to define a list of training objects the following keystrokes may be given. ? Help c Identify the object as a cosmic ray s Identify the object as a star g Switch to the graphics plot q Quit and continue with the cleaning There are no colon commands. INTERACTIVE GRAPHICS CURSOR COMMANDS The graph shows the ratio of the mean background subtracted flux within the detection window (excluding the candidate cosmic ray and the second brightest pixel) to the flux of the candidate cosmic ray pixel as a function of the mean flux. Both coordinates have been multiplied by 100 so the ratio is in precent. The peaks of extended objects have high flux ratios while true cosmic rays have low ratios. The main purpose of this step is to set the flux ratio threshold for discriminating stars and galaxies. The cursor keys are: ? Help a Toggle between showing all objects and only the training objects d Mark candidate for replacement (applys to '+' points) q Quit. Returns to training or to replace the selected pixels r Redraw the graph s Make a surface plot for the candidate nearest the cursor t Set the flux ratio threshold at the y cursor position u Mark candidate to not be replaced (applys to 'x' points) w Adjust the graph window (see GTOOLS) Print the pixel coordinates for a candidate There are no colon commands except those for the windowing options (type :\help or see GTOOLS). sptable-1.0.pre20180612/lib/scr/deblend.key000066400000000000000000000006331331023215600200570ustar00rootroot00000000000000 SPLOT DEBLENDING OPTIONS a=0p1s Fit intensities and one sigma with positions fixed b=1p1s Fit intensities, one position, and one sigma with separations fixed c=np1s Fit intensities, positions, and one sigma d=0pns Fit intensities and sigmas with positions fixed e=1pns Fit intensities, one position, and sigmas with separations fixed f=npns Fit intensities, positions, and sigmas I Interrupt task immediately sptable-1.0.pre20180612/lib/scr/fftmode.key000066400000000000000000000026351331023215600201120ustar00rootroot00000000000000 FOURIER MODE COMMAND SUMMARY ? Help b PS before filter f FFT after filter g FFT before filter i Period trend I Interrupt o Obj B4/after filter p PS after filter q Quit r Redraw s Spectrum mode t Temp B4/after filter x Correlation mode :plot What type of plot to draw :overlay Overlay filt function? :split_plot Make a split-plot? :one_image What plot on screen :when Plot before/after filter? :log_scale Plot on a Log scale? :zoom FFT zoom parameter ? Print list of cursor key and colon commands b Display power spectra before filtering f Display Fourier transforms after filtering g Display Fourier transforms before filtering i Print period trend information I Interrupt o Display object spectrum before and after filtering p Display power spectra after filtering q Quit r Redraw s Enter spectrum mode t Display template spectrum before and after filtering x Return to correlation mode :plot [obj|ref] What type of plot to draw :overlay [yes|no] Overlay filter function? :split_plot [yes|no] Make a split-plot? :one_image [obj|ref] What to put in single screen :when [before|after] Plot before or after filtering? :log_scale [yes|no] Plot on a Log scale? :zoom [factor] FFT zoom parameter sptable-1.0.pre20180612/lib/scr/flatfit.key000066400000000000000000000006201331023215600201070ustar00rootroot00000000000000 ? - Screen help / - Status line help e - Plot in residual error mode f - Plot in fit to the data mode o - Change order of fit l - Change lower rejection sigma u - Change upper rejection sigma r - Reset fit to include rejected pixels s - Change upper and lower sigmas to same value i - Iterate again n - Iterate N times q - Quit and accept current solution I - Interrupt task immediately sptable-1.0.pre20180612/lib/scr/fxcor.key000066400000000000000000000116711331023215600176070ustar00rootroot00000000000000 RV Fourier Cross Correlation Task Commands ? Help - Subtract blend + Toggle status line a Antisymmetric plot b Fix the background c Cursor read d Deblend e Summary plot f Fourier mode g Mark limits of fit I Interrupt j Plot residuals l Page results m Mark ccf points n Next o Fit obj continuum p Previous q Quit r Redraw s Spectrum mode t Fit temp continuum v Verbose output w Write x Do correlation y Set fit lower limit z Zoom on CCF :apertures :apnum :apodize :autowrite :autodraw :background :ccftype :comment :continuum :correction :deltav :disp :filter :function :height :imupdate :maxwidth :minwidth :nbang :next :objects :output :osample :pbang :peak :pixcorr :previous :printz :rebin :results :rsample :sample :show :templates :tempvel :tnum :unlearn :update :version :verbose :wccf :weights :width :wincenter :window :ymin :ymax ? Print list of cursor key and colon commands - Subtract blended component from correlation peak + Toggle status line output a Display the antisymmetric noise component of the correlation b Fix the background level for the Gaussian fit c Read the cursor in velocity and lag units d Deblend multiple correlation peak e Preview the summary plot of the correlation f Fourier filtering and FFT display mode g Mark correlation peak lag limits and fit I Interrupt j Plot the residuals of the fit to the peak l Page the current logfile of results m Plot polymarkers of actual CCF points on the plot n Go to next (template --> aperture --> object) o Fit or refit object spectrum continuum for subtraction p Go to previous (template --> aperture --> object) q Quit task r Redraw s Examine object/template spectra and display mode t Fit or refit template spectrum continuum for subtraction v Print full correlation results in text window w Write current correlation results to the log file x Compute correlation y Mark correlation peak lower limit and fit z Expand on different correlation peak using full correlation plot :apertures [range] Set/Show list of apertures to process :apnum [aperture] Set/Show specific aperture to process :apodize [fraction] Set/Show fraction of endpts to apodize :autowrite [y|n] Set/Show autowrite param :autodraw [y|n] Set/Show autodraw param :background [background|INDEF] Set/Show background fitting level :ccftype [image|text] Set/Show type of CCF output :comment [string] Add a comment to the output logs :continuum [both|obj|temp|none] Set/Show which spectra to normalize :correction shift Convert a pixel shift to a velocity :deltav Print the velocity per pixel dispersion :disp Print rebinned dispersion info :filter [both|obj|temp|none] Set/Show which spectra to filter :function [gaussian|lorentzian| Set/Show CCF peak fitting function center1d|parabola] :height [height] Set/SHow CCF peak fit height :imupdate [y|n] Set/Show image update flag :maxwidth [width] Set/Show min fitting width :minwidth [width] Set/Show max fitting width :nbang :Next command without a write :next [temp|aperture|object] Go to next correlation pair :objects [list] Set/Show object list :output [fname] Set/Show output logfile :osample [range] Set/Show object regions to correlate :pbang :Previous command without a write :peak [y|n] Set/Show peak height flag :pixcorr [y|n] Set/Show pixel correlation flag :previous [temp|aperture|object] Go to previous correlation pair :printz [y|n] Toggle output of Z values vs. velocity :rebin [small|large|obj|temp] Set/Show the rebin parameter :results [file] Page results :rsample [range] Set/Show template regions to correlate :show [filt|contin|keyw] List current parameters :templates [list] Set/Show template list :tempvel [velocity] Set/Show template velocity :tnum [temp_code] Move to a specific template in the list :unlearn [filt|contin|keyw] Unlearn task parameters :update [filt|contin|keyw] Update task parameters :version Show task version number :verbose [y|n] Set/Show verbose output flag :wccf Write out the CCF to an image|file :weights [weight] Set/Show fitting weights :width [width] Set/Show fitting width about peak :wincenter [center] Set/Show peak window center :window [size] Set/Show size of window :ymin [correlation height] Set/Show lower ccf plot scaling :ymax [correlation height] Set/Show upper ccf plot scaling sptable-1.0.pre20180612/lib/scr/hdicgfit.key000066400000000000000000000054131331023215600202440ustar00rootroot000000000000001. DTOI INTERACTIVE CURVE FITTING OPTIONS ? Print options a Add point at the cursor position to sample (from HD curve only) c Print the coordinates and fit of point nearest the cursor d Delete data point nearest the cursor f Fit the data and redraw or overplot g Redefine graph keys. Any of the following data types may be along either axis. x Independent variable y Dependent variable f Fitted value r Residual (y - f) d Ratio (y / f) n Nonlinear part of y u Density above fog o Overplot the next graph q Exit the interactive curve fitting. Carriage return will also exit. r Redraw graph u Undelete the deleted point nearest the cursor w Set the graph window. For help type 'w' followed by '?'. x Change the x value of the point nearest the cursor y Change the y value of the point nearest the cursor z Change the weight of the point nearest the cursor 2. DTOI INTERACTIVE CURVE FITTING COLON COMMANDS The parameters are listed or set with the following commands which may be abbreviated. To list the value of a parameter type the command alone. :show [file] Show the values of all the parameters :vshow [file] Show the values of all the parameters verbosely :errors [file] Print the errors of the fit (default STDOUT) :reset Return to original conditions (x, y, wts and npts) :ebars [errors/weights] Error bars can indicate either errors or weights :function [value] Fitting function (power, cheby, legen, spline3, spline1) :transform [value] Set the transform type (none, logo, k50, k75) :fog [value] Change the fog level (or ":fog reset") :order [value] Fitting function order :quit Terminate HDFIT without updating database Additional commands are available for setting graph formats and manipulating the graphics. Use the following commands for help. :/help Print help for graph formatting option :.help Print help for cursor mode 3. DTOI INTERACTIVE CURVE FITTING GRAPH KEYS The graph keys h, i, j, k, and l indicate the following types of graphs: h h = (x,y) transformed density vs. log exposure i i = (y,x) log exposrue vs. transformed density j j = (x,r) transformed density vs. residuals k k = (x,d) transformed density vs. the y(data)/y(fit) ratio l l = (y,u) log exposure vs. density above fog (HD Curve) The graph keys may be redefined to put any combination of axes type along either graph axis with the 'g' key. To define a graph key, select the desired key to redefine and then specify the axes types for the horizontal and vertical axes by a pair of comma separated types from the following: d Ratio (y / f) f Fitted values r Residuals of fit (y - f) n Nonlinear part of data (linear component of fit subtracted) x Indepedent variable y Dependent variable (data being fit) u User - which for the DTOI package is density above fog sptable-1.0.pre20180612/lib/scr/icgfit.html000066400000000000000000000055501331023215600201060ustar00rootroot00000000000000 INTERACTIVE CURVE FITTING CURSOR OPTIONS

1. INTERACTIVE CURVE FITTING CURSOR OPTIONS

?	Print options
a	Add point to constrain fit
c	Print the coordinates and fit of point nearest the cursor
d	Delete data point nearest the cursor
f	Fit the data and redraw or overplot
g	Redefine graph keys.  Any of the following data types may be along
	either axis.
	    x  Independent variable	y  Dependent variable
	    f  Fitted value		r  Residual (y - f)
	    d  Ratio (y / f)		n  Nonlinear part of y
h-l	Graph keys.  Defaults are h=(x,y), i=(y,x), j=(x,r), k=(x,d), l=(x,n)
o	Overplot the next graph
q	Exit the interactive curve fitting.  Carriage return will also exit.
r	Redraw graph
s	Set sample range with the cursor
t	Initialize the sample range to all points
v	Change the weight of the point nearest the cursor
u	Undelete the deleted point nearest the cursor
w	Set the graph window.  For help type 'w' followed by '?'.
x	Change the x value of the point nearest the cursor
y	Change the y value of the point nearest the cursor
z	Delete sample region nearest cursor
I	Interrupt task immediately

2. INTERACTIVE CURVE FITTING COLON COMMANDS

The parameters are listed or set with the following commands which may be abbreviated. To list the value of a parameter type the command alone.
:show [file]		Show the values of all the parameters
:vshow [file]		Show the values of all the parameters verbosely
:xyshow [file]		Show the x, y, y fit, and weight data values
:evaluate 	Print the fit at the specified value
:errors [file]		Print the errors of the fit (default STDOUT)
:function [value]	Fitting function (chebyshev, legendre, spline3, spline1)
:grow [value]		Rejection growing radius
:naverage [value]	Sample averaging or medianing window
:order [value]		Fitting function order
:low_reject [value]	Low rejection threshold
:high_reject [value]	High rejection threshold
:niterate [value]	Number of rejection iterations
:sample [value]		Sample ranges
:markrej [value]	Mark rejected points?
Additional commands are available for setting graph formats and manipulating the graphics. Use the following commands for help.
:/help			Print help for graph formatting option
:.help			Print help for general graphics options

3. INTERACTIVE CURVE FITTING GRAPH KEYS

The graph keys are h, i, j, k, and l. The graph keys may be redefined to put any combination of axes types along either graph axis with the 'g' key. To define a graph key select the desired key to redefine and then specify the axes types for the horizontal and vertical axes by a pair of comma separated types from the following:
d  Ratio (y / f)
f  Fitted values
r  Residuals of fit (y - f)
n  Nonlinear part of data (linear component of fit subtracted)
x  Indepedent variable
y  Dependent variable (data being fit)
sptable-1.0.pre20180612/lib/scr/icgfit.key000066400000000000000000000052641331023215600177340ustar00rootroot000000000000001. INTERACTIVE CURVE FITTING CURSOR OPTIONS ? Print options a Add point to constrain fit c Print the coordinates and fit of point nearest the cursor d Delete data point nearest the cursor f Fit the data and redraw or overplot g Redefine graph keys. Any of the following data types may be along either axis. x Independent variable y Dependent variable f Fitted value r Residual (y - f) d Ratio (y / f) n Nonlinear part of y h-l Graph keys. Defaults are h=(x,y), i=(y,x), j=(x,r), k=(x,d), l=(x,n) o Overplot the next graph q Exit the interactive curve fitting. Carriage return will also exit. r Redraw graph s Set sample range with the cursor t Initialize the sample range to all points v Change the weight of the point nearest the cursor u Undelete the deleted point nearest the cursor w Set the graph window. For help type 'w' followed by '?'. x Change the x value of the point nearest the cursor y Change the y value of the point nearest the cursor z Delete sample region nearest cursor I Interrupt task immediately 2. INTERACTIVE CURVE FITTING COLON COMMANDS The parameters are listed or set with the following commands which may be abbreviated. To list the value of a parameter type the command alone. :show [file] Show the values of all the parameters :vshow [file] Show the values of all the parameters verbosely :xyshow [file] Show the x, y, y fit, and weight data values :evaluate Print the fit at the specified value :errors [file] Print the errors of the fit (default STDOUT) :function [value] Fitting function (chebyshev, legendre, spline3, spline1) :grow [value] Rejection growing radius :naverage [value] Sample averaging or medianing window :order [value] Fitting function order :low_reject [value] Low rejection threshold :high_reject [value] High rejection threshold :niterate [value] Number of rejection iterations :sample [value] Sample ranges :markrej [value] Mark rejected points? Additional commands are available for setting graph formats and manipulating the graphics. Use the following commands for help. :/help Print help for graph formatting option :.help Print help for general graphics options 3. INTERACTIVE CURVE FITTING GRAPH KEYS The graph keys are h, i, j, k, and l. The graph keys may be redefined to put any combination of axes types along either graph axis with the 'g' key. To define a graph key select the desired key to redefine and then specify the axes types for the horizontal and vertical axes by a pair of comma separated types from the following: d Ratio (y / f) f Fitted values r Residuals of fit (y - f) n Nonlinear part of data (linear component of fit subtracted) x Indepedent variable y Dependent variable (data being fit) sptable-1.0.pre20180612/lib/scr/idicgfit.key000066400000000000000000000054221331023215600202450ustar00rootroot000000000000001. INTERACTIVE CURVE FITTING CURSOR KEYS ? Print options a Add point to constrain fit (points are not added to feature list) c Print the coordinates and fit of point nearest the cursor d Delete data point nearest the cursor f Fit the data and redraw or overplot g Redefine graph keys. Any of the following data types may be along either axis. x Pixel coordinate y User coordinate f Fitted value r Residual=(y - f) d Ratio=(y / f) n Nonlinear part of y v Radial velocity=(y - f) / y * 30000 h-l Graph keys. Defaults are h=(y,x), i=(y,v), j=(y,r), k=(y,d), l=(y,n) o Overplot the next graph q Exit the interactive curve fitting. Carriage return will also exit. r Redraw graph s Set sample range with the cursor t Initialize the sample range to all points u Undelete the deleted point nearest the cursor v Change the weight of the point nearest the cursor w Set the graph window. For help type 'w' followed by '?'. x Change the x value of the point nearest the cursor y Change the y value of the point nearest the cursor z Delete sample region nearest cursor I Interrupt task immediately 2. INTERACTIVE CURVE FITTING COLON COMMANDS The parameters are listed or set with the following commands which may be abbreviated. To list the value of a parameter type the command alone. :show [file] Show the values of all the parameters :vshow [file] Show the values of all the parameters verbosely :xyshow [file] Show the x, y, y fit, and weight data values :evaluate Print the fit at the specified value :errors [file] Print the errors of the fit (default STDOUT) :function [value] Fitting function (chebyshev, legendre, spline3, spline1) :grow [value] Rejection growing radius :naverage [value] Sample averaging or medianing window :order [value] Fitting function order :low_reject [value] Low rejection threshold :high_reject [value] High rejection threshold :niterate [value] Number of rejection iterations :sample [value] Sample ranges :markrej [value] Mark rejected points? Additional commands are available for setting graph formats and manipulating the graphics. Use the following commands for help. :/help Print help for graph formatting option :.help Print help for general graphics options 3. INTERACTIVE CURVE FITTING GRAPH KEYS The graph keys are h, i, j, k, and l. The graph keys may be redefined to put any combination of axes types along either graph axis with the 'g' key. To define a graph key select the desired key to redefine and then specify the axes types for the horizontal and vertical axes by a pair of comma separated types from the following: d Ratio = (y / f) f Fitted values r Residuals of fit = (y - f) n Nonlinear part of data (linear component of fit subtracted) v Radial velocity = 30000 * (y - f) / y x Pixel coordinates y User coordinates sptable-1.0.pre20180612/lib/scr/igsfit.key000066400000000000000000000021001331023215600177360ustar00rootroot00000000000000 INTERACTIVE SURFACE FITTING ? List commands c Print data values for point nearest the cursor d Delete the point or set of points with constant x, y, or z nearest the cursor (p, x, y, z,) f Fit surface l Graph the last set of points (in zoom mode) n Graph the next set of points (in zoom mode) p Graph all features q Quit r Redraw a graph u Undelete the point or set of points with constant x, y, or z nearest the cursor (p, x, y, z,) w Window the graph. Type '?' to the "window:" prompt for more help. x Select data for the x axis (x, y, z, s, r) y Select data for the y axis (x, y, z, s, r) z Zoom on the set of points with constant x, y, or z (x, y, z) Unzoom with p I Interrupt task immediately :corners List the surface fit at the corners of the image :function type Set the function for the fitted surface (chebyshev, legendre) :show Show the fitting parameters :xorder value Set the x order for the fitted surface :yorder value Set the y order for the fitted surface :/help Additional graph formatting commands :.help Additional general graph commands sptable-1.0.pre20180612/lib/scr/ilsetbins.key000066400000000000000000000005741331023215600204620ustar00rootroot00000000000000 Set Illumination Bins ? Print options i Clear the sample ranges q Exit interactive curve fitting s Set bins with the cursor I Interrupt task immediately The parameters are listed or set with the following commands which may be abbreviated. To list the value of a parameter type the command alone. :bins value Illumination bins :show Show the values of all the parameters sptable-1.0.pre20180612/lib/scr/pdm.key000066400000000000000000000035451331023215600172470ustar00rootroot00000000000000 Phase Dispersion Minimization ? list options h graph data i,k graph theta (abscissa) verses frequency or period respectively p graph phase curve for period/frequency at cursor x position (th) d,u delete or undelete respectively the point nearest cursor (d,ph) f call ICFIT on displayed data (data or phase plot) j subtract fit from data, use residuals s set sample range for calculations (data plot) t reset range to entire dataset (data plot) g significance of theta at cursor x position (theta plot) a amplitude and epoch at cursor x position or of plot (th,ph) , set minp or minf to cursor x position (theta plot) . set maxp or maxf to cursor x position (theta plot) m mark range and find minimum in this range (theta plot) e turn on/off error bars on phase plot, and if (phaseplot), replot r replot x remove a trend from the data by removing a bestfit line z flip the y-axis scale q quit The following commands may be abbreviated. If entered without an argument; :minp, :maxp, :minf, :maxf, and :ntheta will display the named parameter; :show, :vshow will print to STDOUT; :signif, :ampep, and :phase, will do the calculation at the remembered period. :show [file] show parameter settings :vshow [file] show verbose information :minp :maxp [period] set/show min/max search period :minf :maxf [frequency] set/show min/max search frequency :ntheta [number] set/show number of points for theta :sample [value] set/show the sample ranges :signif [period] find theta significance :ampep [period] amplitude and epoch :phase [period] graph phase curve :unreject unreject all the data points :alldata reset range to entire dataset :origdata reset data to original dataset sptable-1.0.pre20180612/lib/scr/sensfunc.key000066400000000000000000000057241331023215600203140ustar00rootroot00000000000000 SENSFUNC: Determine Sensitivity Function SUMMARY: ? Help a Add data c Composite data d Delete data e Extinction f Fit (overplot) g Fit (redraw) i Info m Move data o Original data q Quit r Redraw s Shift data u Undelete data w Change weights I Interrupt :function [type] :graphs [types] :images [images] :marks types :order [value] :skys [images] :stats [file] :vstats [file] Graph types: a=(resid,airmass), c=(composite,lambda), e=(extinction,lambda) i=(Fluxed image,lambda), r=(resid, lambda), s=(Sensitivity,lambda) CURSOR KEYS: ? Print help a Add a point at the cursor position c Toggle composite points d Delete point, star, or wavelength nearest the cursor e Toggle residual extinction correction f Fit data with a sensitivity function and overplot the fit g Fit data with a sensitivity function and redraw the graphs i Print information about point nearest the cursor m Move point, star, wavelength nearest the cursor to new sensitivity o Reset to original data q Quit and write sensitivity function for current aperture r Redraw graph(s) s Toggle shift of standard stars to eliminate mean deviations u Undelete point, star, or wavelength nearest the cursor w Change weights of point, star, or wavelength nearest the cursor I Interrupt task immediately COLON COMMANDS AND ARGUMENTS: :function [type] Function to be fit to sensitivity data. The types are: chebyshev - Chebyshev polynomial legendre - Legendre polynomial spline1 - Linear spline spline3 - Cubic spline :graphs [types] Graphs to be displayed (up to four). The types are: a - Residual sensitivity vs airmass c - Composite residuals and error bars vs wavelength e - Extinction (and revised extinction) vs wavelength i - Flux calibrated image vs wavelength r - Residual sensitivity vs wavelength s - Sensitivity vs wavelength :images [images] Images to flux calibrate and plot (up to four images) :marks [marks] Mark types to use for included, deleted, and added points: point, box, plus, cross, diamond, hline, vline, hebar, vebar, circle :order [order] Order of function (polynomial terms or spline pieces) :skys [images] Sky images for flux calibration (optional, up to four images) :stats [file] Statistics about standard stars and sensitivity fit :vstats [file] Verbose statistics about standard stars and sensitivity fit EXAMPLES: :func spline3 Select cubic spline function :g srae Graph sensitivity, residuals, airmass, and extinction :g sii Graph sensitivity and two images :i n1.0004 n1.0008 Set first two images to graph (the defaults are taken from the standard star list) :skys n1.0005 Subtract this sky image from first image for calibration :m plus Change the mark type for included points and don't change the deleted or added point mark type :stats Print statistics to terminal :vstats stdstats Print verbose statistics to file sptable-1.0.pre20180612/lib/scr/setlimits.key000066400000000000000000000014611331023215600204770ustar00rootroot00000000000000 SET EXTRACTION APERTURES ? Display commands a Set the aperture number for the current aperture l Set the lower limit at the cursor for the current aperture u Set the upper limit at the cursor for the current aperture y Set the aperture limits at the Y cursor positions for the aperture nearest the X cursor + Make the next aperture to the right the current aperture - Make the next aperture to the left the current aperture . Make the nearest aperture to the cursor the current aperture The following colon commands set or show various parameters. :show [file] Show or record the apertures :aperture [number] Show or set aperture number :lower [value] Show or set aperture lower limit :upper [value] Show or set aperture upper limit :.help Display cursor mode commands :/help Display formating commands sptable-1.0.pre20180612/lib/scr/specmode.key000066400000000000000000000021201331023215600202520ustar00rootroot00000000000000 SPECTRUM REVIEW COMMAND SUMMARY ? Help b Select obj/temnp sample region d Print velocity diff e Do summary plot f Fourier mode i Original spectra I Interrupt n Disp. cont. spectra p Display prepared spectra q Quit r Redraw s Select sample regions u Unselect a sample region x Return to correlation mode :osample List of object sample regions :rsample List of template sample regions :show Show the task parameters ? Print list of cursor key and colon commands b Select sample regions for both spectra d Print velocity difference between two cursor positions e Plot a preview of the summary plot f Enter Fourier mode i Display original input spectra I Interrupt n Display continuum subtracted spectra p Display the prepared spectra prior to correlation q Quit r Redraw s Select sample regions u Unselect sample regions x Return to correlation mode :sample [list] List of sample regions :show Show the task parameters sptable-1.0.pre20180612/lib/scr/splot.key000066400000000000000000000030731331023215600176240ustar00rootroot00000000000000/ - Cycle thru short help on stat line p - Convert to wavelength scale ? - This display q - Quit and exit a - Auto expand between cursors r - Replot current spectrum b - Set base plot level to 0.0 s - Smooth (boxcar) c - Print cursor position t - flaTTen and normalize to 1.0 d - Deblend lines using Gaussians u - Set wavelength scale e - Equiv. width, integ flux, center v - Equiv. width -- width at 1/2 flux f - Arithmetic functions: log, sqrt... w - Window the graph g - Get new image and plot x - Connects 2 cursor positions h - Equiv. width -- one sided y - Plot std star flux from calib file i - Write current image as new image z - Expand x range by factor of 2 j - Fudge a point to Y-cursor value - - (Minus) subtract deblended fit k - Equiv. width -- continuum = 1 . - Up slide spectrum l - Convert to F-lambda , - Down slide spectrum m - Mean, RMS, snr in marked region $ - Convert to channel scale n - Convert to F-nu I - Interrupt task immediately o - Overplot another spectrum # - Select new line/aperture G - Gaussian fit to single line For 'h' key: a - Left side for width at 1/2 flux l - Left side for continuum = 1 b - Right side for width at 1/2 flux r - Right side for continuum = 1 The colon commands do not allow abbreviations. :show - Show full output of deblending and equivalent width measurments :log - Enable logging to save_file :nolog - Disable logging to save_file sptable-1.0.pre20180612/lib/smw.h000066400000000000000000000141231331023215600161370ustar00rootroot00000000000000# Spectrum I/O definitions. include # SMW definitions. # The SMW package (the SMW structure and routines) provide an interface # between the MWCS and the ONEDSPEC packages. It provides translation # between different image formats and a standard interface for the spectral # tasks. The types of formats supported are MULTISPEC, EQUISPEC, and 1-3D # simple linear WCS as well as some older formats. # # The SMW package also provides separating the MULTISPEC MWCS into groups to # avoid limitations in the number of attributes allowed by MWCS. This is # primarily required for dispersion correction. define SMW_NSPLIT 500 # Number of spectra per WCS define SMW_LEN (33 + $1) # Length of SMW structure define SMW_FORMAT Memi[$1] # Spectrum format define SMW_NSPEC Memi[$1+1] # Number of spectra define SMW_NBANDS Memi[$1+2] # Number of associated bands define SMW_TRANS Memi[$1+3] # Transposed image? define SMW_PDIM Memi[$1+4] # Physical dimension define SMW_PAXIS Memi[$1+$2+4] # Physical axes [3] define SMW_LDIM Memi[$1+8] # Logical dimension define SMW_LAXIS Memi[$1+$2+8] # Logical axes [3] define SMW_LLEN Memi[$1+$2+11] # Logical axes lengths [3] define SMW_NSUM Memi[$1+$2+14] # Logical summing factors [2] define SMW_DTYPE Memi[$1+17] # Dispersion type define SMW_W1 Memd[P2D($1+18)] # Coord of first phys pixel define SMW_DW Memd[P2D($1+20)] # Coord interval per phys pixel define SMW_Z Memd[P2D($1+22)] # Doppler factor define SMW_NW Memi[$1+24] # Number of dispersion pixels define SMW_APS Memi[$1+25] # Pointer to apertures define SMW_BEAMS Memi[$1+26] # Pointer to beams define SMW_APLOW Memi[$1+27] # Pointer to aplows define SMW_APHIGH Memi[$1+28] # Pointer to aphighs define SMW_APID Memi[$1+29] # Pointer to default apid define SMW_APIDS Memi[$1+30] # Pointer to apids define SMW_CTLP Memi[$1+31] # CT logical -> physical define SMW_NMW Memi[$1+32] # Number of MWCS pointers define SMW_MW Memi[$1+$2+33] # MWCS pointer(s) # Spectrum formats define SMW_FORMATS "|equispec|multispec|" define SMW_ND 0 # N-dimensional linear WCS define SMW_ES 1 # Equispec WCS define SMW_MS 2 # Multispec WCS # Coordinate transformation structure. define SMW_CTLEN (6 + $1) # Length of SMW CT structure define SMW_SMW Memi[$1] # SMW pointer define SMW_CTTYPE Memi[$1+1] # Transformation type define SMW_DAXIS Memi[$1+2] # Dispersion axis define SMW_AAXIS Memi[$1+3] # Aperture axis define SMW_CTL Memi[$1+4] # Logical/physical pointer define SMW_NCT Memi[$1+5] # Number of CT pointers define SMW_CT Memi[$1+$2+6] # Physical/world pointer # Transformation types define SMW_CTTYPES "|logical|physical|" define SMW_WL 12 # World to logical define SMW_WP 13 # World to physical define SMW_LW 21 # Logical to world define SMW_LP 23 # Logical to physical define SMW_PW 31 # Physical to world define SMW_PL 32 # Physical to logical # SHDR - Spectrum header data structure define LEN_SHDR 380 define LEN_SHDRS 79 # Length of strings define IMNAME Memc[P2C($1)] # Spectrum image name define IMSEC Memc[P2C($1+40)] # Spectrum image section define TITLE Memc[P2C($1+80)] # Title define LABEL Memc[P2C($1+120)] # Dispersion label define UNITS Memc[P2C($1+160)] # Dispersion units define FLABEL Memc[P2C($1+200)] # Flux label define FUNITS Memc[P2C($1+240)] # Flux units define IM Memi[$1+280] # IMIO pointer define MW Memi[$1+281] # SMW pointer define CTLW Memi[$1+282] # SMW logical -> world define CTWL Memi[$1+283] # SMW world -> logical define CTLW1 Memi[$1+284] # SMW logical -> world define CTWL1 Memi[$1+285] # SMW world -> logical define UN Memi[$1+286] # UNITS pointer for SX define MWUN Memi[$1+287] # UNITS pointer of SMW define FUN Memi[$1+288] # Flux units pointer define FUNIM Memi[$1+289] # Flux units pointer for image define LINDEX Memi[$1+$2+289] # Logical image index [2] define PINDEX Memi[$1+$2+291] # Physical image index [2] define APINDEX Memi[$1+294] # Aperture index define AP Memi[$1+295] # Aperture ID define APLOW Memr[P2R($1+296)+$2-1] # Aperture lower limit [2] define APHIGH Memr[P2R($1+298)+$2-1] # Aperture upper limit [2] define BEAM Memi[$1+300] # Beam ID define OFLAG Memi[$1+301] # Spectrum object type flag define IT Memr[P2R($1+302)] # Integ. time define RA Memr[P2R($1+303)] # Right ascension define DEC Memr[P2R($1+304)] # Declination define UT Memr[P2R($1+305)] # Universal time define ST Memr[P2R($1+306)] # Siderial time define HA Memr[P2R($1+307)] # Hour angle define AM Memr[P2R($1+308)] # Airmass define W0 Memr[P2R($1+309)] # Starting wavelength define W1 Memr[P2R($1+310)] # Ending wavelength define WP Memr[P2R($1+311)] # Wavelength increment per pixel define DC Memi[$1+312] # Dispersion correction define EC Memi[$1+313] # Extinction correction define FC Memi[$1+314] # Flux calibration define RC Memc[P2C($1+315)] # Reddening correction define NP1 Memi[$1+355] # First logical pixel define NP2 Memi[$1+356] # Last logical pixel define SN Memi[$1+357] # Number of pixels define SPEC Memi[$1+$2+357] # Pointers to spectra define SID Memi[$1+$2+364] # Pointers to spectra ID strings define STYPE Memi[$1+$2+371] # Spectrum type # Spectrum types and access modes. define STYPES "|coordinates|spectrum|raw|background|sigma|continuum|" define SH_NTYPES 6 # Number of spectrum types define SHHDR 0 # Get header only define SHX 1 # Get coordinates define SHDATA 2 # Get spectrum define SHRAW 3 # Get raw spectrum define SHSKY 4 # Get sky define SHSIG 5 # Get sigma define SHCONT 6 # Get continuum # Shorthand for pointers to spectra. define SX SPEC($1,SHX) # Spectrum coordinates define SY SPEC($1,SHDATA) # Spectrum pointer define SR SPEC($1,SHRAW) # Raw spectrum pointer define SS SPEC($1,SHSKY) # Sky pointer define SE SPEC($1,SHSIG) # Sigma pointer define SC SPEC($1,SHCONT) # Continuum pointer # Object flag values define SKY 0 define OBJECT 1 define ARC 2 define FLAT 3 # Dispersion correction define DCNO -1 define DCLINEAR 0 define DCLOG 1 define DCFUNC 2 # Extinction correction define ECNO -1 define ECYES 0 # Flux calibration define FCNO -1 define FCYES 0 sptable-1.0.pre20180612/lib/sptabledb.dat000066400000000000000000000027631331023215600176210ustar00rootroot00000000000000# A simple ASCII file with a single column. C1 SIMPLE_ASCII NULL 1 NULL NULL # A simple ASCII file with a two columns: dispersion, spectrum. C1,C2 SIMPLE_ASCII 1 2 NULL NULL # Some simple common defaults. WAVE,FLUX SIMPLE_TABLE 1 2 NULL NULL FLUX,WAVE1 SIMPLE_TABLE 2 1 NULL NULL FLUX,WAVE1,WAVE2 SIMPLE_TABLE 2 1 NULL NULL # A STIS format. WAVE,FLUX,DATA_QUALITY,SIGMA STIS 1 2 NULL NULL # An IUE format. WAVE,FLUX,SIGMA,QUALITY IUE 1 2 NULL NULL # An STECF format. SPORDER,NELEM,WAVELENGTH,GROSS,BACKGROUND,NET,FLUX,ERROR,NET_ERROR,DQ,A2CENTER,EXTRSIZE,MAXSRCH,BK1SIZE,BK2SIZE,BK1OFFST,BK2OFFST,EXTRLOCY,OFFSET STECF 3 7 8 6 # ESO ESSENCE FORS WAVE,FLUX,ERR ESSENCE 1 2 3 NULL # ESO PESSTO WAVE,FLUX,ERR,SKYBACK PESSTO 1 2 3 4 # ESO UVES/IDP FLUXED WAVE,FLUX_REDUCED,ERR_REDUCED,BGFLUX_REDUCED,FLUX,ERR UVES_IDP_Fluxed 1 5 6 2 # ESO UVES/IDP FLUXED SLICER (e.g.: ADP.2013-12-06T13_14_12.007.fits) WAVE,FLUX_REDUCED,ERR_REDUCED,FLUX,ERR UVES_IDP_Fluxed_Slicer 1 4 5 # ESO UVES/IDP REDUCED (e.g. ADP.2013-09-25T12_48_22.247.fits) WAVE,FLUX_REDUCED,ERR_REDUCED,BGFLUX_REDUCED UVES_IDP_Reduced 1 2 3 # ESO UVES/IDP REDUCED SLICER (e.g., ADP.2013-12-06T13_13_24.253.fits) WAVE,FLUX_REDUCED,ERR_REDUCED UVES_IDP_Reduced_Slicer 1 2 3 # ESO XSHOOTER/IDP WAVE,FLUX,ERR,QUAL,SNR,FLUX_REDUCED,ERR_REDUCED XSHOOTER_IDP 1 2 3 6 # ESO GaiaESO, GIRAFFE/IDP WAVE,FLUX,ERR,QUAL GaiaESO 1 2 3 # ESO ZCOSMOS,GOODS/FORS2 WAVE,FLUX_REDUCED,ERR ZCOSMOS 1 2 3 # ESO REDUCED WAVE,FLUX_REDUCED,ERR_REDUCED ESO_Reduced 1 2 3 sptable-1.0.pre20180612/lib/strip.sptable000066400000000000000000000005461331023215600177010ustar00rootroot00000000000000# STRIP.SPTABLE -- Rmfiles command script, used to strip the SPTABLE source # directories of all files not required for ordinary runtime use of the system. src -allbut .hlp .hd .men .cl .par .key .dat .mip .fits src/xonedspec/doc/sys -all -file bin.linux/OBJS.arc.Z -file bin.linux64/OBJS.arc.Z -file bin.macosx/OBJS.arc.Z -file bin.macintel/OBJS.arc.Z sptable-1.0.pre20180612/lib/units.dat000066400000000000000000000002011331023215600170040ustar00rootroot00000000000000nm nanometers mm millimeters cm centimeters m meters Hz hertz KHz kilohertz MHz megahertz GHz Gigahertz wn "inverse centimeters" sptable-1.0.pre20180612/lib/units.h000066400000000000000000000031371331023215600164760ustar00rootroot00000000000000# Definition for units package define UN_LEN 126 # Length of units structure define SZ_UNITS 79 # Length of units strings define UN_TYPE Memi[$1] # Unit type code define UN_CLASS Memi[$1+1] # Unit class code define UN_LOG Memi[$1+2] # Log code define UN_INV Memi[$1+3] # Inverse code define UN_SCALE Memr[P2R($1+4)] # Scale factor define UN_VREF Memr[P2R($1+5)] # Ref lambda (ang) for velocity define UN_LABEL Memc[P2C($1+6)] # Unit label define UN_UNITS Memc[P2C($1+46)] # Units string define UN_USER Memc[P2C($1+86)] # User units string # Unit classes define UN_UNKNOWN 0 # Unknown define UN_WAVE 1 # Wavelength define UN_FREQ 2 # Frequency define UN_VEL 3 # Velocity define UN_ENERGY 4 # Energy define UN_DOP 5 # Doppler shift # Unit types define UN_NUNITS 17 define UN_DIC "|angstroms|nanometers|millimicrons|microns|millimeters\ |centimeters|meters|hertz|kilohertz|megahertz|gigahertz\ |m/s|km/s|ev|kev|mev|z|log|inverse|" # Unit scales: Conversions from Angstroms define UN_ANG 1.0 # angstroms define UN_NM 0.1 # nanometers define UN_MMIC 0.1 # millimicrons define UN_MIC 1E-4 # microns define UN_MM 1E-7 # millimeters define UN_CM 1E-8 # centimeter define UN_M 1E-10 # meters define UN_HZ 2.9979E18 # hertz define UN_KHZ 2.9979E15 # kilohertz define UN_MHZ 2.9979E12 # megahertz define UN_GHZ 2.9979E9 # gigaertz define UN_MPS 2.9979E8 # m/s define UN_KPS 2.9979E5 # km/s define UN_EV 1.2396E4 # ev define UN_KEV 1.2396E1 # kev define UN_MEV 1.2396E-2 # mev define UN_Z 1.0 # doppler shift # Unit abbreviations define ABBREVIATIONS "noao$lib/units.dat" sptable-1.0.pre20180612/lib/zzsetenv.def000066400000000000000000000004631331023215600175320ustar00rootroot00000000000000# Global environment definitions for the SPTABLE packages. set pkglibs = "sptable$bin(arch)/,sptable$lib/,noao$lib/" set spbin = "sptable$bin(arch)/" set splib = "sptable$lib/" set spsrc = "sptable$src/" set xonedspec = spsrc$xonedspec/ set xrv = spsrc$xrv/ #set xapextract = spsrc$xapextract/ keep sptable-1.0.pre20180612/mkconfigure000066400000000000000000000005671331023215600166550ustar00rootroot00000000000000setenv sptable ${extern}sptable/ setenv PKGENV sptable setenv IRAFULIB ${sptable}lib/ alias mksplib "(cd $sptable/src/xonedspec; mkpkg xflags='-cqx' smw)" alias mksptable "(cd $sptable/src/xonedspec; mkpkg xflags='-cqx' lflags='-qxz' relink install)" alias mksptabrv "(cd $sptable/src/xrv; mkpkg xflags='-cqx' lflags='-qxz' relink install)" set cdpath = ($sptable $cdpath) sptable-1.0.pre20180612/mkpkg000066400000000000000000000052421331023215600154500ustar00rootroot00000000000000# Make the SPTABLE package. update: $call update@src/ ; # IRAF multiple architecture support. # ---------------------------------------- arch: # show current float option showfloat: $verbose off !$(hlib)/mkfloat.csh ; generic: # generic installation (no bin) $ifnfile (bin.generic) !mkdir bin.generic $endif $verbose off $set DIRS = "lib src" !$(hlib)/mkfloat.csh generic -d $(DIRS) ; freebsd: # install FreeBSD binaries $ifnfile (bin.freebsd) !mkdir bin.freebsd $endif $verbose off $set DIRS = "lib src" !$(hlib)/mkfloat.csh freebsd -d $(DIRS) ; linux: # install Linux 32-bit binaries $ifnfile (bin.linux) !mkdir bin.linux $endif $verbose off $set DIRS = "lib src" !$(hlib)/mkfloat.csh linux -d $(DIRS) ; linux64: # install x86_64 binaries $ifnfile (bin.linux64) !mkdir bin.linux64 $endif $verbose off $set DIRS = "lib src" !$(hlib)/mkfloat.csh linux64 -d $(DIRS) ; macosx: # install Mac OS X (PPC) binaries $ifnfile (bin.macosx) !mkdir bin.macosx $endif $verbose off $set DIRS = "lib src" !$(hlib)/mkfloat.csh macosx -d $(DIRS) ; macintel: # install Mac OS X (Intel) binaries $ifnfile (bin.macintel) !mkdir bin.macintel $endif $verbose off $set DIRS = "lib src" !$(hlib)/mkfloat.csh macintel -d $(DIRS) ; cygwin: # install Cygwin binaries $ifnfile (bin.cygwin) !mkdir bin.cygwin $endif $verbose off $set DIRS = "lib src" !$(hlib)/mkfloat.csh cygwin -d $(DIRS) ; redhat: # install Redhat Linux binaries $ifnfile (bin.redhat) !mkdir bin.redhat $endif $verbose off $set DIRS = "lib src" !$(hlib)/mkfloat.csh redhat -d $(DIRS) ; sparc: # install sparc binaries $ifnfile (bin.sparc) !mkdir bin.sparc $endif $verbose off $set DIRS = "lib src" !$(hlib)/mkfloat.csh sparc -d $(DIRS) ; ssun: # install Sun/Solaris binaries $ifnfile (bin.ssun) !mkdir bin.ssun $endif $verbose off $set DIRS = "lib src" !$(hlib)/mkfloat.csh ssun -d $(DIRS) ; sunos: # install SunOS (Solaris x86) binaries $ifnfile (bin.sunos) !mkdir bin.sunos $endif $verbose off $set DIRS = "lib src" !$(hlib)/mkfloat.csh sunos -d $(DIRS) ; noP2R: !find . -type f -name '*[xh]' -exec grep -q P2R {} \; -exec sed -i -e 's+P2R++g' {} \; ; sptable-1.0.pre20180612/sptable.cl000066400000000000000000000005251331023215600163650ustar00rootroot00000000000000#{ SPTABLE -- Tasks for working with spectral table formats. # For now force only old templates. reset use_new_imt = no cl < "sptable$lib/zzsetenv.def" package sptable, bin = spbin$ set xonedspec = "sptable$src/xonedspec/" task xonedspec.pkg = "xonedspec$xonedspec.cl" set xrv = "sptable$src/xrv/" task xrv.pkg = "xrv$xrv.cl" clbye() sptable-1.0.pre20180612/sptable.hd000066400000000000000000000005101331023215600163540ustar00rootroot00000000000000# Help directory for the SPTABLE packages. $xonedspec = "./src/xonedspec/" $xrv = "./src/xrv/" # Define help files for the packages. sptod men = xonedspec$xonedspec.men, hlp = .., pkg = xonedspec$xonedspec.hd, src = xonedspec$xonedspec.cl sptrv men = xrv$xrv.men, hlp = .., pkg = xrv$xrv.hd, src = xrv$xrv.cl sptable-1.0.pre20180612/sptable.men000066400000000000000000000003351331023215600165450ustar00rootroot00000000000000 SPECTRAL TABLES PACKAGE xonedspec - One dimensional spectral red & analysis package xrv - Radial velocity package sptabguide - Guide to using spectral tables with onedspec and rv sptable-1.0.pre20180612/sptable.par000066400000000000000000000000641331023215600165470ustar00rootroot00000000000000# Package parameters. version,s,h,"V1.0: 20180612" sptable-1.0.pre20180612/src/000077500000000000000000000000001331023215600152005ustar00rootroot00000000000000sptable-1.0.pre20180612/src/mkpkg000066400000000000000000000001711331023215600162330ustar00rootroot00000000000000# Make the SPTABLE tasks. update: $call update@mwcs $call smw@xonedspec $call update@xonedspec $call update@xrv ; sptable-1.0.pre20180612/src/mwcs/000077500000000000000000000000001331023215600161515ustar00rootroot00000000000000sptable-1.0.pre20180612/src/mwcs/MWCS.hlp000066400000000000000000001276431331023215600174440ustar00rootroot00000000000000.help MWCS Oct89 "Mini-WCS Interface" .ce \fBMini-WCS Interface\fR .ce Doug Tody .ce October 1989 .nh Introduction The mini-WCS interface represents a first cut at the general problem of representing a linear or nonlinear world coordinate system (WCS). While some of the harder problems are avoided and the general WCS problem remains to be solved, the current interface should be largely upwards compatible with future versions of the interface. The main items omitted from this initial version of the interface are support for general nonlinear world coordinate systems, particularly support for modeling of geometric distortions and arbitrary application defined coordinate mapping functions. Limited support is provided for the projective geometries. .nh WCS Definition .nh 2 Linear Transformations Any linear transformation consisting of some combination of a shift, rotate, axis-flip, scale change, etc. can be expressed as .ks .nf |x'| |a b| |x| |u| | | = | | * | | + | | [2.1] |y'| |c d| |y| |v| .fi .ke where [x,y] are the input coordinates, [x',y'] are the transformed coordinates, [a,b,c,d] is a rotation matrix, and [u,v] is a shift vector. For example, the X term of a combination of a rotation about a point [x0,y0] plus a shift to an offset [x1,y1] may be expressed as .ks .nf x' = a(x - x0) + b(y - y0) + x1 = ax - ax0 + by - by0 + x1 = ax + by + u .fi .ke whence .nf u = x1 - ax0 - by0 and [2.2] v = y1 - cx0 - dy0 .fi Another way of expressing this is to note that [U,V] is the transform of the origin [x,y]=[0,0] of the original coordinate system. There is nothing special about the rotation point; a rotation about any point [x,y] is equivalent to a rotation about the origin followed by a translation equal to the distance of the rotation point from the origin. The inverse transformation is given by .nf |x| | -1| / |x'| |u| \ | | = | A | * < | | - | | > [2.3] |y| | | \ |y'| |v| / .fi where A**(-1) is the inverse of the rotation matrix [a,b,c,d]. .nh 2 World Coordinate Systems A world coordinate system (WCS) defines the transformation between a physical coordinate system (e.g., pixel coordinates in a reference image), and world coordinates expressed in some arbitrary units. A two dimensional WCS can be expressed as .ks .nf (x',y') = F (l,m, Wx,Wy) (l,m) = [CD] * (x-Rx, y-Ry) [2.4] where x,y Are the coordinates of a point in the physical system. l,m Is a linearly transformed representation of the point. x',y' Are the coordinates of the same point in the world system. F Is the WCS function, possibly a nonlinear function. Rx,Ry Define the reference point in the physical system. Wx,Wy Are the world coordinates of the reference point. [CD] Is the coefficient determination (CD) matrix. .fi .ke The notation [CD]*(x,y) denotes a matrix multiply of the CD matrix [CD] and the vector (x,y), i.e., a linear transformation of the vector (x,y). If the WCS contains a nonlinear component, as for a sky projection, this is described by the function F in terms of the intermediate coordinates (l,m), e.g., the displacement in degrees from the reference point. Separation of the WCS into linear and nonlinear components allows full specification of linear systems using only the basic interface, and simplifies the representation of the nonlinear part of the WCS. The nonlinear component itself (F) may be an object of arbitrary complexity. In the case of a simple 2D linear WCS with no rotation this reduces to .ks .nf x' = (x - Rx) * CD[1,1] + Wx y' = (y - Ry) * CD[2,2] + Wy .fi .ke In the general case the world system may be rotated with respect to the physical system (original image matrix), hence the WCS must include a rotation term. Specifying this as a general linear transformation expressed as a matrix multiplication allows the representation of such transformations as conversion between skewed and cartesian coordinates as well as the more conventional rotation and scale transformation. The CD matrix representation (developed by STScI and now also associated with FITS), in addition to allowing specification of a linear transformation, is responsible for converting between the coordinate units used in the physical system and those used in the world system (more precisely, in the general case the units of (l,m) may differ from those of the world system, since F can also change the units). It is even possible for the world system to use different units on different axes, so long as a rotation is not defined between axes with different units. For example, if the WCS is used to describe an image cube, following application of the CD matrix axes 1 and 2 might have units of arc seconds, and axis 3 frequency. In this case rotation would be defined only between axes 1 and 2, i.e., the off-diagonal CD matrix terms CD[1:2,3] and CD[3,1:2] must be zero, with CD[3,3] giving the scale for axis 3 independently of any rotation between axes 1 and 2. This restriction on rotation between dissimilar axes applies only to the world system described by the CD matrix. As we shall see in the next section, when the WCS refers to an image, arbitrary rotations of the raw pixel matrix are still possible by using a separate pixel space transformation to describe transformations of the image matrix. .nh 3 WCS Rotation Between Dissimilar Axes To see why rotation between dissimilar axes is disallowed in some circumstances, note that the CD matrix, since it combines a rotation (or other pixel space linear transformation) and units conversion in one operation, can be expressed as follows in the case of a two dimensional system. The CD matrix is used as follows: .ks .nf | l | | | | x | | | = | CD | * | | | m | | | | y | .fi .ke The CD matrix is constructed as follows: .ks .nf | | | Dx 0 | | a b | | CD | = | | * | | | | | 0 Dy | | c d | .fi .ke where (Dx,Dy) is the units conversion matrix, and (a,b,c,d) is the rotation matrix. This is a completely general representation, i.e., any linear transformation may be specified by the matrix (a,b,c,d) and combined with the units conversion matrix, since the rotation matrix rotates the physical system to align the axes with those of the world coordinate system. The problem comes if we try to \fIrotate the CD matrix\fR. Although the CD matrix can express any rotation between the physical and world system, once the CD matrix has been formed the units conversion and rotation matrices cannot be recovered. In general, further rotation of the system described by the CD matrix requires that we rotate the matrix (a,b,c,d), rather than the CD matrix itself. The only exception occurs when Dx=Dy (similar axes), in which case the CD matrix and rotation matrix are equivalent except for a constant. Hence, rotations between dissimilar axes of the system described by the (already formed) CD matrix are disallowed. A special case is rotation is some multiple of 90 degrees, which can be represented by an axis swap or flip. .nh 2 MWCS Coordinate System Representation The coordinate system representation used by the MWCS interface consists of two components called the \fBLterm\fR and \fBWterm\fR, specifying independent logical and world transformations relative to a physical, cartesian coordinate system. Three types of coordinate systems are defined, as outlined below. .ls .ls PHYSICAL The physical coordinate system is the raw coordinate system of the data. In the case of an image, the physical coordinate system refers to the pixel coordinates of the original data frame. All other coordinates systems are defined in terms of the physical system (reference frame). .le .ls LOGICAL The logical coordinate system is defined by the \fILterm\fR in terms of the physical coordinate system. In the case of an image, the logical coordinate system specifies raw pixel coordinates relative to some image section or derived image, i.e., the coordinates used for image i/o. In the MWCS the Lterm specifies a simple linear transformation, in pixel units, between the original physical image matrix and the current image section. .le .ls WORLD The world coordinate system is defined by the \fIWterm\fR in terms of the physical coordinate system. Any number of different kinds of world coordinate systems are conceivable. Examples are the tangent (gnonomic) projection, specifying right ascension and declination relative to the original data image, or any linear WCS, e.g., a linear dispersion relation for spectral data. Multiple world coordinate systems may be simultaneously defined in terms of the same physical system. .le .le The following observations apply to the behavior of MWCS as applied to image data. .ls .ls 4 1. Any linear transformation of the image matrix (shift, scale change, axis flip, etc.) affects only the Lterm. The revised MWCS for the new image or image section may be computed merely by doing a linear transformation of the Lterm. .le .ls 4 2. If multiple world coordinate systems are associated with an image, all share the same Lterm. .le .ls 4 3. Geometric distortion of an image (not currently supported by MWCS) is a pixel space operation, i.e. a generalization of the Lterm, hence is independent of the WCS. .le .le In general, the physical and world coordinate systems are defined whenever a new image is created, e.g., by a task such as RFITS. A new-copy type operation, such as most transformations performed by IMAGES tasks, affects only the Lterm. Although we normally speak in terms of images, MWCS is not limited to applications involving images. For example, the physical coordinate system could just as well be a graphics frame buffer, and the logical coordinate system a pixrect. A greyscale transformation is an example of a non-image WCS. MWCS, or the successor interface, will eventually be used in GIO, e.g., for cursor readback. Since the Wterm includes the CD matrix, which defines a linear transformation, and linear transformations can be combined, in principle it is possible to combine the Lterm and Wterm to define a single transformation from logical to world coordinates. In practice this can run into problems, as not all pixel space rotations may be representable by the CD matrix (since the latter may define different world space units on different axes). Furthermore, if multiple WCS are defined, and the WCS are defined in terms of the logical system, it would be inefficient to have to transform each WCS to the new logical system each time a linear transformation of the data is performed (e.g., every time an image is opened with an image section). For images, the common coordinate transformations are image section (logical) coordinates to world coordinates and vice versa, and section coordinates to physical coordinates and vice versa. The physical coordinate system can be regarded as a special case of a world coordinate system (the "pixel" coordinate system) defined relative to logical image section coordinates. For example, to convert IMIO image coordinates to world coordinates, the interface will first apply the inverse of the Lterm to determine the coordinates in the physical system, then apply the Wterm for the desired WCS to compute the world coordinates. If the Wterm is linear and the Lterm does not define any rotations between dissimilar axes, the two operations can be combined for a more efficient coordinate transformation. An arbitrary number of world coordinate systems may be defined over the same domain in the physical coordinate system. Every WCS has a name uniquely specifying the WCS type. A WCS may also have attributes such as units, axis labels, and numeric output formats specified independently for each axis, as well as arbitrary user defined WCS attributes. .nh 3 Lterm Representation The Lterm is defined by the terms of a general linear transformation, as shown in equation [2.1]. For example, in the case of a 2D system the following quantities must be given to define the Lterm. .ks .nf [CD] = [a,b,c,d] rotation matrix tv[] = [u,v] translation vector .fi .ke This defines the transformation between the physical and logical coordinate systems, i.e., applying the transformation to a pair of physical coordinates [x,y] yields the corresponding logical coordinates [x',y']. MWCS will automatically compute the inverse transformation when asked to convert between logical coordinates and physical or world coordinates. .nh 3 Wterm Representation The Wterm defines the transformation between the physical system and some arbitrary world coordinate system. The Wterm is defined by the following quantities: .nf R[] reference coordinates in physical system W[] world coordinates at the reference point [CD] coordinate determination matrix wtype type of WCS (function name string) wattr WCS attributes (string, opaque outside interface) .fi The point R, also known as the \fIreference pixel\fR when dealing with image data, defines the origin of the world coordinate system in the physical system. The world coordinates at the reference point are given by the vector W (at least for a linear WCS; in general the meaning of the W term depends upon the WCS type). The CD matrix defines any rotation between the physical and world systems, as well as the scale conversion needed to convert between physical and world (or linear world) coordinates. Although the function name or type \fIwtype\fR is accessible to applications, the details of what the WCS means, and how it is evaluated, are intended to be internal to the interface, hence the use of strings to pass in the WCS information. Functions complex enough to require coefficients should pass the extra information in via the \fIwattr\fR term. WCS attributes such as the axis units and labels are also passed in via \fIwattr\fR. In the general case there may be any number of different WCS types. In the case of MWCS, however, only a predefined set of WCS types are supported, since the code for each WCS is wired into the interface. The predefined WCS types (as selected by \fIwtype\fR) are the following. .ks .nf \fIWtype\fR \fIDescription\fR linear simple linear WCS sampled sampled WCS function (TAN etc.) the sky projections .fi .ke A \fIlinear\fR WCS is specified by the physical and world coordinates of the reference point, and the row or rows of the CD matrix pertaining to the axes to which the WCS is assigned. A linear WCS is completely specified by the linear term of the standard WCS representation. A \fIsampled\fR WCS is specified by an array of (physical, world) coordinate pairs, i.e., an array of reference points, sampling the linear WCS function for that axis. In the limiting case, for sampled (pixel) data, there is one (physical, world) point on the WCS curve for each data point. If the WCS function is smooth a coarser sampling can be used to approximate the curve, using some form of interpolation to evaluate the function. In the MWCS, a sampled function must be one-dimensional, i.e., associated with a single axis (higher dimensional surfaces can be represented so long as the axes are independent). Note that the sampled function is expressed in terms of the \fIoffset\fR from the reference point in both the physical and world systems. Any analytic function, e.g., polynomial or spline, can be sampled and later reconstructed from the sampled curve with no significant error, provided the function type and order are known and there are sufficient sample points to determine the system. The advantage of the sampled representation is that it is independent of the function type, and can be used to fit any analytic function when the time comes to evaluate the curve. The sky projections are a special case used with astronomical direct images. The principal example is the gnomonic projection, the projection of the celestial sphere onto a plane tangent at the reference point. The sky projections are completely specified by the reference point and the standard CD matrix, plus the WCS name which specifies the type of projection, e.g., "gnomonic", "sine", "arc", and so on. The WCS attributes which can be set by the \fIwattr\fR string consist of a number of standard attributes, plus an arbitrary number of additional WCS specific attributes. Examples of standard attributes include "system", "wtype", "units", "label", etc. A list of the standard WCS attributes is given in section 3.3.1. .nh Interface Overview The MWCS interface is a stand-alone interface implementing the linear and world coordinate transformation abstractions. While the interface is designed with the typical application to image data in mind, MWCS is intended as a general coordinate transformation facility for use with any type of data, as an embedded interface in other software, including system interfaces such as IMIO and GIO as well as user applications. .nh 2 Object Creation and Storage The MWCS interface routines used to create or access MWCS objects, or save and restore MWCS objects in external storage, are summarized below. .nf mw = mw_open (bufptr|NULL, ndim) mw = mw_openim (im) mw = mw_newcopy (mw) mw_close (mw) mw_load (mw, bufptr) len = mw_save (mw, bufptr, buflen) mw_[load|save]im (mw, im) .fi A new MWCS object, initialized either to a unitary transformation of dimension \fIndim\fR or to the encoded MWCS in the input buffer, is created with \fImw_open\fR. A MWCS object is be created and initialized from an image with \fImw_openim\fR; if the referenced image does not currently have any WCS information associated with it, a unitary pixel WCS will be created. The \fImw_newcopy\fR operation creates a new MWCS object as a copy of an existing one, as one might wish to do prior to modifying a WCS. When a descriptor is no longer needed it should be returned with \fImw_close\fR. A MWCS object (descriptor) is a memory object. To encode a MWCS in an opaque machine independent binary array, e.g., for storage in a file or transmission through a datastream, \fImw_save\fR is called with the \fIchar\fR pointer of the buffer in which the encoded MWCS is to be placed. If the buffer pointer is NULL a buffer will be created and the pointer returned, and if a valid buffer is passed it will be resized as necessary to store the encoded object. An encoded MWCS object is reloaded into a descriptor with \fImw_load\fR. A MWCS may be stored or updated in an image header with \fImw_saveim\fR, or loaded from the image header into a descriptor with \fImw_loadim\fR. These are the only interface routines with knowledge of the parameter names, etc., used to store WCS information in image headers. .nh 2 Coordinate Transformation Procedures The MWCS procedures used to perform coordinate transformations, and to modify or examine the Lterm and Wterm, are summarized below. .nf ct = mw_sctran (mw, system1, system2, axes) ndim = mw_gctran[r|d] (ct, ltm, ltv, axtype1, axtype2, maxdim) mw_ctfree (ct) x2 = mw_c1tran[r|d] (ct, x1) mw_v1tran[r|d] (ct, x1, x2, npts) mw_c2tran[r|d] (ct, x1,y1, x2,y2) mw_v2tran[r|d] (ct, x1,y1, x2,y2, npts) mw_ctran[r|d] (ct, p1, p2, ndim) mw_vtran[r|d] (ct, v1, v2, ndim, npts) .fi The procedures \fImw_[cv][12]tran[rd]\fR perform coordinate transformations for individual coordinates or coordinate vectors, for one or two dimensional systems, for coordinates of type real or double. The general N dimensional case is handled by the \fImw_[cv]tran[rd]\fR procedures, which transform \fIndim\fR-dimensional points (\fImw_ctran\fR) or point vectors (\fImw_vtran\fR). A single point is specified as a vector of length \fIndim\fR; a point vector is expressed as an array of points, i.e., a 2-dimensional array V[I,J], where the index I refers to the axis within a point vector, and where the index J refers to the point. The notation V[1,j] references the 1-dimensional point vector for point J. The direction of the transformation, and the axes for which the transformation is to be performed, is determined by a prior call to \fImw_sctran\fR, which specifies the input and output coordinate systems, and performs the initialization necessary for efficient evaluation of a series of transformations. A pointer to the optimized transformation descriptor is returned, to allow two or more transformations to be prepared and used simultaneously without having to repeat the setup, which can be considerably more expensive than coordinate evaluation. The transformation descriptor should be freed when no longer needed, else it will be freed automatically when the MWCS is closed. A coordinate system is specified to \fImw_sctran\fR by its name. The following standard systems are predefined. Additional WCS names may be defined by the application. .ks .nf "logical" The logical system "physical" The physical system "world" The default world system (user-wcs) User defined systems .fi .ke Strings are used to specify the coordinate systems in order to allow user defined and named systems to be added at runtime. The use of a setup procedure to specify the desired transformation allows new types of coordinate transformations to be easily added, for example mixed conversions, as for a 2-dimensional system where the X and Y components of a coordinate pair belong to different coordinate systems, or computation of the derivative at a point. In MWCS, only simple conversions between any two of the physical, logical, and world coordinate systems are supported. Specification of the axes for which the coordinate transformation is desired is necessary for the more complex systems, since there may be different, often quite independent coordinate systems defined on different axes. The axes for which the transformation is to be prepared are specified as a bitmask. The default, if the mask is zero, is to use axes starting with 1, up to the number required to satisfy the given dimension transformation. For example, to convert two dimensional image coordinates (section relative) to world coordinates in the default WCS: .nf call mw_sctran (mw, "logical", "world", 3B) call mw_c2tranr (mw, px,py, wx,wy) .fi Multiple independent world coordinate systems may be defined relative to the same physical system. Most applications, however, are best written as if there were only one world system, with the coordinate system to be used being switched about transparently to the application. For this reason there is no WCS number argument to the MWCS procedures, and the "world" system specifies the \fIcurrent default\fR WCS. If a MWCS object defines multiple world coordinate systems, a \fImw_ssystem\fR call is used to select the WCS to be used. This could be used, for example, to change the units appearing on plots in a graphics application, transparently to the application. .nh 2 Coordinate System Specification The MWCS procedures used to enter, modify, or inspect the MWCS logical and world coordinate transformations are summarized in the figure below. The procedures \fImw_[sg]lterm\fR are used to directly enter or inspect the Lterm, which consists of the linear transformation matrix \fIltm\fR and the translation vector \fItv\fR, both of dimension \fIndim\fR, defining the transformation from the physical system to the logical system. If the logical system undergoes successive linear transformations, \fImw_translate\fR may be used to translate, rather than replace, the current Lterm, where the given transformation matrix and translation vector refer to the relative transformation undergone by the logical system. This will always work since the Lterm is initialized to the identity matrix when a new MWCS object is created. The routines \fImw_rotate\fR, \fImw_scale\fR, and \fImw_shift\fR provide a convenient front-end to \fImw_translate\fR for the more common types of translations. Specification of the Wterm is somewhat more complicated. The Wterm for a new WCS should first be created and initialized for a system of the given dimensionality with \fImw_newsystem\fR. The linear portion of the Wterm, i.e., the CD matrix and the coordinates of the reference point in the physical and world systems, and the WCS dimension, may then be entered with \fImw_swterm\fR and queried with \fImw_gwterm\fR. .nf mw_[s|g]lterm[r|d] (mw, ltm, ltv, ndim) mw_translate[r|d] (mw, ltv_1, ltm, ltv_2, ndim) mw_rotate (mw, theta, center, axes) mw_scale (mw, scale, axes) mw_shift (mw, shift, axes) mw_newsystem (mw, system, ndim) mw_[s|g]system (mw, system[, maxch]) mw_[s|g]axmap (mw, axno, axval, ndim) mw_bindphys (mw) mw_[s|g]wterm[r|d] (mw, r, w, cd, ndim) mw_swtype (mw, axis, naxes, wtype, wattr) mw_[s|g]wsamp[r|d] (mw, axis, pv, wv, npts) mw_[s|g]wattrs (mw, axis, attribute, valstr[, maxch]) .fi The world portion of the Wterm is unusual in that the type of WCS may be specified independently for each axis. The WCS function type \fIwtype\fR, and any attributes \fIwattr\fR, are specified for the indicated \fIaxes\fR with \fImw_swtype\fR. The axes specified are those required to evaluate the named function. In the case of an axis of type "sampled", the sampled WCS function must also be entered via a call to \fImw_swsamp\fR, and may later be retrieved with \fImw_gwsamp\fR. The WCS function is defined as an \fIoffset\fR from the reference point in both the physical and world systems, e.g., the vector \fIWv\fR will be added to the world coordinates produced by interpolating the sampled function (this can of course be defeated by setting R or W to zero). A WCS always has a number of predefined \fIattributes\fR, and may also have any number of user defined, or WCS specific, attributes. These are defined when the WCS is created, in the \fIwattr\fR argument input to \fImw_swtype\fR, or in a subsequent call to \fImw_swattrs\fR. The WCS attributes for a specific axis may be queried with the function \fImw_gwattrs\fR. Attribute values may be modified, or new attributes defined, with \fImw_swattrs\fR. The issue of WCS attributes is discussed further in the next section. .nh 3 WCS Types and Attributes The WCS attributes which can be set by the \fIwattr\fR term consist of a number of standard attributes, plus an arbitrary number of additional WCS specific (application defined) attributes. The following standard attributes are reserved (but not necessarily defined) for each WCS: .nf "units" axis units ("pixels", etc.) "label" axis label, for plots "format" axis numeric format, for tick labels "wtype" WCS type, e.g., "linear" .fi In addition, the following are defined for the entire WCS, regardless of the axis: .nf "system" system name (logical, physical, etc.) "object" external object with which WCS is associated .fi For example, to determine the WCS type for axis 1: call mw_gwattrs (mw, 1, "wtype", wtype, SZ_WTYPE) The (world coordinate) system name \fIsystem\fR is what is used, e.g., to select a WCS in a call to \fImw_ssystem\fR, or define a coordinate transformation in a call to \fImw_sctran\fR. Note that the system name "world" is actually only an alias for the \fIdefault world system\fR. This may be any primary system, i.e., the logical or physical system, or a user defined world system. The initial default world system may be specified by the user by predefining the environment variable \fBdefwcs\fR, otherwise the first-defined user world system is used, else the physical system is used. If the MWCS is associated with an image then the "object" attribute of the physical system will return the name of the image or image section defined as the physical coordinate system for the MWCS. This is not necessarily the full image, e.g., in the case of a multidimensional image, the physical system might be any 2D plane of the image. In the case of an event file image, the image name may include a filter or blocking factor. References back to the raw data image based on MWCS physical coordinates will work so long as the raw image is opened using the name returned by the interface. If the image is already open and was accessed by descriptor via MWCS, the descriptor may be retrieved by a \fImw_stati\fR call to fetch MW_IMDES. All MWCS coordinate systems have the standard attributes, with default values being supplied by the interface if not set by the application. In particular, the logical and physical coordinate systems have attributes and may be treated as a special case of a world coordinate system by the application. .nh 3 Axis Mapping The coordinate transformation procedures (section 3.2) include support for a feature called \fIaxis mapping\fR, used to implement \fIdimensional reduction\fR. A example of dimensional reduction occurs in IMIO, when an image section is used to specify a subraster of an image of dimension less than the full physical image. For example, the section might specify a 1 dimensional line or column of a 2 or higher dimensional image, or a 2 dimensional section of a 3 dimensional image. When this occurs the applications sees a logical image of dimension equal to that of the image section, since logically an image section \fIis\fR an image. Dimensional reduction is implemented in MWCS by a transformation on the input and output coordinate vectors. The internal MWCS coordinate system is unaffected by either dimensional reduction or axis mapping; axis mapping affects only the view of the WCS as seen by the application using the coordinate transformation procedures. For example, if the physical image is an image cube and we access the logical image section "[*,5,*]", an axis mapping may be set up which maps \fIphysical\fR axis 1 to logical axis 1, physical axis 2 to the constant 5, and physical axis 3 to logical axis 2. The internal system remains 3 dimensional, but the application sees a 2 dimensional system. Upon input, the missing axis y=5 is added to the 2 dimensional input coordinate vectors, producing a 3 dimensional coordinate vector for internal use. During output axis 2 is dropped and replaced by axis 3. The axis map is entered with \fImw_saxmap\fR and queried with \fImw_gaxmap\fR. Here, \fIaxno\fR is a vector, with \fIaxno[i]\fR specifying the logical axis to be mapped onto physical axis I. If zero is specified the constant \fIaxval[i]\fR is used instead. Axis mapping may be enabled or disabled with a call to \fImw_seti\fR. Axis mapping affects all of the coordinate transformation procedures, plus \fImw_translate\fR (since it defines a translation in terms of the logical system), and all of the coordinate system specification procedures having an "axis" parameter, e.g., \fImw_gwattrs\fR. Axis mapping is not used with those procedures which directly access or modify the physical or world systems (e.g., \fImw_slterm\fR or \fImw_swterm\fR) since full knowledge of the physical system is necessary for such operations. .nh 3 Binding the Physical System Recall that all coordinate systems are defined in terms of the physical system, and that the Lterm defines the mapping between the physical system and the logical system. Transformations of the logical system leave the physical and world systems unaffected. The only exception to this is the procedure \fImw_bindphys\fR, which binds the physical system to the current logical system, i.e., makes the current logical system the new physical system. This involves a transformation of the linear term (CD matrix) of each world system, since a world system is defined in terms of the physical system, and initialization of the Lterm to (normally) the identity matrix and zero translation vector. This operation is irreversible, i.e., once \fImw_bindphys\fR is executed the original physical system is lost. In the case of an MWCS which is associated with an image opened with an image section, the new physical system is not strictly speaking the logical system, but the image matrix of the image being accessed, i.e,. the current image ignoring the image section. Hence, following a call to \fImw_bindphys\fR, the Lterm will always describe the translation between the physical image matrix currently being accessed, and the logical system (image section). .nh 2 Set/Stat Procedures The MWCS status procedures, used to query or set the MWCS parameters, are as follows. .nf mw_seti (mw, what, ival) ival = mw_stati (mw, what) mw_show (mw, outfd, what) .fi The currently defined interface parameters are the following. .nf Name Type Description MW_AXMAP b enable or disable axis mapping MW_IMDES i descriptor of associated image MW_INTERP i interpolator type for sampled wcs MW_NDIM i dimensionality of logical system MW_NPHYSDIM i dimensionality of physical system MW_NWCS i number of wcs defined MW_WCS i currently active wcs .fi MW_NDIM may differ from MW_NPHYSDIM if dimensional reduction has been specified and axis mapping is enabled. MW_NWCS returns the number of WCS currently defined; at least two WCS are always defined, i.e., the logical and physical systems (the world system will default to the physical system if not otherwise defined). The index of the current default WCS is given by MW_WCS. In the case of a sampled WCS, the interpolator type used by the coordinate transformation procedures is specified by MW_INTERP. .nh 2 Utility Routines The following routines are used internally within the interface to compile or evaluate transformations, and may be useful in applications code as well. .nf mw_invert[r|d] (o_ltm, n_ltm, ndim) mw_mmul[r|d] (ltm_1, ltm_2, ltm_out, ndim) mw_vmul[r|d] (ltm, ltv_in, ltv_out, ndim) mw_glt[r|d] (v1, v2, ltm, ltv, ndim) .fi These routines perform matrix inversion, multiplication of a matrix by another matrix, multiplication of a vector by a matrix, and general linear transformation (matrix multiply and addition of translation vector). .nh 2 Datatypes and Precision All floating point data is stored internally in MWCS using double precision. Most of the interface procedures have both type real and type double versions, e.g., for entering Lterm or Wterm data. The single precision versions should be normally used unless double precision is required to represent the data. Although all floating point data is stored internally as type double, coordinate transformations performed at runtime may be carried out using either single or double precision computations, depending upon, e.g., whether \fImw_ctranr\fR or \fImw_ctrand\fR is called to perform the transformation. What happens is that when the transformation is compiled by \fImw_sctran\fR, two transformation descriptors are prepared, one for type real and the other for type double, with the appropriate descriptor being selected at runtime to carry out the transformation. Hence the precision appropriate for the problem at hand can be employed without requiring that the worst case precision be used for all applications. .nh IMIO Interface to MWCS .nh 2 Image Header Representation When MWCS is used with image data, the encoded MWCS object is stored in the image header, and loaded into an MWCS descriptor when the image is accessed by an applications program. The format in which the MWCS is stored in the image header depends upon the type of image. If the image has a "flex-header" (as for QPOE and the new image structures) the MWCS is encoded in a machine independent binary format and stored in the image header as a variable length byte array. This provides full generality and is the most efficient approach. For the older image formats which use a FITS header (OIF and STF) it is necessary to encode the MWCS as a series of FITS cards. The proposed FITS WCS format, already in use for STF format images (with minor deviations from the standard), is used to represent the MWCS Wterm. Additional FITS cards are necessary to represent the Lterm. The (P,W) array for sampled WCS can also be represented in a FITS header, although this is awkward and inefficient if the number of samples is large. The FITS header keywords used to represent the Wterm, Lterm, and sampled WCS are the following. .nf WCSDIM WCS dimension (may differ from image) CTYPEn coordinate type CRPIXn reference pixel CRVALn world coords of reference pixel CDi_j CD matrix CDELTn CDi_i if CD matrix not used (input only) CROTA2 rotation angle if CD matrix not used LTVi Lterm translation vector LTMi_j Lterm rotation matrix WSVi_LEN Number of sample points for axis I WSVi_jjj Sampled WCS array for axis I WATi_jjj WCS attributes for axis I .fi Contrary to MWCS convention, the WCS stored in a FITS format header defines the transformation from the logical system (image matrix) to the world system, rather than the physical system. The MWCS Wterm is computed from the FITS representation by transforming the FITS WCS by the stored Lterm when the stored MWCS is loaded. The name format CDi_j varies slightly from the proposed FITS standard, but is backwards compatible with STF (and more readable than the FITS nomenclature). The keywords LTVECn, LTi_j, WSVi_LEN, WSVi_jjj, and WATi_jjj are peculiar to MWCS. A sampled WCS is represented as a series of WSVi_jjj cards, wherein the sample points are stored as character strings, storing as many sample points as possible on each card, ignoring the card boundaries (i.e., a card may end in the middle of a number). WCS attributes are likewise encoded as a series of WATi_jjj cards, giving the attributes for axis I as string data of the form "attribute = value", ignoring card boundaries. Multiple world coordinate systems (other than the physical and one world system) cannot be used with old format image headers. .nh 2 Handling of the WCS by IMIO When an image is opened by IMIO the image header is read, an MWCS descriptor is opened, and the stored MWCS is loaded into the MWCS descriptor from the image header. If an image section has been opened the Lterm is then updated to reflect the additional linear transformation defined by the section. The correct logical to physical or world transformation is then seen at the IMIO level, and will be propagated to a new image in a NEW_COPY image operation when the MWCS is copied to the new image. In the case of an image format which uses a FITS header, application of the section transform during an image open \fIdoes not\fR include updating of the FITS representation of the WCS. There are two problems with doing so: all this editing of the FITS image of the header is inefficient unless absolutely necessary, and more seriously, if the image is opened READ_WRITE with an image section and the header is later updated, the stored WCS will be incorrect. So, while the WCS as represented by the MWCS will always be correct, the FITS header parameters will reflect the WCS of the raw image ignoring the image section. If it is necessary for some reason to update the FITS header in memory to reflect the image section, \fImw_saveim\fR may be called to perform the udpate. Propagation of the correct logical system in a NEW_COPY operation works because once the FITS header is copied, \fImw_saveim\fR is called to edit the header of the new image. .nh Implementation .nh 2 Restrictions Since there was not time to solve the general WCS problem with the MWCS interface, several restrictions were accepted for this version. These are the following. .ls .ls o All WCS functions are built in (hard coded), hence the interface is not extensible at runtime and the only way to support new applications is through modification of the interface (by adding new function drivers). .le .ls o There is no support for modeling geometric distortions, except possibly in one dimension. .le .ls o There is no provision for storing more than one world coordinate system in FITS oriented image headers, although multiple WCS are supported internally by the interface, and are preserved and restored across \fImw_save\fR and \fImw_load\fR operations. .le .ls o Coordinate transforms involving dependent axes must includes all such axes explicitly in the transform. Dependent axes are axes which are related, either by a rotation, or by a WCS function. Operations which could subset dependent axis groups, and which are therefore disallowed, include setting up a transform with an AXES bitmap which excludes dependent axes, or more importantly, an image section involving dimensional reduction, where the axis to be removed is not independent. This could happen, for example, if a two-dimensional image were rotated and one tried to open a one-dimensional section of the rotated image. .le .le All these problems can be solved given enough time, although the last problem mentioned becomes very complicated (perhaps intractable) when nonlinear world systems of dimension greater than three are involved. .nh 2 Function Drivers World coordinate systems are implemented in MWCS by providing something called a \fIfunction driver\fR for each function type, as specified by the \fIwtype\fR argument to \fImw_swtype\fR. The \fIwtype\fR is the name of the function, and the name of the function driver. A function driver consists of the following procedures. A given driver need not implement all driver procedures; procedures which are not used by a driver are set to NULL in the function driver table. .nf operation syntax FN_INIT wf_FCN_init (fc, dir) FN_DESTROY wf_FCN_destroy (fc) FN_FWD wf_FCN_fwd (fc, pv, wv) FN_INV wf_FCN_inv (fc, wv, pv) .fi where FCN is replaced by a 3 letter abbreviation for the function name, e.g., "smp" for the sampled WCS function, "tan" for the tangent plane projection etc. This is only a suggested naming convention; the actual driver procedure names are arbitrary so long as name conflicts are avoided. The argument FC to each driver procedure is a pointer to the function call descriptor set up by \fImw_sctran\fR. This consists of a number of standard fields followed by an area which is reserved for fields which are private to the function driver. During compilation of a transformation, the function driver initialization procedure FN_INIT will be called to perform any function dependent initialization, e.g., processing of the attribute list for the axes assigned to the function, to input any function specific parameters. During runtime evaluation of a function call, FN_FWD will be called for a forward transformation (physical to world), and FN_INV for an inverse transformation (world to physical). Note that the linear portion of the WCS, i.e., the CD matrix and all other linear terms except W (the CRVAL vector) are handled the same for all WCS functions, outside of the driver. Hence when the driver is called for a forward transformation, for example, the CD matrix and R vector (defining the reference point) will already have been applied to the input vector PV. To fully understand how function drivers are implemented it is probably simplest to study the existing drivers. .tp 40 .sh Appendix A: Interface Summary .nf mw = mw_open (bufptr|NULL, ndim) mw = mw_openim (im) mw = mw_newcopy (mw) mw_close (mw) mw_load (mw, bufptr) len = mw_save (mw, bufptr, buflen) mw_[load|save]im (mw, im) ct = mw_sctran (mw, system1, system2, axes) ndim = mw_gctran[r|d] (ct, ltm, ltv, axtype1, axtype2, maxdim) mw_ctfree (ct) x2 = mw_c1tran[r|d] (ct, x1) mw_v1tran[r|d] (ct, x1, x2, npts) mw_c2tran[r|d] (ct, x1,y1, x2,y2) mw_v2tran[r|d] (ct, x1,y1, x2,y2, npts) mw_ctran[r|d] (ct, p1, p2, ndim) mw_vtran[r|d] (ct, v1, v2, ndim, npts) mw_[s|g]lterm[r|d] (mw, ltm, ltv, ndim) mw_translate[r|d] (mw, ltv_1, ltm, ltv_2, ndim) mw_rotate (mw, theta, center, axes) mw_scale (mw, scale, axes) mw_shift (mw, shift, axes) mw_newsystem (mw, system, ndim) mw_[s|g]system (mw, system[, maxch]) mw_[s|g]axmap (mw, axno, axval, ndim) mw_bindphys (mw) mw_[s|g]wterm[r|d] (mw, r, w, cd, ndim) mw_swtype (mw, axis, naxes, wtype, wattr) mw_[s|g]wsamp[r|d] (mw, axis, pv, wv, npts) mw_[s|g]wattrs (mw, axis, attribute, valstr[, maxch]) mw_invert[r|d] (o_ltm, n_ltm, ndim) mw_mmul[r|d] (ltm_1, ltm_2, ltm_out, ndim) mw_vmul[r|d] (ltm, ltv_in, ltv_out, ndim) mw_glt[r|d] (v1, v2, ltm, ltv, ndim) mw_seti (mw, what, ival) ival = mw_stati (mw, what) mw_show (mw, outfd, what) .fi .sp .endhelp sptable-1.0.pre20180612/src/mwcs/NOTES000066400000000000000000000020541331023215600167650ustar00rootroot00000000000000mwsctran.x Reported in mail. (5/4, Valdes) mkpkg wfpc.x + wfinit.x Added new function driver. (5/4, Valdes) iwewcs.x Modified to recognize PC CTYPEs. (5/9, Valdes) iwewcs.x iwctype.x imwcs.h iwrfits.x Added TY_PV and TY_PC to the WCS cards recognized. When the cards are parsed the new structure values IW_PVMAX and IW_PCMAX are set. (5/9, Valdes) iwctype.x imwcs.h mwsaveim.x iwewcs.x Added SZ_CTYPE to define the maximum size of the CTYPE value and set it to 19 (the same size already allowed in the descriptor). Previously the CTYPE value was limited to 8 characters. (5/10, Valdes) mkpkg mwspv.x + mwgpv.x + mwspc.x + mwgpc.x + mwnewcopy.x mwcs.h Routines to set and put PV and PC coefficients. New elements, WCS_NPVC, WCS_PVC, WCS_NPC, and WCS_PC, were added following the same methods as the sampled arrays. (5/10, Valdes) iwfind.x Modified to deal with PV and PC index of 0. (5/14, Valdes) mwsaveim.x Modified to support the PC coordinate types and to output any PV and PC values. sptable-1.0.pre20180612/src/mwcs/README000066400000000000000000000026251331023215600170360ustar00rootroot00000000000000MWCS Interface Summary mw = mw_open (bufptr|NULL, ndim) mw = mw_openim (im) mw = mw_newcopy (mw) mw_close (mw) mw_load (mw, bufptr) len = mw_save (mw, bufptr, buflen) mw_[load|save]im (mw, im) ct = mw_sctran (mw, system1, system2, axes) ndim = mw_gctran[r|d] (ct, ltm, ltv, axtype1, axtype2, maxdim) mw_ctfree (ct) x2 = mw_c1tran[r|d] (ct, x1) mw_v1tran[r|d] (ct, x1, x2, npts) mw_c2tran[r|d] (ct, x1,y1, x2,y2) mw_v2tran[r|d] (ct, x1,y1, x2,y2, npts) mw_ctran[r|d] (ct, p1, p2, ndim) mw_vtran[r|d] (ct, v1, v2, ndim, npts) mw_[s|g]lterm[r|d] (mw, ltm, ltv, ndim) mw_translate[r|d] (mw, ltv_1, ltm, ltv_2, ndim) mw_rotate (mw, theta, center, axes) mw_scale (mw, scale, axes) mw_shift (mw, shift, axes) mw_newsystem (mw, system, ndim) mw_[s|g]system (mw, system[, maxch]) mw_[s|g]axmap (mw, axno, axval, ndim) mw_bindphys (mw) mw_[s|g]wterm[r|d] (mw, r, w, cd, ndim) mw_swtype (mw, axis, naxes, wtype, wattr) mw_[s|g]wsamp[r|d] (mw, axis, pv, wv, npts) mw_[s|g]wattrs (mw, axis, attribute, valstr[, maxch]) mw_invert[r|d] (o_ltm, n_ltm, ndim) mw_mmul[r|d] (ltm_1, ltm_2, ltm_out, ndim) mw_vmul[r|d] (ltm, ltv_in, ltv_out, ndim) mw_glt[r|d] (v1, v2, ltm, ltv, ndim) mw_seti (mw, what, ival) ival = mw_stati (mw, what) mw_show (mw, outfd, what) sptable-1.0.pre20180612/src/mwcs/gen/000077500000000000000000000000001331023215600167225ustar00rootroot00000000000000sptable-1.0.pre20180612/src/mwcs/gen/mkpkg000066400000000000000000000007561331023215600177660ustar00rootroot00000000000000# Make the generic portion of MWCS. $checkout libex.a lib$ $udate libex.a $checkin libex.a lib$ $exit libex.a: mwc1trand.x ../mwcs.h mwc1tranr.x ../mwcs.h mwc2trand.x ../mwcs.h mwc2tranr.x ../mwcs.h mwctrand.x ../mwcs.h mwctranr.x ../mwcs.h mwgctrand.x ../mwcs.h mwgctranr.x ../mwcs.h mwltrand.x mwltranr.x mwmmuld.x mwmmulr.x mwv1trand.x ../mwcs.h mwv1tranr.x ../mwcs.h mwv2trand.x ../mwcs.h mwv2tranr.x ../mwcs.h mwvmuld.x mwvmulr.x mwvtrand.x mwvtranr.x ; sptable-1.0.pre20180612/src/mwcs/gen/mwc1trand.x000066400000000000000000000011231331023215600210100ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include "../mwcs.h" # MW_C1TRAN -- Optimized 1D coordinate transformation. double procedure mw_c1trand (a_ct, x) pointer a_ct #I pointer to CTRAN descriptor double x #I coordinates in input system double y pointer ct begin # Get real or double version of descriptor. ct = CT_D(a_ct) # Perform the transformation; LNR is a simple linear transformation. if (CT_TYPE(ct) == LNR) { return (Memd[CT_LTM(ct)] * x + Memd[CT_LTV(ct)]) } else { call mw_ctrand (a_ct, x, y, 1) return (y) } end sptable-1.0.pre20180612/src/mwcs/gen/mwc1tranr.x000066400000000000000000000011151331023215600210270ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include "../mwcs.h" # MW_C1TRAN -- Optimized 1D coordinate transformation. real procedure mw_c1tranr (a_ct, x) pointer a_ct #I pointer to CTRAN descriptor real x #I coordinates in input system real y pointer ct begin # Get real or double version of descriptor. ct = CT_R(a_ct) # Perform the transformation; LNR is a simple linear transformation. if (CT_TYPE(ct) == LNR) { return (Memr[CT_LTM(ct)] * x + Memr[CT_LTV(ct)]) } else { call mw_ctranr (a_ct, x, y, 1) return (y) } end sptable-1.0.pre20180612/src/mwcs/gen/mwc2trand.x000066400000000000000000000020351331023215600210140ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include "../mwcs.h" # MW_C2TRAN -- Optimized 2D coordinate transformation. procedure mw_c2trand (a_ct, x1,y1, x2,y2) pointer a_ct #I pointer to CTRAN descriptor double x1,y1 #I coordinates in input system double x2,y2 #O coordinates in output system pointer ct, ltm, ltv double p1[2], p2[2] begin # Get real or double version of descriptor. ct = CT_D(a_ct) ltm = CT_LTM(ct) ltv = CT_LTV(ct) if (CT_TYPE(ct) == LNR) { # Simple linear, nonrotated transformation. x2 = Memd[ltm ] * x1 + Memd[ltv ] y2 = Memd[ltm+3] * y1 + Memd[ltv+1] } else if (CT_TYPE(ct) == LRO) { # Linear, rotated transformation. p1[1] = x1; p1[2] = y1 x2 = Memd[ltm ] * p1[1] + Memd[ltm+1] * p1[2] + Memd[ltv ] y2 = Memd[ltm+2] * p1[1] + Memd[ltm+3] * p1[2] + Memd[ltv+1] } else { # General case involving one or more functional terms. p1[1] = x1; p1[2] = y1 call mw_ctrand (a_ct, p1, p2, 2) x2 = p2[1]; y2 = p2[2] } end sptable-1.0.pre20180612/src/mwcs/gen/mwc2tranr.x000066400000000000000000000020271331023215600210330ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include "../mwcs.h" # MW_C2TRAN -- Optimized 2D coordinate transformation. procedure mw_c2tranr (a_ct, x1,y1, x2,y2) pointer a_ct #I pointer to CTRAN descriptor real x1,y1 #I coordinates in input system real x2,y2 #O coordinates in output system pointer ct, ltm, ltv real p1[2], p2[2] begin # Get real or double version of descriptor. ct = CT_R(a_ct) ltm = CT_LTM(ct) ltv = CT_LTV(ct) if (CT_TYPE(ct) == LNR) { # Simple linear, nonrotated transformation. x2 = Memr[ltm ] * x1 + Memr[ltv ] y2 = Memr[ltm+3] * y1 + Memr[ltv+1] } else if (CT_TYPE(ct) == LRO) { # Linear, rotated transformation. p1[1] = x1; p1[2] = y1 x2 = Memr[ltm ] * p1[1] + Memr[ltm+1] * p1[2] + Memr[ltv ] y2 = Memr[ltm+2] * p1[1] + Memr[ltm+3] * p1[2] + Memr[ltv+1] } else { # General case involving one or more functional terms. p1[1] = x1; p1[2] = y1 call mw_ctranr (a_ct, p1, p2, 2) x2 = p2[1]; y2 = p2[2] } end sptable-1.0.pre20180612/src/mwcs/gen/mwctrand.x000066400000000000000000000057741331023215600207470ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include "../mwcs.h" # MW_CTRAN -- Transform a single N-dimensional point, using the optimized # transformation set up by a prior call to MW_SCTRAN. procedure mw_ctrand (a_ct, p1, p2, ndim) pointer a_ct #I pointer to CTRAN descriptor double p1[ndim] #I coordinates of point in input system double p2[ndim] #O coordinates of point in output system int ndim #I dimensionality of point int naxes, i, j pointer ct, fc, ltm, ltv, d_ct double v1[MAX_DIM], v2[MAX_DIM], iv[MAX_DIM], ov[MAX_DIM] errchk zcall3 begin # Get real or double version of descriptor. ct = CT_D(a_ct) ltm = CT_LTM(ct) ltv = CT_LTV(ct) # Specially optimized cases. if (CT_TYPE(ct) == LNR) { # Simple linear, nonrotated transformation. do i = 1, ndim p2[i] = Memd[ltm+(i-1)*(ndim+1)] * p1[i] + Memd[ltv+i-1] return } else if (CT_TYPE(ct) == LRO) { # Simple linear, rotated transformation. call mw_ltrand (p1, p2, Memd[ltm], Memd[ltv], ndim) return } # If we get here the transformation involves a call to one or more # WCS functions. In this general case, the transformation consists # of zero or more calls to WCS functions to transform the input # world coordinates to the linear input system, followed by a general # linear transformation to the linear output system, followed by zero # or more calls to WCS functions to do the forward transformation # to generate the final output world coordinates. The WCS function # calls are always evaluated in double precision. # Make zero or more WCS function calls for the different axes of the # input system (inverse transform). call achtdd (p1, iv, ndim) do j = 1, CT_NCALLI(ct) { # Get pointer to function call descriptor. fc = CT_FCI(ct,j) naxes = FC_NAXES(fc) # Extract the coordinate vector for the function call. do i = 1, naxes v1[i] = p1[FC_AXIS(fc,i)] # Call the WCS function. call zcall3 (FC_FCN(fc), fc, v1, v2) # Edit the vector IV, replacing the entries associated with # the WCS function by the transformed values. do i = 1, naxes iv[FC_AXIS(fc,i)] = v2[i] } # Apply the general linear transformation. We may as well do this in # double since we already have to use double for the function calls. d_ct = CT_D(a_ct) call mw_ltrand (iv, ov, Memd[CT_LTM(d_ct)], Memd[CT_LTV(d_ct)], ndim) # Make zero or more WCS function calls for the different axes of the # output system (forward transform to final world system). call achtdd (ov, p2, ndim) do j = 1, CT_NCALLO(ct) { # Get pointer to function call descriptor. fc = CT_FCO(ct,j) naxes = FC_NAXES(fc) # Extract the coordinate vector for the function call. do i = 1, naxes v1[i] = ov[FC_AXIS(fc,i)] # Call the WCS function. call zcall3 (FC_FCN(fc), fc, v1, v2) # Edit the final output vector, replacing the entries for the # function axes by their transformed values. do i = 1, naxes p2[FC_AXIS(fc,i)] = v2[i] } end sptable-1.0.pre20180612/src/mwcs/gen/mwctranr.x000066400000000000000000000057701331023215600207610ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include "../mwcs.h" # MW_CTRAN -- Transform a single N-dimensional point, using the optimized # transformation set up by a prior call to MW_SCTRAN. procedure mw_ctranr (a_ct, p1, p2, ndim) pointer a_ct #I pointer to CTRAN descriptor real p1[ndim] #I coordinates of point in input system real p2[ndim] #O coordinates of point in output system int ndim #I dimensionality of point int naxes, i, j pointer ct, fc, ltm, ltv, d_ct double v1[MAX_DIM], v2[MAX_DIM], iv[MAX_DIM], ov[MAX_DIM] errchk zcall3 begin # Get real or double version of descriptor. ct = CT_R(a_ct) ltm = CT_LTM(ct) ltv = CT_LTV(ct) # Specially optimized cases. if (CT_TYPE(ct) == LNR) { # Simple linear, nonrotated transformation. do i = 1, ndim p2[i] = Memr[ltm+(i-1)*(ndim+1)] * p1[i] + Memr[ltv+i-1] return } else if (CT_TYPE(ct) == LRO) { # Simple linear, rotated transformation. call mw_ltranr (p1, p2, Memr[ltm], Memr[ltv], ndim) return } # If we get here the transformation involves a call to one or more # WCS functions. In this general case, the transformation consists # of zero or more calls to WCS functions to transform the input # world coordinates to the linear input system, followed by a general # linear transformation to the linear output system, followed by zero # or more calls to WCS functions to do the forward transformation # to generate the final output world coordinates. The WCS function # calls are always evaluated in double precision. # Make zero or more WCS function calls for the different axes of the # input system (inverse transform). call achtrd (p1, iv, ndim) do j = 1, CT_NCALLI(ct) { # Get pointer to function call descriptor. fc = CT_FCI(ct,j) naxes = FC_NAXES(fc) # Extract the coordinate vector for the function call. do i = 1, naxes v1[i] = p1[FC_AXIS(fc,i)] # Call the WCS function. call zcall3 (FC_FCN(fc), fc, v1, v2) # Edit the vector IV, replacing the entries associated with # the WCS function by the transformed values. do i = 1, naxes iv[FC_AXIS(fc,i)] = v2[i] } # Apply the general linear transformation. We may as well do this in # double since we already have to use double for the function calls. d_ct = CT_D(a_ct) call mw_ltrand (iv, ov, Memd[CT_LTM(d_ct)], Memd[CT_LTV(d_ct)], ndim) # Make zero or more WCS function calls for the different axes of the # output system (forward transform to final world system). call achtdr (ov, p2, ndim) do j = 1, CT_NCALLO(ct) { # Get pointer to function call descriptor. fc = CT_FCO(ct,j) naxes = FC_NAXES(fc) # Extract the coordinate vector for the function call. do i = 1, naxes v1[i] = ov[FC_AXIS(fc,i)] # Call the WCS function. call zcall3 (FC_FCN(fc), fc, v1, v2) # Edit the final output vector, replacing the entries for the # function axes by their transformed values. do i = 1, naxes p2[FC_AXIS(fc,i)] = v2[i] } end sptable-1.0.pre20180612/src/mwcs/gen/mwgctrand.x000066400000000000000000000030701331023215600211010ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include "../mwcs.h" # MW_GCTRAN -- Get a coordinate transformation compiled in a previous call # to mw_sctran. When the transformation is compiled, it is specified by # naming the input and output systems and the axes over which the transform # is to be performed. Rather than return this information, which the # application already knows, we return the actual transform, i.e., the # linear transformation matrix and translation vector comprising the linear # portion of the transform, and axis class arrays for the input and output # systems defining the axis types. If the axis types are all zero, there # are no WCS function calls for any axis in either system, and the # transformation is completely linear (hence computable by the application # if desired, e.g., with mw_ltr). int procedure mw_gctrand (a_ct, o_ltm, o_ltv, axtype1, axtype2, maxdim) pointer a_ct #I pointer to CTRAN descriptor double o_ltm[ARB] #O linear tranformation matrix double o_ltv[ARB] #O translation matrix int axtype1[ARB] #O axis types for input system int axtype2[ARB] #O axis types for output system int maxdim #I how much stuff to return pointer ct int pdim, ndim, i, j begin ct = CT_D(a_ct) pdim = CT_NDIM(ct) ndim = min (pdim, maxdim) # Output the goods. do j = 1, ndim { axtype1[j] = WCS_AXCLASS(CT_WCSI(ct),j) axtype2[j] = WCS_AXCLASS(CT_WCSO(ct),j) o_ltv[j] = Memd[CT_LTV(ct)+(j-1)] do i = 1, ndim o_ltm[(j-1)*ndim+i] = Memd[CT_LTM(ct)+(j-1)*pdim+(i-1)] } return (pdim) end sptable-1.0.pre20180612/src/mwcs/gen/mwgctranr.x000066400000000000000000000030641331023215600211220ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include "../mwcs.h" # MW_GCTRAN -- Get a coordinate transformation compiled in a previous call # to mw_sctran. When the transformation is compiled, it is specified by # naming the input and output systems and the axes over which the transform # is to be performed. Rather than return this information, which the # application already knows, we return the actual transform, i.e., the # linear transformation matrix and translation vector comprising the linear # portion of the transform, and axis class arrays for the input and output # systems defining the axis types. If the axis types are all zero, there # are no WCS function calls for any axis in either system, and the # transformation is completely linear (hence computable by the application # if desired, e.g., with mw_ltr). int procedure mw_gctranr (a_ct, o_ltm, o_ltv, axtype1, axtype2, maxdim) pointer a_ct #I pointer to CTRAN descriptor real o_ltm[ARB] #O linear tranformation matrix real o_ltv[ARB] #O translation matrix int axtype1[ARB] #O axis types for input system int axtype2[ARB] #O axis types for output system int maxdim #I how much stuff to return pointer ct int pdim, ndim, i, j begin ct = CT_R(a_ct) pdim = CT_NDIM(ct) ndim = min (pdim, maxdim) # Output the goods. do j = 1, ndim { axtype1[j] = WCS_AXCLASS(CT_WCSI(ct),j) axtype2[j] = WCS_AXCLASS(CT_WCSO(ct),j) o_ltv[j] = Memr[CT_LTV(ct)+(j-1)] do i = 1, ndim o_ltm[(j-1)*ndim+i] = Memr[CT_LTM(ct)+(j-1)*pdim+(i-1)] } return (pdim) end sptable-1.0.pre20180612/src/mwcs/gen/mwltrand.x000066400000000000000000000012011331023215600207350ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include "../mwcs.h" # MW_LTRAN -- Perform a general N-dimensional linear transformation, i.e., # matrix multiply and translation. procedure mw_ltrand (p1, p2, ltm, ltv, ndim) double p1[ndim] #I input point double p2[ndim] #O transformed output point double ltm[ndim,ndim] #I linear transformation matrix double ltv[ndim] #I linear translation vector int ndim #I dimension of system int i, j double p3[MAX_DIM] begin call amovd (p1, p3, ndim) do j = 1, ndim { p2[j] = ltv[j] do i = 1, ndim p2[j] = p2[j] + ltm[i,j] * p3[i] } end sptable-1.0.pre20180612/src/mwcs/gen/mwltranr.x000066400000000000000000000011671331023215600207660ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include "../mwcs.h" # MW_LTRAN -- Perform a general N-dimensional linear transformation, i.e., # matrix multiply and translation. procedure mw_ltranr (p1, p2, ltm, ltv, ndim) real p1[ndim] #I input point real p2[ndim] #O transformed output point real ltm[ndim,ndim] #I linear transformation matrix real ltv[ndim] #I linear translation vector int ndim #I dimension of system int i, j real p3[MAX_DIM] begin call amovr (p1, p3, ndim) do j = 1, ndim { p2[j] = ltv[j] do i = 1, ndim p2[j] = p2[j] + ltm[i,j] * p3[i] } end sptable-1.0.pre20180612/src/mwcs/gen/mwmmuld.x000066400000000000000000000007071331023215600206010ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. # MW_MMUL -- Matrix multiply. procedure mw_mmuld (a, b, c, ndim) double a[ndim,ndim] #I left input matrix double b[ndim,ndim] #I right input matrix double c[ndim,ndim] #O output matrix int ndim #I dimensionality of system int i, j, k double v begin do j = 1, ndim do i = 1, ndim { v = 0 do k = 1, ndim v = v + a[k,j] * b[i,k] c[i,j] = v } end sptable-1.0.pre20180612/src/mwcs/gen/mwmmulr.x000066400000000000000000000006771331023215600206250ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. # MW_MMUL -- Matrix multiply. procedure mw_mmulr (a, b, c, ndim) real a[ndim,ndim] #I left input matrix real b[ndim,ndim] #I right input matrix real c[ndim,ndim] #O output matrix int ndim #I dimensionality of system int i, j, k real v begin do j = 1, ndim do i = 1, ndim { v = 0 do k = 1, ndim v = v + a[k,j] * b[i,k] c[i,j] = v } end sptable-1.0.pre20180612/src/mwcs/gen/mwv1trand.x000066400000000000000000000014201331023215600210330ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include "../mwcs.h" # MW_V1TRAN -- Optimized 1D coordinate transformation for an array of points. procedure mw_v1trand (a_ct, x1, x2, npts) pointer a_ct #I pointer to CTRAN descriptor double x1[ARB] #I coordinates in input system double x2[ARB] #O coordinates in output system int npts int i pointer ct double scale, offset errchk mw_ctrand begin # Get real or double version of descriptor. ct = CT_D(a_ct) scale = Memd[CT_LTM(ct)] offset = Memd[CT_LTV(ct)] # Perform the transformation; case LNR is a simple linear transform. if (CT_TYPE(ct) == LNR) { do i = 1, npts x2[i] = scale * x1[i] + offset } else { do i = 1, npts call mw_ctrand (a_ct, x1[i], x2[i], 1) } end sptable-1.0.pre20180612/src/mwcs/gen/mwv1tranr.x000066400000000000000000000014121331023215600210520ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include "../mwcs.h" # MW_V1TRAN -- Optimized 1D coordinate transformation for an array of points. procedure mw_v1tranr (a_ct, x1, x2, npts) pointer a_ct #I pointer to CTRAN descriptor real x1[ARB] #I coordinates in input system real x2[ARB] #O coordinates in output system int npts int i pointer ct real scale, offset errchk mw_ctranr begin # Get real or double version of descriptor. ct = CT_R(a_ct) scale = Memr[CT_LTM(ct)] offset = Memr[CT_LTV(ct)] # Perform the transformation; case LNR is a simple linear transform. if (CT_TYPE(ct) == LNR) { do i = 1, npts x2[i] = scale * x1[i] + offset } else { do i = 1, npts call mw_ctranr (a_ct, x1[i], x2[i], 1) } end sptable-1.0.pre20180612/src/mwcs/gen/mwv2trand.x000066400000000000000000000023331331023215600210400ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include "../mwcs.h" # MW_V2TRAN -- Optimized 2D coordinate transformation for an array of points. procedure mw_v2trand (a_ct, x1,y1, x2,y2, npts) pointer a_ct #I pointer to CTRAN descriptor double x1[ARB],y1[ARB] #I coordinates in input system double x2[ARB],y2[ARB] #O coordinates in output system int npts int i pointer ct, ltm, ltv double p1[2], p2[2] errchk mw_ctrand begin # Get real or double version of descriptor. ct = CT_D(a_ct) ltm = CT_LTM(ct) ltv = CT_LTV(ct) if (CT_TYPE(ct) == LNR) { # Simple linear, nonrotated transformation. do i = 1, npts { x2[i] = Memd[ltm ] * x1[i] + Memd[ltv ] y2[i] = Memd[ltm+3] * y1[i] + Memd[ltv+1] } } else if (CT_TYPE(ct) == LRO) { # Linear, rotated transformation. do i = 1, npts { p1[1] = x1[i]; p1[2] = y1[i] x2[i] = Memd[ltm ] * p1[1] + Memd[ltm+1] * p2[1] + Memd[ltv ] y2[i] = Memd[ltm+2] * p1[1] + Memd[ltm+3] * p2[1] + Memd[ltv+1] } } else { # General case involving one or more functional terms. do i = 1, npts { p1[1] = x1[i]; p1[2] = y1[i] call mw_ctrand (a_ct, p1, p2, 2) x2[i] = p2[1]; y2[i] = p2[2] } } end sptable-1.0.pre20180612/src/mwcs/gen/mwv2tranr.x000066400000000000000000000023251331023215600210570ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include "../mwcs.h" # MW_V2TRAN -- Optimized 2D coordinate transformation for an array of points. procedure mw_v2tranr (a_ct, x1,y1, x2,y2, npts) pointer a_ct #I pointer to CTRAN descriptor real x1[ARB],y1[ARB] #I coordinates in input system real x2[ARB],y2[ARB] #O coordinates in output system int npts int i pointer ct, ltm, ltv real p1[2], p2[2] errchk mw_ctranr begin # Get real or double version of descriptor. ct = CT_R(a_ct) ltm = CT_LTM(ct) ltv = CT_LTV(ct) if (CT_TYPE(ct) == LNR) { # Simple linear, nonrotated transformation. do i = 1, npts { x2[i] = Memr[ltm ] * x1[i] + Memr[ltv ] y2[i] = Memr[ltm+3] * y1[i] + Memr[ltv+1] } } else if (CT_TYPE(ct) == LRO) { # Linear, rotated transformation. do i = 1, npts { p1[1] = x1[i]; p1[2] = y1[i] x2[i] = Memr[ltm ] * p1[1] + Memr[ltm+1] * p2[1] + Memr[ltv ] y2[i] = Memr[ltm+2] * p1[1] + Memr[ltm+3] * p2[1] + Memr[ltv+1] } } else { # General case involving one or more functional terms. do i = 1, npts { p1[1] = x1[i]; p1[2] = y1[i] call mw_ctranr (a_ct, p1, p2, 2) x2[i] = p2[1]; y2[i] = p2[2] } } end sptable-1.0.pre20180612/src/mwcs/gen/mwvmuld.x000066400000000000000000000006221331023215600206060ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. # MW_VMUL -- Vector multiply. procedure mw_vmuld (a, b, c, ndim) double a[ndim,ndim] #I input matrix double b[ndim] #I input vector double c[ndim] #O output vector int ndim #I system dimension int i, j double v begin do j = 1, ndim { v = 0 do i = 1, ndim v = v + a[i,j] * b[i] c[j] = v } end sptable-1.0.pre20180612/src/mwcs/gen/mwvmulr.x000066400000000000000000000006121331023215600206230ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. # MW_VMUL -- Vector multiply. procedure mw_vmulr (a, b, c, ndim) real a[ndim,ndim] #I input matrix real b[ndim] #I input vector real c[ndim] #O output vector int ndim #I system dimension int i, j real v begin do j = 1, ndim { v = 0 do i = 1, ndim v = v + a[i,j] * b[i] c[j] = v } end sptable-1.0.pre20180612/src/mwcs/gen/mwvtrand.x000066400000000000000000000011031331023215600207500ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. # MW_VTRAN -- Transform an array of N-dimensional points, expressed as a # 2D vector where v[1,i] is point I of vector V. procedure mw_vtrand (ct, v1, v2, ndim, npts) pointer ct #I pointer to CTRAN descriptor double v1[ndim,npts] #I points to be transformed double v2[ndim,npts] #O vector to get the transformed points int ndim #I dimensionality of each point int npts #I number of points int i errchk mw_ctrand begin do i = 1, npts call mw_ctrand (ct, v1[1,i], v2[1,i], ndim) end sptable-1.0.pre20180612/src/mwcs/gen/mwvtranr.x000066400000000000000000000010771331023215600210000ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. # MW_VTRAN -- Transform an array of N-dimensional points, expressed as a # 2D vector where v[1,i] is point I of vector V. procedure mw_vtranr (ct, v1, v2, ndim, npts) pointer ct #I pointer to CTRAN descriptor real v1[ndim,npts] #I points to be transformed real v2[ndim,npts] #O vector to get the transformed points int ndim #I dimensionality of each point int npts #I number of points int i errchk mw_ctranr begin do i = 1, npts call mw_ctranr (ct, v1[1,i], v2[1,i], ndim) end sptable-1.0.pre20180612/src/mwcs/imwcs.h000066400000000000000000000052671331023215600174560ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. # IMWCS.H -- Definitions used by MW_SAVEIM and MW_LOADIM to encode and # decode the FITS (image header) version of a MWCS. define DEF_MAXCARDS 128 # initial number of card descriptors define INC_MAXCARDS 128 # increment if overflow occurs define IDB_STARTVALUE 10 # column at which data field begins define MAX_FITSCOLS 68 # max chars of data per FITS card define DEF_BIGBUF 680 # initial size of "big" FITS buffer define INC_BIGBUF 680 # initial size of "big" FITS buffer define SZ_KWNAME 8 # size of FITS keyword define SZ_VALSTR 21 # size of FITS value string define SZ_SBUF 163840 # string buffer size (2048 WCS cards) define SZ_OBUF 680 # biggest "attribute = value" string define SZ_CARD 80 # card width, chars define SZ_BIGSTR MAX_FITSCOLS # max size FITS string (one card) define SZ_CTYPE 19 # max size of CTYPE value # WCS FITS main descriptor. define LEN_IMWCS 330 define IW_IM Memi[$1] # image descriptor define IW_NDIM Memi[$1+1] # image dimension define IW_NCARDS Memi[$1+2] # number of WCS cards define IW_CBUF Memi[$1+3] # card descriptors define IW_MAXCARDS Memi[$1+4] # CBUF allocated length, cards define IW_SBUF Memi[$1+5] # string buffer define IW_SBUFLEN Memi[$1+6] # SBUF allocated length, chars define IW_SBUFOP Memi[$1+7] # current offset in sbuf define IW_CARD (IW_CBUF($1)+(($2)-1)*LEN_CDES) # (avail) define IW_CROTA Memr[P2R($1+9)] # obsolete define IW_CTYPE Memi[$1+10+($2)-1] # axtype (strp) define IW_CRPIX Memd[P2D($1+20)+($2)-1] # CRPIXi define IW_CRVAL Memd[P2D($1+40)+($2)-1] # CRVALi define IW_CDELT Memd[P2D($1+60)+($2)-1] # CDELTi define IW_CD Memd[P2D($1+80)+(($3)-1)*7+($2)-1] # CDi_j define IW_LTV Memd[P2D($1+180)+($2)-1] # LTVi define IW_LTM Memd[P2D($1+200)+(($3)-1)*7+($2)-1] # LTMi_j define IW_WSVLEN Memi[$1+300+($2)-1] # WSVi_LEN define IW_PVMAX Memi[$1+310+($2)-1] # max pv index define IW_PCMAX Memi[$1+320+($2)-1] # max pc index # WCS FITS card descriptor. define LEN_CDES 6 define C_TYPE Memi[$1] # card type define C_AXIS Memi[$1+1] # wcs axis define C_INDEX Memi[$1+2] # card number on axis define C_CARDNO Memi[$1+3] # card number in header define C_UPDATED Memi[$1+4] # card has been updated define C_RP Memi[$1+5] # pointer to card # Card types. define TY_CTYPE 1 define TY_CDELT 2 define TY_CROTA 3 define TY_CRPIX 4 define TY_CRVAL 5 define TY_CD 6 define TY_LTV 7 define TY_LTM 8 define TY_WATDATA 9 define TY_WSVLEN 10 define TY_WSVDATA 11 define TY_WCSDIM 12 define TY_WAXMAP 13 define TY_PV 14 define TY_PC 15 # IW_RFITS definitions. define RF_REFERENCE 0 # reference directly into header define RF_COPY 1 # reference copies of header cards sptable-1.0.pre20180612/src/mwcs/iwcfits.x000066400000000000000000000006471331023215600200210ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include "imwcs.h" # IW_CFITS -- Close (free) an IMWCS descriptor allocated previously by # IW_RFITS. procedure iw_cfits (iw) pointer iw #I pointer to IMWCS descriptor begin if (IW_CBUF(iw) != NULL) call mfree (IW_CBUF(iw), TY_STRUCT) if (IW_SBUF(iw) != NULL) call mfree (IW_SBUF(iw), TY_CHAR) call mfree (iw, TY_STRUCT) end sptable-1.0.pre20180612/src/mwcs/iwctype.x000066400000000000000000000062321331023215600200310ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include "imwcs.h" # IW_CARDTYPE -- Examine a FITS card to see if it is a WCS specification card, # and if so, return the card type, axis number, and index number. ERR is # return if the card is not a WCS card. int procedure iw_cardtype (card, type, axis, index) char card[ARB] #I card to be examined int type #O card type int axis #O axis number or ERR int index #O index number or ERR int ch1, ch2, ip int strncmp(), ctoi() begin ch1 = card[1] ch2 = card[2] type = ERR ip = 6 # This is hardcoded for the sake of efficiency. if (ch1 == 'C') { if (ch2 == 'D') { if (IS_DIGIT (card[3])) { # CDi_j type = TY_CD axis = TO_INTEG (card[5]) index = TO_INTEG (card[3]) if (card[6] != ' ') type = ERR } else if (strncmp (card, "CDELT", 5) == 0) { # CDELTi type = TY_CDELT axis = TO_INTEG (card[6]) index = ERR if (card[7] != ' ') type = ERR } } else if (ch2 == 'R') { if (strncmp (card, "CROTA2", 6) == 0) { # CROTA2 type = TY_CROTA axis = ERR index = ERR } else if (strncmp (card, "CRPIX", 5) == 0) { # CRPIXi type = TY_CRPIX axis = TO_INTEG (card[6]) index = ERR if (card[7] != ' ') type = ERR } else if (strncmp (card, "CRVAL", 5) == 0) { # CRVALi type = TY_CRVAL axis = TO_INTEG (card[6]) index = ERR if (card[7] != ' ') type = ERR } } else if (ch2 == 'T') { if (strncmp (card, "CTYPE", 5) == 0) { # CTYPEi type = TY_CTYPE axis = TO_INTEG (card[6]) index = ERR if (card[7] != ' ') type = ERR } } } else if (ch1 == 'L' && ch2 == 'T') { if (card[3] == 'V' && IS_DIGIT (card[4])) { type = TY_LTV axis = TO_INTEG (card[4]) index = ERR } else if (card[3] == 'M' && IS_DIGIT (card[4])) { type = TY_LTM axis = TO_INTEG (card[4]) index = TO_INTEG (card[6]) } } else if (ch1 == 'W') { if (ch2 == 'A') { if (card[3] == 'T' && IS_DIGIT (card[4])) { type = TY_WATDATA axis = TO_INTEG (card[4]) if (IS_DIGIT(card[5])) ip = 5 if (ctoi (card, ip, index) <= 0) type = ERR } else if (strncmp (card, "WAXMAP", 6) == 0) { type = TY_WAXMAP axis = ERR ip = 7 if (ctoi (card, ip, index) <= 0) type = ERR } } else if (ch2 == 'C') { if (strncmp (card, "WCSDIM", 6) == 0) { type = TY_WCSDIM axis = ERR index = ERR } } else if (ch2 == 'S') { if (card[3] == 'V' && IS_DIGIT (card[4])) { if (strncmp (card[5], "_LEN", 4) == 0) { type = TY_WSVLEN axis = TO_INTEG (card[4]) index = ERR } else { if (IS_DIGIT(card[5])) ip = 5 if (ctoi (card, ip, index) > 0) { type = TY_WSVDATA axis = TO_INTEG (card[4]) } } } } } else if (ch1 == 'P' && (ch2 == 'V' || ch2 == 'C') && card[4] == '_' && IS_DIGIT(card[3]) && IS_DIGIT(card[5])) { if (ch2 == 'V') type = TY_PV if (ch2 == 'C') type = TY_PC axis = TO_INTEG (card[3]) ip = 5 if (ctoi (card, ip, index) <= 0) type = ERR } return (type) end sptable-1.0.pre20180612/src/mwcs/iwewcs.x000066400000000000000000000264201331023215600176470ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include include include include include include "mwcs.h" include "imwcs.h" define SPECTYPES "|wave|freq|velo|vrad|vopt|zopt|" # IW_ENTERWCS -- Enter a WCS as represented in an IMWCS (FITS oriented) # wcs descriptor into an MWCS descriptor. This routine is called by MW_LOADIM # after IW_RFITS has been called to scan a FITS image header to build the # IMWCS descriptor used as input here. procedure iw_enterwcs (mw, iw, ndim) pointer mw #I pointer to MWCS descriptor pointer iw #I pointer to IMWCS descriptor int ndim #I system dimension double theta, dval, maxval char ctype[8], prefix[4] bool have_ltm, have_ltv, have_wattr int axes[2], axis, npts, ch, ip, raax, decax, ax1, ax2, i, j, ea_type int npc[10], pc[3,10] pointer sp, r, o_r, cd, ltm, cp, rp, bufp, pv, wv, o_cd, o_ltm, str bool streq() pointer iw_gbigfits(), iw_findcard() int strncmp(), ctod(), strldxs(), strmatch(), strdic(), envgeti() errchk mw_swtermd, iw_gbigfits, malloc, mw_swtype, mw_swsampd define samperr_ 91 begin call smark (sp) call salloc (r, ndim, TY_DOUBLE) call salloc (o_r, ndim, TY_DOUBLE) call salloc (cd, ndim*ndim, TY_DOUBLE) call salloc (ltm, ndim*ndim, TY_DOUBLE) call salloc (o_cd, ndim*ndim, TY_DOUBLE) call salloc (o_ltm, ndim*ndim, TY_DOUBLE) call salloc (str, SZ_LINE, TY_CHAR) raax = 1 decax = 2 call aclri (npc, 10) # Set any nonlinear functions on the axes. do axis = 1, ndim { rp = IW_CTYPE(iw,axis) if (rp == NULL) next # Get the value of CTYPEi. Ignore case and treat '_' and '-' # as equivalent. do i = 1, SZ_CTYPE { ch = Memc[rp+i-1] if (ch == EOS || ch == ' ' || ch == '\'') break else if (IS_UPPER(ch)) ch = TO_LOWER(ch) else if (ch == '_') ch = '-' ctype[i] = ch } ctype[i] = EOS # Set prefix string. if (ctype[5] == '-') call strcpy (ctype, prefix, 4) else prefix[1] = EOS # Determine the type of function on this axis. j = strmatch (ctype, "-pc?$") if (!IS_DIGIT(ctype[j-1])) j = 0 if (j > 0) { # PC corrections. ctype[j-4] = EOS i = ctype[j-1] - '0' + 1 npc[i] = npc[i] + 1 pc[npc[i],i] = axis call mw_swattrs (mw, axis, "axtype", ctype) call mw_swattrs (mw, axis, "pc", ctype[j-3]) } else if (strdic (prefix, Memc[str], SZ_LINE, SPECTYPES) > 0) { # Treat all as linear for now. call mw_swattrs (mw, axis, "label", ctype) } else if (streq (ctype, "linear")) { ; # Linear is the default. } else if (streq (ctype, "sampled")) { # A sampled WCS is an array of [P,W] points. bufp = iw_gbigfits (iw, TY_WSVDATA, axis) npts = IW_WSVLEN(iw,axis) call malloc (pv, npts, TY_DOUBLE) call malloc (wv, npts, TY_DOUBLE) ip = 1 do i = 1, npts { if (ctod (Memc[bufp], ip, Memd[pv+i-1]) <= 0) goto samperr_ if (ctod (Memc[bufp], ip, Memd[wv+i-1]) <= 0) { samperr_ call eprintf ( "Image %s, axis %d: Cannot read sampled WCS\n") call pargstr (IM_NAME(IW_IM(iw))) call pargi (axis) break } } call mw_swtype (mw, axis, 1, "sampled", "") call mw_swsampd (mw, axis, Memd[pv], Memd[wv], npts) call mfree (wv, TY_DOUBLE) call mfree (pv, TY_DOUBLE) call mfree (bufp, TY_CHAR) } else if (strncmp (ctype, "ra--", 4) == 0) { # The projections are restricted to two axes and are indicated # by CTYPEi values such as, e.g., "RA---TAN" and "DEC--TAN" # for the TAN projection. raax = axis # Locate the DEC axis. decax = 0 do j = 1, ndim { cp = IW_CTYPE(iw,j) if (cp != NULL) if (Memc[cp+3] == '-' || Memc[cp+3] == '_') if (strncmp (Memc[cp], "DEC", 3) == 0 || strncmp (Memc[cp], "dec", 3) == 0) { decax = j break } } # Did we find it? if (decax == 0) { call eprintf ( "Image %s, axis %d: Cannot locate dec-%s axis\n") call pargstr (IM_NAME(IW_IM(iw))) call pargi (axis) call pargstr (ctype[5]) } # Get the function type. ip = strldxs ("-", ctype) + 1 # Assign the function to the two axes. axes[1] = axis axes[2] = decax call mw_swtype (mw, axes, 2, ctype[ip], "axis 1: axtype=ra axis 2: axtype=dec") } else if (strncmp (ctype, "dec-", 4) == 0) { ; # This case is handled when RA-- is seen. } else if (strncmp (ctype[2], "lon-", 4) == 0) { # The projections are restricted to two axes and are indicated # by CTYPEi values such as, e.g., "xLON-TAN" and "xLAT-TAN" # for the TAN projection. The letter x may be any character # but must be the same for both the longitude and latitude # axes. The standard values of x are G/g for galactic, E/e # for ecliptic, and S/s for supergalactic coordinates. raax = axis # Locate the corresponding LAT axis. decax = 0 do j = 1, ndim { cp = IW_CTYPE(iw,j) if (cp != NULL) { if (Memc[cp+4] == '-' || Memc[cp+4] == '_') { if (strncmp (Memc[cp+1], "LAT", 3) == 0 || strncmp (Memc[cp+1], "lat", 3) == 0) { decax = j break } } } } # Did we find it? if (decax == 0) { call eprintf ( "Image %s, axis %d: Cannot locate %clat%s axis\n") call pargstr (IM_NAME(IW_IM(iw))) call pargi (axis) call pargc (ctype[1]) call pargstr (ctype[5]) } # Get the function type. ip = strldxs ("-", ctype) + 1 # Assign the function to the two axes. axes[1] = axis axes[2] = decax call sprintf (Memc[str], SZ_LINE, "axis 1: axtype=%clon axis 2: axtype=%clat") call pargc (ctype[1]) call pargc (ctype[1]) call mw_swtype (mw, axes, 2, ctype[ip], Memc[str]) } else if (strncmp (ctype[2], "lat-", 4) == 0) { ; # This case is handled when xLON is seen. } else if (strncmp (ctype, "multispec", 8) == 0) { # Multispec format image. Axis 1,2 are coupled. if (axis == 1) { axes[1] = 1; axes[2] = 2 call mw_swtype (mw, axes, 2, "multispec", "") } } else { # Since we have to be able to read any FITS header, we have # no control over the value of CTYPEi. If the value is # something we don't know about, assume a LINEAR axis, using # the given value of CTYPEi as the default axis label. call mw_swattrs (mw, axis, "label", ctype) } # Set PV coefficients for this axis. npts = IW_PVMAX(iw,axis) if (npts > 0) { call calloc (pv, npts, TY_DOUBLE) do j = 0, npts-1 { cp = iw_findcard (iw, TY_PV, axis, j) if (cp != NULL) { rp = C_RP(cp) ip = IDB_STARTVALUE if (ctod (Memc[rp], ip, dval) > 0) Memd[pv+j] = dval } } call mw_spv (mw, axis, Memd[pv], npts) call mfree (pv, TY_DOUBLE) } # Set PC coefficients for this axis. npts = IW_PCMAX(iw,axis) if (npts > 0) { call calloc (pv, npts, TY_DOUBLE) do j = 0, npts-1 { cp = iw_findcard (iw, TY_PC, axis, j) if (cp != NULL) { rp = C_RP(cp) ip = IDB_STARTVALUE if (ctod (Memc[rp], ip, dval) > 0) Memd[pv+j] = dval } } call mw_spc (mw, axis, Memd[pv], npts) call mfree (pv, TY_DOUBLE) } } do i = 1, 10 { if (npc[i] > 0) call mw_swtype (mw, pc[1,i], npc[i], "pc", "") } # Compute the CD matrix, or verify that one was read. Either the # CD matrix was input, the CROTA/CDELT representation was input, # or nothing was input, in which case we have the identity matrix. if (iw_findcard (iw, TY_CD, ERR, 0) == NULL) { # Initialize CD matrix to the identity matrix. Can't use mw_mkidm # here as IW_CD is not dimensioned ndim. do j = 1, ndim { do i = 1, ndim IW_CD(iw,i,j) = 0.0 IW_CD(iw,j,j) = 1.0 } # Convert CDELT/CROTA to CD matrix. if (iw_findcard (iw, TY_CDELT, ERR, 0) != NULL) { theta = DEGTORAD(IW_CROTA(iw)) ax1 = raax ax2 = decax IW_CD(iw,ax1,ax1) = IW_CDELT(iw,ax1) * cos(theta) IW_CD(iw,ax1,ax2) = IW_CDELT(iw,ax1) * sin(theta) IW_CD(iw,ax2,ax1) = -IW_CDELT(iw,ax2) * sin(theta) IW_CD(iw,ax2,ax2) = IW_CDELT(iw,ax2) * cos(theta) } do j = 1, ndim { if (j == raax || j == decax) next IW_CD(iw,j,j) = IW_CDELT(iw,j) } } # Set axes with no scales to unit scales. Issue a warning by # default but use "wcs_matrix_err" to allow setting other error # actions. do i = 1, ndim { maxval = 0D0 do j = 1, ndim maxval = max (maxval, abs(IW_CD(iw,i,j))) if (maxval == 0D0) { iferr (ea_type = envgeti ("wcs_matrix_err")) ea_type = EA_WARN iferr { switch (ea_type) { case EA_FATAL, EA_ERROR: call sprintf (Memc[str], SZ_FNAME, "CD keywords for axis %d undefined") call pargi (i) call error (SYS_MWMISSAX, Memc[str]) case EA_WARN: IW_CD(iw,i,i) = 1D0 call sprintf (Memc[str], SZ_LINE, "setting CD%d_%d to %.4g") call pargi (i) call pargi (i) call pargd (IW_CD(iw,i,i)) call error (SYS_MWMISSAX, Memc[str]) default: IW_CD(iw,i,i) = 1D0 } } then call erract (ea_type) } } # Extract an NDIM submatrix from LTM and CD. do j = 1, ndim do i = 1, ndim { Memd[o_cd+(j-1)*ndim+(i-1)] = IW_CD(iw,i,j) Memd[o_ltm+(j-1)*ndim+(i-1)] = IW_LTM(iw,i,j) } # Set the linear portion of the Wterm. First we have to transform # it from the FITS logical->world representation to the MWCS # physical->world form, by separating out the Lterm. We have # CD = CD' * LTM and R = inv(LTM) * (R' - LTV), where CD' and R' are # the FITS versions of the MWCS CD matrix and R vector (CRPIX), and # LTM and LTV are the Lterm rotation matrix and translation vector. # First, determine if either LTM or LTV was specified in the header. have_ltm = (iw_findcard (iw, TY_LTM, ERR, 0) != NULL) have_ltv = (iw_findcard (iw, TY_LTV, ERR, 0) != NULL) # Compute CD = CD' * LTM. if (have_ltm) call mw_mmuld (Memd[o_cd], Memd[o_ltm], Memd[cd], ndim) else call amovd (Memd[o_cd], Memd[cd], ndim*ndim) # Compute R = inv(LTM) * (R' - LTV). if (have_ltm || have_ltv) { call asubd (IW_CRPIX(iw,1), IW_LTV(iw,1), Memd[o_r], ndim) if (have_ltm) { call mw_invertd (Memd[o_ltm], Memd[ltm], ndim) call mw_vmuld (Memd[ltm], Memd[o_r], Memd[r], ndim) } else call amovd (Memd[o_r], Memd[r], ndim) } else call amovd (IW_CRPIX(iw,1), Memd[r], ndim) # Set the Wterm. call mw_swtermd (mw, Memd[r], IW_CRVAL(iw,1), Memd[cd], ndim) # Process in any axis attributes. The pseudo-axis 0 is used by # any global WCS attributes. do axis = 0, ndim { # Is there any attribute data for axis J? have_wattr = false do i = 1, IW_NCARDS(iw) { cp = IW_CARD(iw,i) if (C_TYPE(cp) == TY_WATDATA && C_AXIS(cp) == axis) { have_wattr = true break } } # Reconstruct the attribute list and enter into MWCS. if (have_wattr) { bufp = iw_gbigfits (iw, TY_WATDATA, axis) call mw_swtype (mw, axis, 1, "", Memc[bufp]) call mfree (bufp, TY_CHAR) } } call sfree (sp) end sptable-1.0.pre20180612/src/mwcs/iwfind.x000066400000000000000000000015431331023215600176250ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include "imwcs.h" # IW_FINDCARD -- Search the card list in the IMWCS descriptor for a card of # the given type, with the given axis and index numbers. Return a pointer to # the card if found, else NULL. pointer procedure iw_findcard (iw, type, axis, index) pointer iw #I pointer to IMWCS descriptor int type #I card type code int axis #I axis number, or <0 to ignore int index #I index number, or <=0 to ignore int i pointer cp begin do i = 1, IW_NCARDS(iw) { cp = IW_CARD(iw,i) if (C_TYPE(cp) != type) next if (axis >= 0) if (C_AXIS(cp) != axis) next if (index > 0) if (C_INDEX(cp) != index) next if (index == 0 && (type == TY_PV || type == TY_PC)) if (C_INDEX(cp) != index) next return (cp) } return (NULL) end sptable-1.0.pre20180612/src/mwcs/iwgbfits.x000066400000000000000000000043741331023215600201700ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include "imwcs.h" # IW_GBIGFITS -- Get a FITS string valued parameter of arbitrary size. # Since a FITS string stored as a single parameter is limited to at most # 69 characters, multiple FITS cards must be used to store longer strings. # At the time that this routine is called, IW_RFITS has already been called # to scan the FITS header and build up a list of WCS oriented cards, # including card types and pointers to the card data. Our job is merely # to take these cards in order and concatenate the string values into one # large string, returning a pointer to the string as the function value. # The caller must later make a MFREE call to free this buffer. pointer procedure iw_gbigfits (iw, ctype, axis) pointer iw #I pointer to IMWCS descriptor int ctype #I card type int axis #I axis to which card refers int ncards, i, j, ch pointer cp, bp, ip, op, rp define put_ 10 begin # How much space do we need? ncards = 0 do i = 1, IW_NCARDS(iw) { cp = IW_CARD(iw,i) if (C_AXIS(cp) == axis && C_TYPE(cp) == ctype) ncards = ncards + 1 } # Allocate the space. call calloc (bp, ncards * MAX_FITSCOLS, TY_CHAR) # For successive cards 1, 2, 3, etc... op = bp do j = 1, ncards { # Find the card. rp = NULL do i = 1, IW_NCARDS(iw) { cp = IW_CARD(iw,i) if (C_AXIS(cp) != axis) next if (C_INDEX(cp) != j) next if (C_TYPE(cp) != ctype) next rp = C_RP(cp) break } # Append to the string buffer. if (rp != NULL) { #call amovc (Memc[rp+IDB_STARTVALUE+1], Memc[op], MAX_FITSCOLS) #op = op + MAX_FITSCOLS do i = 1, MAX_FITSCOLS { ip = rp + IDB_STARTVALUE + i ch = Memc[ip] if (ch == EOS || ch == '\n') { break } else if (ch == '\'') { if (Memc[ip+1] == '\'') { goto put_ } else if (Memc[ip-1] == '\'') { ; } else if (i > 1 && i <= MAX_FITSCOLS) { # If we're not at the end of the card, we have a # complete string, but add a space for appending # so we don't concatenate. Memc[op] = ' ' op = op + 1 break } else break } else { put_ Memc[op] = ch op = op + 1 } } } } Memc[op] = EOS return (bp) end sptable-1.0.pre20180612/src/mwcs/iwparray.x000066400000000000000000000027171331023215600202070ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include "imwcs.h" # IW_PUTARRAY -- Output a double floating array as a sequence of FITS cards, # one value per card in the form "keyword = value", using the format string # given to format the name of the FITS keyword. procedure iw_putarray (iw, new, old, ndim, kw_format, kw_type, kw_index) pointer iw #I pointer to IMWCS descriptor double new[ndim] #I new array values double old[ndim] #I old array values from header int ndim #I image and WCS dimension char kw_format[ARB] #I format for encoding keyword name int kw_type #I IMWCS keyword type code int kw_index #I keword index or 0 if don't care int axis pointer cp, im char kwname[SZ_KWNAME] bool fp_equald() pointer iw_findcard() errchk imaddf, imputd begin do axis = 1, ndim { # If new value is zero, no output, delete old card if present. if (fp_equald (new[axis], 0.0D0)) next # See if we read the card for this parameter. cp = iw_findcard (iw, kw_type, axis, kw_index) im = IW_IM(iw) # If value is unchanged, no need to do anything. if (fp_equald (new[axis], old[axis])) { if (cp != NULL) C_UPDATED(cp) = YES next } # Update the keyword in the image header. call sprintf (kwname, SZ_KWNAME, kw_format) call pargi (axis) if (cp == NULL) call imaddf (im, kwname, "d") call imputd (im, kwname, new[axis]) if (cp != NULL) C_UPDATED(cp) = YES } end sptable-1.0.pre20180612/src/mwcs/iwpstr.x000066400000000000000000000040221331023215600176700ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include "imwcs.h" # IW_PUTSTR -- Put an arbitrarily large string valued parameter to a FITS # header, using multiple FITS cards if necessary. The input string value is # passed in as a byte stream file. procedure iw_putstr (fd, iw, axis, ctype, fmt1, fmt2, max_index) int fd #I input file pointer iw #I pointer to IMWCS descriptor int axis #I axis to which parameter belongs int ctype #I card type char fmt1[ARB], fmt2[ARB] #I keyword name formats int max_index #I use fmt2 if index > max_index bool update int index, nchars pointer sp, bigstr, im, cp char kwname[SZ_KWNAME] pointer iw_findcard() int read(), strncmp() errchk read, imaddf, impstr begin call smark (sp) call salloc (bigstr, SZ_BIGSTR, TY_CHAR) index = 0 im = IW_IM(iw) repeat { # Get enough data to fit on a FITS card. nchars = read (fd, Memc[bigstr], SZ_BIGSTR) if (nchars <= 0) break # Blank fill the last card if necessary. #while (nchars < SZ_BIGSTR && mod (nchars, SZ_BIGSTR) != 0) { # Memc[bigstr+nchars] = ' ' # nchars = nchars + 1 #} Memc[bigstr+nchars] = EOS index = index + 1 cp = iw_findcard (iw, ctype, axis, index) update = true if (cp != NULL) if (strncmp (Memc[C_RP(cp)+IDB_STARTVALUE+1], Memc[bigstr], SZ_BIGSTR) == 0) { update = false } # Output the card. The format string should contain two %d # fields, unless axis=ERR, in which case only the index value # is used. If the index value is greater than max_index then # fmt2 is used as the print format, otherwise fmt1 is used. if (update) { if (max_index > 0 && index > max_index) call sprintf (kwname, SZ_KWNAME, fmt2) else call sprintf (kwname, SZ_KWNAME, fmt1) if (axis >= 0) call pargi (axis) call pargi (index) if (cp == NULL) call imaddf (im, kwname, "c") call impstr (im, kwname, Memc[bigstr]) } if (cp != NULL) C_UPDATED(cp) = YES } call sfree (sp) end sptable-1.0.pre20180612/src/mwcs/iwrfits.x000066400000000000000000000121001331023215600200230ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include include include include "mwcs.h" include "imwcs.h" # IW_RFITS -- Read a FITS image header into an IMWCS (FITS oriented) world # coordinate system descriptor. For reasons of efficiency (especially due # to the possibly of large sampled WCS arrays) this is done with a single # pass through the header to get all the WCS data, with interpretation of # the data being a separate independent step. A pointer to an IMWCS descriptor # is returned as the function value. When no longer needed, this should be # freed with IW_CLOSE. The dimensionality of the WCS is determined first # from the image dimensionality (which may be zero) and then overridden # if there is a WCSDIM card. If the final dimensionality is zero then # the maximum axis of the WCS cards sets the dimensionality. pointer procedure iw_rfits (mw, im, mode) pointer mw #I pointer to MWCS descriptor pointer im #I pointer to image header int mode #I RF_REFERENCE or RF_COPY double dval bool omit, copy pointer iw, idb, rp, cp, fp int ndim, recno, ualen, type, axis, index, ip, temp, i pointer idb_open() int idb_nextcard(), iw_cardtype(), ctod(), ctoi() errchk calloc, realloc, syserrs begin ndim = max (IM_NDIM(im), IM_NPHYSDIM(im)) copy = (mode == RF_COPY) # Allocate and initialize the FITS-WCS descriptor. call calloc (iw, LEN_IMWCS, TY_STRUCT) call calloc (IW_CBUF(iw), LEN_CDES * DEF_MAXCARDS, TY_STRUCT) # Allocate string buffer if we must keep a local copy of the data. if (copy) { call calloc (IW_SBUF(iw), SZ_SBUF, TY_CHAR) IW_SBUFLEN(iw) = SZ_SBUF IW_SBUFOP(iw) = 0 } IW_MAXCARDS(iw) = DEF_MAXCARDS IW_NDIM(iw) = ndim IW_IM(iw) = im # Scan the image header, examining successive cards to see if they # are WCS specification cards, making an entry for each such card # in the IMWCS descriptor. The values of simple scalar valued cards # are interpreted immediately and used to modify the default WCS # data values established above. For the array valued parameters we # merely record the particulars for each card, leaving reconstruction # of the array until all the cards have been located. idb = idb_open (im, ualen) recno = 0 while (idb_nextcard (idb, rp) != EOF) { recno = recno + 1 if (iw_cardtype (Memc[rp], type, axis, index) <= 0) next # Has this card already been seen? omit = false do i = 1, IW_NCARDS(iw) { cp = IW_CARD(iw,i) if (C_TYPE(cp) != type) next if (C_AXIS(cp) != axis) next if (C_INDEX(cp) != index) next omit = true break } # Ignore duplicate cards. if (omit) next # Get another card descriptor. IW_NCARDS(iw) = IW_NCARDS(iw) + 1 if (IW_NCARDS(iw) > IW_MAXCARDS(iw)) { IW_MAXCARDS(iw) = IW_MAXCARDS(iw) + INC_MAXCARDS call realloc (IW_CBUF(iw), IW_MAXCARDS(iw) * LEN_CDES, TY_STRUCT) cp = IW_CARD(iw,IW_NCARDS(iw)) call aclri (Memi[cp], (IW_MAXCARDS(iw) - IW_NCARDS(iw) + 1) * LEN_CDES) } cp = IW_CARD(iw,IW_NCARDS(iw)) C_TYPE(cp) = type C_AXIS(cp) = axis C_INDEX(cp) = index C_CARDNO(cp) = recno ndim = max (ndim, axis) # The FITS data must be copied into local storage if the header # will be edited, since otherwise the cards may move, invalidating # the pointer. Always save whole cards; don't bother with an EOS # or newline between cards. if (copy) { if (IW_SBUFOP(iw) + SZ_CARD > IW_SBUFLEN(iw)) call syserrs (SYS_MWFITSOVFL, IM_NAME(im)) C_RP(cp) = IW_SBUF(iw) + IW_SBUFOP(iw) call strcpy (Memc[rp], Memc[C_RP(cp)], SZ_CARD) IW_SBUFOP(iw) = IW_SBUFOP(iw) + SZ_CARD } else C_RP(cp) = rp # Decode the card value. ip = IDB_STARTVALUE switch (type) { case TY_CTYPE: fp = C_RP(cp) + ip while (IS_WHITE(Memc[fp]) || Memc[fp] == '\'') fp = fp + 1 IW_CTYPE(iw,axis) = fp case TY_CDELT: if (ctod (Memc[rp], ip, IW_CDELT(iw,axis)) <= 0) IW_CDELT(iw,axis) = 0.0 case TY_CROTA: if (ctod (Memc[rp], ip, dval) > 0) IW_CROTA(iw) = dval case TY_CRPIX: if (ctod (Memc[rp], ip, IW_CRPIX(iw,axis)) <= 0) IW_CRPIX(iw,axis) = 0.0 case TY_CRVAL: if (ctod (Memc[rp], ip, IW_CRVAL(iw,axis)) <= 0) IW_CRVAL(iw,axis) = 0.0 case TY_CD: if (ctod (Memc[rp], ip, IW_CD(iw,axis,index)) <= 0) IW_CD(iw,axis,index) = 0.0 case TY_LTV: if (ctod (Memc[rp], ip, IW_LTV(iw,axis)) <= 0) IW_LTV(iw,axis) = 0.0 case TY_LTM: if (ctod (Memc[rp], ip, IW_LTM(iw,axis,index)) <= 0) IW_LTM(iw,axis,index) = 0.0 case TY_WSVLEN: if (ctoi (Memc[rp], ip, IW_WSVLEN(iw,axis)) <= 0) IW_WSVLEN(iw,axis) = 0 case TY_WCSDIM: if (ctoi (Memc[rp], ip, temp) > 0) IW_NDIM(iw) = temp case TY_PV: IW_PVMAX(iw,axis) = max (index+1, IW_PVMAX(iw,axis)) case TY_PC: IW_PCMAX(iw,axis) = max (index+1, IW_PCMAX(iw,axis)) } } # Set dimension to the maximum axis seen. if (IW_NDIM(iw) == 0) IW_NDIM(iw) = ndim call idb_close (idb) return (iw) end sptable-1.0.pre20180612/src/mwcs/iwsaxmap.x000066400000000000000000000074531331023215600202040ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include include "mwcs.h" # IW_SETAXMAP -- If the reference image was opened with an image section, # modify the Lterm to reflect the section transformation, and enable the # axis map if any dimensional reduction was involved. procedure iw_setaxmap (mw, im) pointer mw #I pointer to MWCS descriptor pointer im #I pointer to reference image double v pointer sp, ltv_1, ltv_2, ltm int wcsdim, ndim, physax, i, j int axno[MAX_DIM], axval[MAX_DIM] int o_axno[MAX_DIM], o_axval[MAX_DIM] int n_axno[MAX_DIM], n_axval[MAX_DIM] begin # If there is no section we don't need to do anything. if (IM_SECTUSED(im) == NO) return call smark (sp) ndim = IM_NPHYSDIM(im) call salloc (ltv_1, ndim, TY_DOUBLE) call salloc (ltv_2, ndim, TY_DOUBLE) call salloc (ltm, ndim*ndim, TY_DOUBLE) # The section transformation is px = VSTEP * lx + VOFF, specifying # the transformation from logical to physical image coordinates. # The IMIO axis map is given by j=VMAP[i], mapping logical axis I to # physical axis J. Hence the physical to logical transformation in # terms of IMIO units is given by lx = (1/VSTEP) * px + (-VOFF/VSTEP). # Since the section transform forbids rotation the axes are independent. call aclrd (Memd[ltv_1], ndim) call aclrd (Memd[ltm], ndim * ndim) do i = 1, ndim { if (IM_VSTEP(im,i) == 0) v = 1.0D0 else v = 1.0D0 / IM_VSTEP(im,i) Memd[ltm+(i-1)*ndim+i-1] = v Memd[ltv_2+(i-1)] = -(IM_VOFF(im,i) * v) } # Enter the section transformation. This uses the axis map, but the # transformation is defined in terms of the physical image matrix, # which is defined by the old axis map before modification by the new # image section. Hence we must do this step before editing the axis # map below. call mw_translated (mw, Memd[ltv_1], Memd[ltm], Memd[ltv_2], ndim) # Compute the axis map for the active image section relative to the # current physical image matrix. do j = 1, ndim { for (i=1; i <= IM_NDIM(im); i=i+1) if (IM_VMAP(im,i) == j) break if (i > IM_NDIM(im)) { axno[j] = 0 axval[j] = IM_VOFF(im,j) } else { axno[j] = i axval[j] = 0 } } # Get the old axis map for the WCS. In the general case the WCS can # have a dimension higher than the current image, i.e. if the current # image was produced by extracting a section of an image of higher # dimension. In such a case the WCS will have an axis map relating # the physical axes of the current image back to the original physical # system. wcsdim = MI_NDIM(mw) call mw_gaxmap (mw, o_axno, o_axval, wcsdim) # Combine the old axis map and the axis map for the current image # section. The old axis map physical->logical mapping maps WCS # physical axes to logical axes, which are the physical axes of the # current image. The axis map for the current image section maps the # physical axes of the current image to the logical axes of the # section. An axis removed in the WCS axis map is not visible in the # image axno/axval computed above; the corresponding axis in the # combined WCS axis map is unchanged. The remaining axes are subject # to remapping by the mage axno/axval. This mapping may set any of # the axes to a constant to further reduce the dimensionality of the # logical system, however that does not concern us here, we just pass # on the combined axno/axval vectors to mw_saxmap. do i = 1, wcsdim { if (o_axno[i] == 0) { n_axno[i] = 0 n_axval[i] = o_axval[i] } else { physax = o_axno[i] n_axno[i] = axno[physax] n_axval[i] = axval[physax] } } # Set the new axis map. call mw_saxmap (mw, n_axno, n_axval, wcsdim) call sfree (sp) end sptable-1.0.pre20180612/src/mwcs/mkpkg000066400000000000000000000063101331023215600172050ustar00rootroot00000000000000# Make the MWCS interface. $checkout libex.a spbin$ $update libex.a $checkin libex.a spbin$ ; update: $copy bin$libex.a libex.a $update libex.a $move libex.a spbin$ ; generic: $set G = "$$generic -k -p gen/ -t rd" $ifolder (gen/mwc1tranr.x, mwc1tran.gx) $(G) mwc1tran.gx $endif $ifolder (gen/mwc2tranr.x, mwc2tran.gx) $(G) mwc2tran.gx $endif $ifolder (gen/mwctranr.x, mwctran.gx) $(G) mwctran.gx $endif $ifolder (gen/mwgctranr.x, mwgctran.gx) $(G) mwgctran.gx $endif $ifolder (gen/mwltranr.x, mwltran.gx) $(G) mwltran.gx $endif $ifolder (gen/mwmmulr.x, mwmmul.gx) $(G) mwmmul.gx $endif $ifolder (gen/mwv1tranr.x, mwv1tran.gx) $(G) mwv1tran.gx $endif $ifolder (gen/mwv2tranr.x, mwv2tran.gx) $(G) mwv2tran.gx $endif $ifolder (gen/mwvmulr.x, mwvmul.gx) $(G) mwvmul.gx $endif $ifolder (gen/mwvtranr.x, mwvtran.gx) $(G) mwvtran.gx $endif ; zzdebug: zzdebug.e: $copy bin$libex.a ./ $update libex.a $move libex.a spbin$ $omake zzdebug.x imwcs.h $link -z zzdebug.o ; libex.a: # $set xflags = "$(xflags) -qfx" $ifeq (USE_GENERIC, yes) $call generic $endif @gen iwcfits.x imwcs.h iwctype.x imwcs.h iwewcs.x imwcs.h mwcs.h iwfind.x imwcs.h iwgbfits.x imwcs.h iwparray.x imwcs.h iwpstr.x imwcs.h iwrfits.x imwcs.h mwcs.h iwsaxmap.x mwcs.h mwallocd.x mwcs.h mwallocs.x mwcs.h mwclose.x mwcs.h mwctfree.x mwcs.com mwcs.h mwfindsys.x mwcs.h mwflookup.x mwcs.com mwcs.h mwgaxlist.x mwcs.h mwgaxmap.x mwcs.h mwgltermd.x mwcs.h mwgltermr.x mwcs.h mwgpc.x mwcs.h mwgpv.x mwcs.h mwgsys.x mwcs.h mwgwattrs.x mwcs.h mwgwsampd.x mwcs.h mwgwsampr.x mwcs.h mwgwtermd.x mwcs.h mwgwtermr.x mwcs.h mwinvertd.x mwinvertr.x mwload.x mwcs.h mwsv.h mwloadim.x imwcs.h mwcs.h mwlu.x mwmkidmd.x mwmkidmr.x mwnewcopy.x mwcs.h mwnewsys.x mwcs.h mwopen.x mwcs.h mwopenim.x mwrefstr.x mwcs.h mwrotate.x mwcs.h mwsave.x mwcs.h mwsv.h mwsaveim.x imwcs.h mwcs.com mwcs.h mwsaxmap.x mwcs.h mwscale.x mwcs.h mwsctran.x mwcs.com mwcs.h mwsdefwcs.x mwcs.h mwseti.x mwcs.h mwshift.x mwcs.h mwshow.x mwcs.h mwsltermd.x mwcs.h mwsltermr.x mwcs.h mwspc.x mwcs.h mwspv.x mwcs.h mwssys.x mwcs.h mwstati.x mwcs.h mwswattrs.x mwcs.h mwswsampd.x mwcs.h mwswsampr.x mwcs.h mwswtermd.x mwcs.h mwswtermr.x mwcs.h mwswtype.x mwcs.h mwtransd.x mwcs.h mwtransr.x wfait.x mwcs.h wfarc.x mwcs.h wfcar.x mwcs.h wfcsc.x mwcs.h wfdecaxis.x mwcs.h wfgls.x mwcs.h wfgsurfit.x wfinit.x mwcs.com mwcs.h wfmer.x mwcs.h wfmol.x mwcs.h wfmspec.x mwcs.h wfpar.x mwcs.h wfpc.x mwcs.h wfpco.x mwcs.h wfqsc.x mwcs.h wfsamp.x mwcs.h wfsin.x mwcs.h wfstg.x mwcs.h wftan.x mwcs.h wftnx.x mwcs.h wftpv.x mwcs.h wftsc.x mwcs.h wfzea.x mwcs.h wfzpn.x mwcs.h wfzpx.x mwcs.h ; sptable-1.0.pre20180612/src/mwcs/mwallocd.x000066400000000000000000000021351331023215600201450ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include "mwcs.h" # MW_ALLOCD -- Allocate space in the data buffer. The size of the buffer # is automatically increased if necessary. Note that reallocation of the # buffer may cause it to move, hence all data items are referred to by their # offset in the buffer, rather than by an absolute pointer. int procedure mw_allocd (mw, nelem) pointer mw #I pointer to MWCS descriptor int nelem #I number of elements to alloc space for int dbufused, dbuflen, offset errchk realloc begin dbufused = MI_DBUFUSED(mw) dbuflen = MI_DBUFLEN(mw) offset = dbufused + 1 # Increase buffer size? if (dbufused + nelem > dbuflen) { dbuflen = dbuflen + INC_SZDBUF while (dbufused + nelem > dbuflen) dbuflen = dbuflen + INC_SZDBUF call realloc (MI_DBUF(mw), dbuflen, TY_DOUBLE) call aclrd (D(mw,offset), dbuflen - offset + 1) MI_DBUFLEN(mw) = dbuflen } # Allocate the space in the buffer, and return the buffer offset # of the allocated area. MI_DBUFUSED(mw) = max (0, dbufused + nelem) return (offset) end sptable-1.0.pre20180612/src/mwcs/mwallocs.x000066400000000000000000000024421331023215600201650ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include "mwcs.h" # MW_ALLOCS -- Allocate space in the global string buffer. The size of the # buffer is automatically increased if necessary. Note that reallocation of # the buffer may cause it to move, hence all data items are referred to by # their offset in the buffer, rather than by an absolute pointer. Since we # are allocating space for string data, a space for the EOS is automatically # allocated in addition to space for the indicated number of data chars. int procedure mw_allocs (mw, nchars) pointer mw #I pointer to MWCS descriptor int nchars #I number of chars to allocate space for int sbufused, sbuflen, offset, nelem errchk realloc begin sbufused = MI_SBUFUSED(mw) sbuflen = MI_SBUFLEN(mw) offset = sbufused + 1 nelem = nchars + 1 # Increase buffer size? if (sbufused + nelem > sbuflen) { sbuflen = sbuflen + INC_SZSBUF while (sbufused + nelem > sbuflen) sbuflen = sbuflen + INC_SZSBUF call realloc (MI_SBUF(mw), sbuflen, TY_CHAR) call aclrc (S(mw,offset), sbuflen - offset + 1) MI_SBUFLEN(mw) = sbuflen } # Allocate the space in the buffer, and return the buffer offset # of the allocated area. MI_SBUFUSED(mw) = max (0, sbufused + nelem) return (offset) end sptable-1.0.pre20180612/src/mwcs/mwc1tran.gx000066400000000000000000000011251331023215600202440ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include "../mwcs.h" # MW_C1TRAN -- Optimized 1D coordinate transformation. PIXEL procedure mw_c1tran$t (a_ct, x) pointer a_ct #I pointer to CTRAN descriptor PIXEL x #I coordinates in input system PIXEL y pointer ct begin # Get real or double version of descriptor. ct = CT_$T(a_ct) # Perform the transformation; LNR is a simple linear transformation. if (CT_TYPE(ct) == LNR) { return (Mem$t[CT_LTM(ct)] * x + Mem$t[CT_LTV(ct)]) } else { call mw_ctran$t (a_ct, x, y, 1) return (y) } end sptable-1.0.pre20180612/src/mwcs/mwc2tran.gx000066400000000000000000000020471331023215600202510ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include "../mwcs.h" # MW_C2TRAN -- Optimized 2D coordinate transformation. procedure mw_c2tran$t (a_ct, x1,y1, x2,y2) pointer a_ct #I pointer to CTRAN descriptor PIXEL x1,y1 #I coordinates in input system PIXEL x2,y2 #O coordinates in output system pointer ct, ltm, ltv PIXEL p1[2], p2[2] begin # Get real or double version of descriptor. ct = CT_$T(a_ct) ltm = CT_LTM(ct) ltv = CT_LTV(ct) if (CT_TYPE(ct) == LNR) { # Simple linear, nonrotated transformation. x2 = Mem$t[ltm ] * x1 + Mem$t[ltv ] y2 = Mem$t[ltm+3] * y1 + Mem$t[ltv+1] } else if (CT_TYPE(ct) == LRO) { # Linear, rotated transformation. p1[1] = x1; p1[2] = y1 x2 = Mem$t[ltm ] * p1[1] + Mem$t[ltm+1] * p1[2] + Mem$t[ltv ] y2 = Mem$t[ltm+2] * p1[1] + Mem$t[ltm+3] * p1[2] + Mem$t[ltv+1] } else { # General case involving one or more functional terms. p1[1] = x1; p1[2] = y1 call mw_ctran$t (a_ct, p1, p2, 2) x2 = p2[1]; y2 = p2[2] } end sptable-1.0.pre20180612/src/mwcs/mwclose.x000066400000000000000000000015441331023215600200170ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include include "mwcs.h" # MW_CLOSE -- Close a MWCS descriptor and deallocate all resources used # by the descriptor. Any CTRAN descriptors which have been opened on # the MWCS are automatically closed if not already manually closed by # the application. procedure mw_close (mw) pointer mw #U pointer to MWCS descriptor int i pointer ct begin # Free any still allocated CTRAN descriptors. do i = 1, MAX_CTRAN { ct = MI_CTRAN(mw,i) if (ct != NULL) iferr (call mw_ctfree (ct)) call erract (EA_WARN) } # Free the string and data buffers. if (MI_SBUF(mw) != NULL) call mfree (MI_SBUF(mw), TY_CHAR) if (MI_DBUF(mw) != NULL) call mfree (MI_DBUF(mw), TY_DOUBLE) # Free the main descriptor. call mfree (mw, TY_STRUCT) end sptable-1.0.pre20180612/src/mwcs/mwcs.com000066400000000000000000000004351331023215600176240ustar00rootroot00000000000000# MWCS common. Used for things that are global and don't change, i.e., # the WCS function drivers. int fn_nfn # number of defined functions int fn_table[LEN_FN,MAX_FN] # function table char fn_names[SZ_FNNAME,MAX_FN] # function names common /mwcscom/ fn_nfn, fn_table, fn_names sptable-1.0.pre20180612/src/mwcs/mwcs.h000066400000000000000000000160521331023215600172770ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. # MWCS.H -- Global (internal) definitions for the mini-WCS interface. define MWCS_MAGIC 4D57X # identifies MWCS descriptors define DEF_SZSBUF 512 # initial string buffer size define INC_SZSBUF 512 # increment string buffer size define DEF_SZDBUF 64 # initial double buffer size define INC_SZDBUF 64 # increment double buffer size define MAX_DIM 7 # max dimension of a wcs define MAX_WCS 8 # max wcs per mwcs define MAX_WATTR 512 # max attributes per wcs define MAX_CTRAN 20 # max runtime ctran descriptors define MAX_CALL 7 # max CTRAN function calls define MAX_FUNC 7 # max WCS function descriptors define MAX_WCSFD 10 # max loaded WCS function drivers define MAX_FN 32 # max MWCS function drivers define SZ_FNNAME 20 # max size function name define SZ_ATNAME 20 # max size attribute name # MWCS descriptor. This consists of the base descriptor, global string # buffer, global data buffer (TY_DOUBLE), and separately allocated buffers # for each runtime CT (coordinate transformation) descriptor. All character # data is stored in SBUF. All floating point data is stored as type double # in DBUF (this does not mean that coordinate transformations are necessarily # carried out in double precision). All string and floating data is # referenced in the base descriptor by its index in the appropriate data # buffer, to make the descriptor invariant with respect to relocation of DBUF. # To keep things simple, space is preallocated for a fixed number of WCS, # and for each WCS, for a fixed number of attributes. define LEN_BASEMWCS 70 define LEN_WCS 1666 # (depends upon MAX_WATTR) define LEN_MWCS (LEN_BASEMWCS+LEN_WCS*MAX_WCS) define MI_LEN (LEN_BASEMWCS+LEN_WCS*MI_NWCS($1)) define MI_MAGIC Memi[$1] # magic marker define MI_NDIM Memi[$1+1] # wcs physical dimension define MI_WCS Memi[$1+2] # pointer to current wcs define MI_NWCS Memi[$1+3] # number of wcs defined define MI_REFIM Memi[$1+4] # reference image, if any define MI_SBUF Memi[$1+5] # string buffer pointer define MI_SBUFLEN Memi[$1+6] # string buffer alloclen define MI_SBUFUSED Memi[$1+7] # string buffer chars used define MI_DBUF Memi[$1+8] # double buffer pointer define MI_DBUFLEN Memi[$1+9] # double buffer alloclen define MI_DBUFUSED Memi[$1+10] # double buffer doubles used define MI_USEAXMAP Memi[$1+11] # enable axis mapping define MI_NLOGDIM Memi[$1+12] # dimension of logical system # (available) define MI_LTV Memi[$1+18] # dbuf index of LT vector define MI_LTM Memi[$1+19] # dbuf index of LT matrix define MI_AXNO Memi[$1+20+($2)-1] # axis map, log[phys] define MI_AXVAL Memi[$1+30+($2)-1] # axis value, if axno[i]=0 define MI_PHYSAX Memi[$1+40+($2)-1] # inverted map, phys[log] define MI_CTRAN Memi[$1+50+($2)-1] # ctran descriptor pointers define MI_WCSP ($1+70+(($2)-1)*LEN_WCS) # WCS descriptor. This consists of a base structure, used to index string # and double data which is stored in the global buffers SBUF and DBUF. # An array of WCS descriptors is preallocated in the main MWCS descriptor. define WCS_NDIM Memi[$1] # dimension of world system define WCS_SYSTEM Memi[$1+1] # sbuf index of system name define WCS_AXCLASS Memi[$1+2+($2)-1] # axis type, 0 or FUNC index define WCS_R Memi[$1+10] # dbuf index of R array define WCS_W Memi[$1+11] # dbuf index of W array define WCS_CD Memi[$1+12] # dbuf index of CD matrix define WCS_NPVC Memi[$1+20+($2)-1] # number of PV coefficients define WCS_PVC Memi[$1+30+($2)-1] # PV coefficients define WCS_NPC Memi[$1+40+($2)-1] # number of PC coefficients define WCS_PC Memi[$1+50+($2)-1] # PC coefficients define WCS_NPTS Memi[$1+60+($2)-1] # number of points in wsampv define WCS_PV Memi[$1+70+($2)-1] # wsamp physical vector define WCS_WV Memi[$1+80+($2)-1] # wsamp world vector define WCS_NFUNC Memi[$1+89] # number of functions define WCS_FUNC ($1+90+(($2)-1)*5) # function descriptors define WCS_NWATTR Memi[$1+129] # number of wcs attributes define WCS_WATTR ($1+130+(($2)-1)*3) # pointer to wattr substruct # WCS function descriptor. define LEN_WF 5 define WF_FN Memi[$1] # function code define WF_NAXES Memi[$1+1] # number of axes define WF_AXIS Memi[$1+2+($2)-1] # axes function applies to # Function type flags. define FORWARD 0 # forward transform (P->W) define INVERSE 1 # inverse transform (W->P) # WCS attribute descriptor. define LEN_AT 3 define AT_AXIS Memi[$1] # wcs axis which owns attribute define AT_NAME Memi[$1+1] # sbuf index of name string define AT_VALUE Memi[$1+2] # sbuf index of value string # CTRAN descriptor. Prepared when a coordinate transformation is set up # with mw_sctran. The transformation is optimized and reduced to a series # of matrix multiply, translate, wcs function call etc. instructions as # described by this descriptor. Both single and double precision versions # of the transform are prepared, with the application deciding at runtime # which precision routine to call. define LEN_CTBASE (20+MAX_CALL*LEN_FC*2) define CT_D ($1) # pointer to type double CT define CT_R Memi[$1] # pointer to type real CT define CT_MW Memi[$1+1] # pointer back to MWCS define CT_WCSI Memi[$1+2] # pointer back to system 1 define CT_WCSO Memi[$1+3] # pointer back to system 2 define CT_TYPE Memi[$1+4] # ctran type (optimized) define CT_NDIM Memi[$1+5] # ctran physical dimension define CT_LTM Memi[$1+6] # pointer to rot matrix define CT_LTV Memi[$1+7] # pointer to translation vector define CT_NCALLI Memi[$1+8] # number of function calls define CT_NCALLO Memi[$1+9] # number of function calls define CT_AXIS Memi[$1+10+($2)-1] # maps ctran axis to physax define CT_FCI ($1+20+(($2)-1)*LEN_FC) # pointer to CALL descriptor define CT_FCO ($1+188+(($2)-1)*LEN_FC) # CT types, for optimized transforms. define LNR 0 # linear, not rotated define LRO 1 # linear, rotated define GEN 2 # general catch all case # Base FC (WCS function call) descriptor. This consists of a base descriptor # common to all WCS functions, followed by a private area reserved for use # by the WCS function. define LEN_FC 64 define FC_CT Memi[$1] # CTRAN descriptor define FC_WCS Memi[$1+1] # WCS descriptor define FC_WF Memi[$1+2] # WF descriptor define FC_FCN Memi[$1+3] # epa of WCS function define FC_NAXES Memi[$1+4] # number of axes in call define FC_AXIS Memi[$1+5+($2)-1] # CTRAN axes used by FC (max 3) define FCU 8 # offset to first user field # WCS function driver (stored in common). define LEN_FN 5 # length of function driver define FN_FLAGS fn_table[1,$1] # function type flags define FN_INIT fn_table[2,$1] # initialize call descriptor define FN_DESTROY fn_table[3,$1] # free call descriptor define FN_FWD fn_table[4,$1] # forward transformation define FN_INV fn_table[5,$1] # inverse transformation define FN_NAME fn_names[1,$1] # function name # WCS function codes. define F_LINEAR 0 # linear (not a function) # WCS function type bit flags. define F_RADEC 01B # function requires RA/DEC # Handy macros. define S Memc[MI_SBUF($1)+$2-1] # string = S(mw,i) define D Memd[MI_DBUF($1)+$2-1] # double = D(mw,i) sptable-1.0.pre20180612/src/mwcs/mwctfree.x000066400000000000000000000022121331023215600201530ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include "mwcs.h" # MW_CTFREE -- Free a CTRAN (coordinate transformation) descriptor. We keep # track of all allocated CTRAN descriptors in the parent MWCS descriptor, and # NULL the saved entry for a descriptor when it is freed, thus guaranteeing # that a descriptor will be freed only once. procedure mw_ctfree (ct) pointer ct #U pointer to CTRAN descriptor int fn, i, j pointer mw, fc include "mwcs.com" begin if (ct != NULL) { mw = CT_MW(ct) if (mw != NULL) do i = 1, MAX_CTRAN if (MI_CTRAN(mw,i) == ct) { # Free private storage for any input WCS functions. do j = 1, CT_NCALLI(ct) { fc = CT_FCI(ct,j) fn = WF_FN(FC_WF(fc)) if (FN_DESTROY(fn) != NULL) call zcall1 (FN_DESTROY(fn), fc) } # Free private storage for any output WCS functions. do j = 1, CT_NCALLO(ct) { fc = CT_FCO(ct,j) fn = WF_FN(FC_WF(fc)) if (FN_DESTROY(fn) != NULL) call zcall1 (FN_DESTROY(fn), fc) } # Free the main CTRAN descriptor. call mfree (ct, TY_STRUCT) MI_CTRAN(mw,i) = NULL break } } end sptable-1.0.pre20180612/src/mwcs/mwctran.gx000066400000000000000000000060031331023215600201630ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include "../mwcs.h" # MW_CTRAN -- Transform a single N-dimensional point, using the optimized # transformation set up by a prior call to MW_SCTRAN. procedure mw_ctran$t (a_ct, p1, p2, ndim) pointer a_ct #I pointer to CTRAN descriptor PIXEL p1[ndim] #I coordinates of point in input system PIXEL p2[ndim] #O coordinates of point in output system int ndim #I dimensionality of point int naxes, i, j pointer ct, fc, ltm, ltv, d_ct double v1[MAX_DIM], v2[MAX_DIM], iv[MAX_DIM], ov[MAX_DIM] errchk zcall3 begin # Get real or double version of descriptor. ct = CT_$T(a_ct) ltm = CT_LTM(ct) ltv = CT_LTV(ct) # Specially optimized cases. if (CT_TYPE(ct) == LNR) { # Simple linear, nonrotated transformation. do i = 1, ndim p2[i] = Mem$t[ltm+(i-1)*(ndim+1)] * p1[i] + Mem$t[ltv+i-1] return } else if (CT_TYPE(ct) == LRO) { # Simple linear, rotated transformation. call mw_ltran$t (p1, p2, Mem$t[ltm], Mem$t[ltv], ndim) return } # If we get here the transformation involves a call to one or more # WCS functions. In this general case, the transformation consists # of zero or more calls to WCS functions to transform the input # world coordinates to the linear input system, followed by a general # linear transformation to the linear output system, followed by zero # or more calls to WCS functions to do the forward transformation # to generate the final output world coordinates. The WCS function # calls are always evaluated in double precision. # Make zero or more WCS function calls for the different axes of the # input system (inverse transform). call acht$td (p1, iv, ndim) do j = 1, CT_NCALLI(ct) { # Get pointer to function call descriptor. fc = CT_FCI(ct,j) naxes = FC_NAXES(fc) # Extract the coordinate vector for the function call. do i = 1, naxes v1[i] = p1[FC_AXIS(fc,i)] # Call the WCS function. call zcall3 (FC_FCN(fc), fc, v1, v2) # Edit the vector IV, replacing the entries associated with # the WCS function by the transformed values. do i = 1, naxes iv[FC_AXIS(fc,i)] = v2[i] } # Apply the general linear transformation. We may as well do this in # double since we already have to use double for the function calls. d_ct = CT_D(a_ct) call mw_ltrand (iv, ov, Memd[CT_LTM(d_ct)], Memd[CT_LTV(d_ct)], ndim) # Make zero or more WCS function calls for the different axes of the # output system (forward transform to final world system). call achtd$t (ov, p2, ndim) do j = 1, CT_NCALLO(ct) { # Get pointer to function call descriptor. fc = CT_FCO(ct,j) naxes = FC_NAXES(fc) # Extract the coordinate vector for the function call. do i = 1, naxes v1[i] = ov[FC_AXIS(fc,i)] # Call the WCS function. call zcall3 (FC_FCN(fc), fc, v1, v2) # Edit the final output vector, replacing the entries for the # function axes by their transformed values. do i = 1, naxes p2[FC_AXIS(fc,i)] = v2[i] } end sptable-1.0.pre20180612/src/mwcs/mwfindsys.x000066400000000000000000000011641331023215600203670ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include "mwcs.h" # MW_FINDSYS -- Lookup the named world coordinate system and return a pointer # to the WCS descriptor, or NULL if the system is not defined. pointer procedure mw_findsys (mw, system) pointer mw #I pointer to MWCS descriptor char system[ARB] #I system to be looked up int i pointer wp bool streq() begin # Search the list of defined systems. do i = 1, MI_NWCS(mw) { wp = MI_WCSP(mw,i) if (WCS_SYSTEM(wp) != NULL) if (streq (S(mw,WCS_SYSTEM(wp)), system)) return (wp) } # Not found. return (NULL) end sptable-1.0.pre20180612/src/mwcs/mwflookup.x000066400000000000000000000012771331023215600203740ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include "mwcs.h" # MW_FLOOKUP -- Look up the named WCS function in the driver table, and # return the index of the associated driver. ERR is returned if the named # function is not found, 0 if the function is "linear", otherwise the # index of the function driver is returned. int procedure mw_flookup (mw, fnname) pointer mw #I pointer to MWCS descriptor char fnname[ARB] #I function to be lookup up int fn, i bool streq() include "mwcs.com" begin if (streq (fnname, "linear")) return (F_LINEAR) fn = ERR do i = 1, fn_nfn if (streq (fnname, FN_NAME(i))) { fn = i break } return (fn) end sptable-1.0.pre20180612/src/mwcs/mwgaxlist.x000066400000000000000000000020031331023215600203540ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include "mwcs.h" # MW_GAXLIST -- Get the physical axis list. The bitflags in AXBITS define the # axes in the logical system; run these through the axis map (if enabled) to # get the list of physical axes for which the transformation is to be prepared. procedure mw_gaxlist (mw, axbits, axis, naxes) pointer mw #I pointer to MWCS descriptor int axbits #I bitflag marking the desired axes int axis[MAX_DIM] #O output axis array int naxes #O number of axes in axis array int bits, ax, i int bitupk() begin bits = axbits if (bits == 0) bits = 177B # default to all axes naxes = 0 do i = 1, MAX_DIM if (bitupk (bits, i, 1) != 0) { if (MI_USEAXMAP(mw) == YES) { if (i > MI_NLOGDIM(mw)) break # Map logical axis to physical axis. ax = MI_PHYSAX(mw,i) } else { if (i > MI_NDIM(mw)) break ax = i } # Add physical axis to axis list. naxes = naxes + 1 axis[naxes] = ax } end sptable-1.0.pre20180612/src/mwcs/mwgaxmap.x000066400000000000000000000015131331023215600201630ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include "mwcs.h" # MW_GAXMAP -- Get the axis map. This assigns a logical axis axno[i] to # each physical axis I. If axno[i]=0, the value of the physical axis # coordinate is the constant axval[i], and the dimension of the logical # system is reduced by one. procedure mw_gaxmap (mw, axno, axval, ndim) pointer mw #I pointer to MWCS descriptor int axno[ndim] #O physical -> logical axis assignments int axval[ndim] #O value of physical axis if axno=0 int ndim #I physical dimension of axis map int i errchk syserrs begin # Verify dimension. if (MI_NDIM(mw) != ndim) call syserrs (SYS_MWNDIM, "mw_gaxmap") # Copy out the current axis map. do i = 1, ndim { axno[i] = MI_AXNO(mw,i) axval[i] = MI_AXVAL(mw,i) } end sptable-1.0.pre20180612/src/mwcs/mwgctran.gx000066400000000000000000000030721331023215600203350ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include "../mwcs.h" # MW_GCTRAN -- Get a coordinate transformation compiled in a previous call # to mw_sctran. When the transformation is compiled, it is specified by # naming the input and output systems and the axes over which the transform # is to be performed. Rather than return this information, which the # application already knows, we return the actual transform, i.e., the # linear transformation matrix and translation vector comprising the linear # portion of the transform, and axis class arrays for the input and output # systems defining the axis types. If the axis types are all zero, there # are no WCS function calls for any axis in either system, and the # transformation is completely linear (hence computable by the application # if desired, e.g., with mw_ltr). int procedure mw_gctran$t (a_ct, o_ltm, o_ltv, axtype1, axtype2, maxdim) pointer a_ct #I pointer to CTRAN descriptor PIXEL o_ltm[ARB] #O linear tranformation matrix PIXEL o_ltv[ARB] #O translation matrix int axtype1[ARB] #O axis types for input system int axtype2[ARB] #O axis types for output system int maxdim #I how much stuff to return pointer ct int pdim, ndim, i, j begin ct = CT_$T(a_ct) pdim = CT_NDIM(ct) ndim = min (pdim, maxdim) # Output the goods. do j = 1, ndim { axtype1[j] = WCS_AXCLASS(CT_WCSI(ct),j) axtype2[j] = WCS_AXCLASS(CT_WCSO(ct),j) o_ltv[j] = Mem$t[CT_LTV(ct)+(j-1)] do i = 1, ndim o_ltm[(j-1)*ndim+i] = Mem$t[CT_LTM(ct)+(j-1)*pdim+(i-1)] } return (pdim) end sptable-1.0.pre20180612/src/mwcs/mwgltermd.x000066400000000000000000000016621331023215600203510ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include "mwcs.h" # MW_GLTERMD -- Get the current Lterm, double precision version. procedure mw_gltermd (mw, ltm, ltv, ndim) pointer mw #I pointer to MWCS descriptor double ltm[ndim,ndim] #O linear transformation matrix double ltv[ndim] #O translation vector int ndim #I dimensionality of system int i errchk syserrs begin # The dimensionality of the data must match that of the current Lterm. if (ndim != MI_NDIM(mw)) call syserrs (SYS_MWNDIM, "mw_gltermd") # Copy out the data. Default to a unitary transformation if the # Lterm has not been initialized. if (MI_LTM(mw) == NULL) { call aclrd (ltm, ndim*ndim) do i = 1, ndim ltm[i,i] = 1.0D0 } else call amovd (D(mw,MI_LTM(mw)), ltm, ndim*ndim) if (MI_LTV(mw) == NULL) call aclrd (ltv, ndim) else call amovd (D(mw,MI_LTV(mw)), ltv, ndim) end sptable-1.0.pre20180612/src/mwcs/mwgltermr.x000066400000000000000000000016561331023215600203720ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include "mwcs.h" # MW_GLTERMR -- Get the current Lterm, single precision version. procedure mw_gltermr (mw, ltm, ltv, ndim) pointer mw #I pointer to MWCS descriptor real ltm[ndim,ndim] #O linear transformation matrix real ltv[ndim] #O translation vector int ndim #I dimensionality of system int i errchk syserrs begin # The dimensionality of the data must match that of the current Lterm. if (ndim != MI_NDIM(mw)) call syserrs (SYS_MWNDIM, "mw_gltermr") # Copy out the data. Default to a unitary transformation if the # Lterm has not been initialized. if (MI_LTM(mw) == NULL) { call aclrr (ltm, ndim*ndim) do i = 1, ndim ltm[i,i] = 1.0 } else call achtdr (D(mw,MI_LTM(mw)), ltm, ndim*ndim) if (MI_LTV(mw) == NULL) call aclrr (ltv, ndim) else call achtdr (D(mw,MI_LTV(mw)), ltv, ndim) end sptable-1.0.pre20180612/src/mwcs/mwgpc.x000066400000000000000000000014111331023215600174540ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include "mwcs.h" # MW_GPC -- Get PC coefficients for an axis. procedure mw_gpc (mw, axis, pc, npts) pointer mw #I pointer to MWCS descriptor int axis #I axis which gets the wsamp vector double pc[ARB] #O PC coefficients int npts #I number of coefficients pointer wp errchk syserrs string s_name "mw_gpc" begin # Get the current WCS. wp = MI_WCS(mw) if (wp == NULL) call syserrs (SYS_MWNOWCS, s_name) # Verify that there are PC coefficients for this WCS. if (WCS_NPC(wp,axis) <= 0 || WCS_PC(wp,axis) == NULL) call syserrs (SYS_MWNOWSAMP, s_name) # Copy out the coefficients. call amovd (D(mw,WCS_PC(wp,axis)), pc, min(WCS_NPC(wp,axis), npts)) end sptable-1.0.pre20180612/src/mwcs/mwgpv.x000066400000000000000000000014211331023215600175000ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include "mwcs.h" # MW_GPV -- Get the PV coefficients for an axis. procedure mw_gpv (mw, axis, pv, npts) pointer mw #I pointer to MWCS descriptor int axis #I axis which gets the wsamp vector double pv[ARB] #O PV coefficients int npts #I number of coefficients pointer wp errchk syserrs string s_name "mw_gpv" begin # Get the current WCS. wp = MI_WCS(mw) if (wp == NULL) call syserrs (SYS_MWNOWCS, s_name) # Verify that there are PV coefficients for this WCS. if (WCS_NPVC(wp,axis) <= 0 || WCS_PVC(wp,axis) == NULL) call syserrs (SYS_MWNOWSAMP, s_name) # Copy out the coefficients. call amovd (D(mw,WCS_PVC(wp,axis)), pv, min(WCS_NPVC(wp,axis), npts)) end sptable-1.0.pre20180612/src/mwcs/mwgsys.x000066400000000000000000000006501331023215600176740ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include "mwcs.h" # MW_GSYSTEM -- Return the name of the current default world system. procedure mw_gsystem (mw, outstr, maxch) pointer mw #I pointer to MWCS descriptor char outstr[ARB] #O receives name of world system int maxch #I max chars out pointer wp begin wp = MI_WCS(mw) call strcpy (S(mw,WCS_SYSTEM(wp)), outstr, maxch) end sptable-1.0.pre20180612/src/mwcs/mwgwattrs.x000066400000000000000000000026541331023215600204100ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include "mwcs.h" # MW_GWATTRS -- Get the string value of the named WCS attribute for axis N. # If the attribute name is a number N, attribute number N is returned instead, # allowing the attributes to be listed without knowing their names. procedure mw_gwattrs (mw, axis, attribute, valstr, maxch) pointer mw #I pointer to MWCS descriptor int axis #I axis to which attribute belongs char attribute[SZ_ATNAME] #U attribute name char valstr[ARB] #O attribute value int maxch #I max chars to output value string pointer wp, ap int item, atno, i int ctoi() bool streq() errchk syserrs begin # Get current WCS. wp = MI_WCS(mw) if (wp == NULL) call syserrs (SYS_MWNOWCS, "mw_gwattrs") # Get attribute number if number was given. i = 1 if (ctoi (attribute, i, atno) == 0) atno = 0 # Lookup the named or numbered attribute and output the value # string if found. item = 0 do i = 1, WCS_NWATTR(wp) { ap = WCS_WATTR(wp,i) if (AT_AXIS(ap) == axis) { item = item + 1 if (atno > 0) { if (atno == item) { call strcpy (S(mw,AT_NAME(ap)), attribute, SZ_ATNAME) call strcpy (S(mw,AT_VALUE(ap)), valstr, maxch) return } } else if (streq (S(mw,AT_NAME(ap)), attribute)) { call strcpy (S(mw,AT_VALUE(ap)), valstr, maxch) return } } } call syserrs (SYS_MWWATTRNF, attribute) end sptable-1.0.pre20180612/src/mwcs/mwgwsampd.x000066400000000000000000000017061331023215600203540ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include "mwcs.h" # MW_GWSAMPD -- Get the sampled WCS curve for an axis. procedure mw_gwsampd (mw, axis, pv, wv, npts) pointer mw #I pointer to MWCS descriptor int axis #I axis which gets the wsamp vector double pv[ARB] #O physical coordinates of points double wv[ARB] #O world coordinates of points int npts #I number of data point in curve pointer wp errchk syserrs string s_name "mw_gwsampd" begin # Get the current WCS. wp = MI_WCS(mw) if (wp == NULL) call syserrs (SYS_MWNOWCS, s_name) # Verify that there is a sampled curve for this WCS. if (WCS_NPTS(wp,axis) <= 0 || WCS_PV(wp,axis) == NULL || WCS_WV(wp,axis) == NULL) call syserrs (SYS_MWNOWSAMP, s_name) # Copy out the curves. call amovd (D(mw,WCS_PV(wp,axis)), pv, min(WCS_NPTS(wp,axis), npts)) call amovd (D(mw,WCS_WV(wp,axis)), wv, min(WCS_NPTS(wp,axis), npts)) end sptable-1.0.pre20180612/src/mwcs/mwgwsampr.x000066400000000000000000000017041331023215600203700ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include "mwcs.h" # MW_GWSAMPR -- Get the sampled WCS curve for an axis. procedure mw_gwsampr (mw, axis, pv, wv, npts) pointer mw #I pointer to MWCS descriptor int axis #I axis which gets the wsamp vector real pv[ARB] #O physical coordinates of points real wv[ARB] #O world coordinates of points int npts #I number of data point in curve pointer wp errchk syserrs string s_name "mw_gwsampr" begin # Get the current WCS. wp = MI_WCS(mw) if (wp == NULL) call syserrs (SYS_MWNOWCS, s_name) # Verify that there is a sampled curve for this WCS. if (WCS_NPTS(wp,axis) <= 0 || WCS_PV(wp,axis) == NULL || WCS_WV(wp,axis) == NULL) call syserrs (SYS_MWNOWSAMP, s_name) # Copy out the curves. call achtdr (D(mw,WCS_PV(wp,axis)), pv, min(WCS_NPTS(wp,axis), npts)) call achtdr (D(mw,WCS_WV(wp,axis)), wv, min(WCS_NPTS(wp,axis), npts)) end sptable-1.0.pre20180612/src/mwcs/mwgwtermd.x000066400000000000000000000023351331023215600203620ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include "mwcs.h" # MW_GWTERMD -- Get the linear part of the Wterm, i.e., the physical and world # coordinates of the reference point and the CD matrix. It is the Wterm of # the current default WCS which is read. procedure mw_gwtermd (mw, r, w, cd, ndim) pointer mw #I pointer to MWCS descriptor double r[ndim] #O physical coordinates of reference point double w[ndim] #O world coordinates of reference point double cd[ndim,ndim] #O CD matrix int ndim #I dimension of Wterm pointer wp errchk syserrs string s_name "mw_gwtermd" begin # Get the current WCS. wp = MI_WCS(mw) if (wp == NULL) call syserrs (SYS_MWNOWCS, s_name) # Verify the dimension. if (WCS_NDIM(wp) != ndim) call syserrs (SYS_MWNDIM, s_name) # Copy out the data. Return the unitary transformation if the # Wterm has not been set. if (WCS_R(wp) == NULL) call aclrd (r, ndim) else call amovd (D(mw,WCS_R(wp)), r, ndim) if (WCS_W(wp) == NULL) call aclrd (w, ndim) else call amovd (D(mw,WCS_W(wp)), w, ndim) if (WCS_CD(wp) == NULL) call mw_mkidmd (cd, ndim) else call amovd (D(mw,WCS_CD(wp)), cd, ndim*ndim) end sptable-1.0.pre20180612/src/mwcs/mwgwtermr.x000066400000000000000000000023321331023215600203750ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include "mwcs.h" # MW_GWTERMR -- Get the linear part of the Wterm, i.e., the physical and world # coordinates of the reference point and the CD matrix. It is the Wterm of # the current default WCS which is read. procedure mw_gwtermr (mw, r, w, cd, ndim) pointer mw #I pointer to MWCS descriptor real r[ndim] #O physical coordinates of reference point real w[ndim] #O world coordinates of reference point real cd[ndim,ndim] #O CD matrix int ndim #I dimension of Wterm pointer wp errchk syserrs string s_name "mw_gwtermr" begin # Get the current WCS. wp = MI_WCS(mw) if (wp == NULL) call syserrs (SYS_MWNOWCS, s_name) # Verify the dimension. if (WCS_NDIM(wp) != ndim) call syserrs (SYS_MWNDIM, s_name) # Copy out the data. Return the unitary transformation of the # Wterm has not been set. if (WCS_R(wp) == NULL) call aclrr (r, ndim) else call achtdr (D(mw,WCS_R(wp)), r, ndim) if (WCS_W(wp) == NULL) call aclrr (w, ndim) else call achtdr (D(mw,WCS_W(wp)), w, ndim) if (WCS_CD(wp) == NULL) call mw_mkidmr (cd, ndim) else call achtdr (D(mw,WCS_CD(wp)), cd, ndim*ndim) end sptable-1.0.pre20180612/src/mwcs/mwinvertd.x000066400000000000000000000017511331023215600203650ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. # MW_INVERTD -- Invert a square matrix, double precision version. The matrix # need not be symmetric. The input and output matrices cannot be the same. procedure mw_invertd (o_ltm, n_ltm, ndim) double o_ltm[ndim,ndim] #I input matrix double n_ltm[ndim,ndim] #O output (inverted) matrix int ndim #I dimensionality of system pointer sp, ix, ltm int nelem, i, j begin call smark (sp) nelem = ndim * ndim call salloc (ix, ndim, TY_INT) call salloc (ltm, nelem, TY_DOUBLE) # Make scratch copy (to be modified) of input matrix. call amovd (o_ltm, Memd[ltm], nelem) # Set up identity matrix. do i = 1, ndim { do j = 1, ndim n_ltm[i,j] = 0.0 n_ltm[i,i] = 1.0 } # Perform the LU decomposition. call mw_ludecompose (Memd[ltm], Memi[ix], ndim) # Compute the inverse matrix by backsubstitution. do j = 1, ndim call mw_lubacksub (Memd[ltm], Memi[ix], n_ltm[1,j], ndim) call sfree (sp) end sptable-1.0.pre20180612/src/mwcs/mwinvertr.x000066400000000000000000000021461331023215600204020ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. # MW_INVERTR -- Invert a square matrix, single precision version. The matrix # need not be symmetric. The input and output matrices should not be the same. procedure mw_invertr (o_ltm, n_ltm, ndim) real o_ltm[ndim,ndim] #I input matrix real n_ltm[ndim,ndim] #O output (inverted) matrix int ndim #I dimensionality of system int nelem, i, j pointer sp, ix, ltm, inv begin call smark (sp) nelem = ndim * ndim call salloc (ix, ndim, TY_INT) call salloc (ltm, nelem, TY_DOUBLE) call salloc (inv, nelem, TY_DOUBLE) # Make scratch copy (to be modified) of input matrix. call achtrd (o_ltm, Memd[ltm], nelem) # Set up identity matrix. call aclrd (Memd[inv], nelem) do i = 1, ndim Memd[inv+(i-1)*ndim+i-1] = 1.0 # Perform the LU decomposition. call mw_ludecompose (Memd[ltm], Memi[ix], ndim) # Compute the inverse matrix by backsubstitution. do j = 1, ndim call mw_lubacksub (Memd[ltm], Memi[ix], Memd[inv+(j-1)*ndim], ndim) # Output the inverted matrix. call achtdr (Memd[inv], n_ltm, nelem) call sfree (sp) end sptable-1.0.pre20180612/src/mwcs/mwload.x000066400000000000000000000071501331023215600176300ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include include include "mwcs.h" include "mwsv.h" # MW_LOAD -- Load a saved MWCS into a descriptor. The saved MWCS will # have been created in a previous call to MW_SAVE. In its saved form, # the MWCS is a machine independent binary array of arbitrary length. procedure mw_load (mw, bp) pointer mw #I pointer to MWCS descriptor pointer bp #I pointer to save buffer, type char pointer sp, sv, ct, ip, cw, ms, wp int nelem, cwlen, mslen, nwcs, lenwcs, n, i errchk syserrs, malloc pointer coerce() int pl_l2pi() begin call smark (sp) call salloc (sv, LEN_SVHDR, TY_STRUCT) # Get the save header. ip = coerce (bp, TY_CHAR, TY_STRUCT) call miiupk32 (Memi[ip], Memi[sv], LEN_SVHDR, TY_INT) if (SV_MAGIC(sv) != MWSV_MAGIC) call syserrs (SYS_MWMAGIC, "MWCS save file") cwlen = SV_CWCSLEN(sv) mslen = SV_MWSVLEN(sv) # Prior to MWSV version 1 lenwcs and nwcs were not recorded. if (SV_VERSION(sv) < 1) { lenwcs = MWSV_LENWCS0 nwcs = (mslen - MWSV_BASELEN) / lenwcs } else { lenwcs = SV_LENWCS(sv) nwcs = SV_NWCS(sv) } call salloc (cw, cwlen, TY_INT) call salloc (ms, mslen, TY_INT) # Unpack the saved MWSV descriptor. Due to a bug in MWCS prior to # V2.10.4 IRAF the packed descriptor was erroneously encoded using # miipak32, so if unpacking with miiupk16 doesn't work try using # miiupk32. This should allow old saved MWCS written on a similar # architecture to still be read - the data is not portable however # unless miipak16 is used, since pl_p2li produces a short array. ip = coerce (bp + SV_MWSVOFF(sv), TY_CHAR, TY_STRUCT) call miiupk16 (Memi[ip], Memi[cw], SV_CWCSLEN(sv), TY_SHORT) n = pl_l2pi (Memi[cw], 1, Memi[ms], mslen) if (MI_MAGIC(ms) != MWCS_MAGIC) { call miiupk32 (Memi[ip], Memi[cw], SV_CWCSLEN(sv), TY_INT) n = pl_l2pi (Memi[cw], 1, Memi[ms], mslen) } # Free any storage associated with the old descriptor. # Start with any still allocated CTRAN descriptors. do i = 1, MAX_CTRAN { ct = MI_CTRAN(mw,i) if (ct != NULL) iferr (call mw_ctfree (ct)) call erract (EA_WARN) } # Free the old string and data buffers. if (MI_SBUF(mw) != NULL) call mfree (MI_SBUF(mw), TY_CHAR) if (MI_DBUF(mw) != NULL) call mfree (MI_DBUF(mw), TY_DOUBLE) # Copy the MWSV descriptor to the active MWCS descriptor. This # assumes that the base descriptor and the WCS sub-descriptor have # identical structures, except for the length of each element. call amovi (Memi[ms], Memi[mw], LEN_BASEMWCS) nelem = min (lenwcs, LEN_WCS) do i = 1, nwcs { wp = MI_WCSP(mw,i) call amovi (Memi[MS_WCSP(ms,i,lenwcs)], Memi[wp], nelem) if (nelem < LEN_WCS) call aclri (Memi[wp+nelem], LEN_WCS-nelem) } do i = nwcs+1, MAX_WCS call aclri (Memi[MI_WCSP(mw,i)], LEN_WCS) # Initialize the axis map (not preserved over a save/load). do i = 1, MI_NDIM(mw) { MI_AXNO(mw,i) = i MI_PHYSAX(mw,i) = i } # Load the data buffer. nelem = SV_DBUFLEN(sv) if (nelem > 0) { ip = coerce (bp + SV_DBUFOFF(sv), TY_CHAR, TY_DOUBLE) call malloc (MI_DBUF(mw), nelem, TY_DOUBLE) call miiupkd (Memd[ip], D(mw,1), nelem, TY_DOUBLE) MI_DBUFUSED(mw) = nelem MI_DBUFLEN(mw) = nelem } # Load the string buffer. nelem = SV_SBUFLEN(sv) if (nelem > 0) { ip = coerce (bp + SV_SBUFOFF(sv), TY_CHAR, TY_CHAR) call malloc (MI_SBUF(mw), nelem, TY_CHAR) call miiupk8 (Memc[ip], S(mw,1), nelem, TY_CHAR) MI_SBUFUSED(mw) = nelem MI_SBUFLEN(mw) = nelem } # Set the default WCS. call mw_sdefwcs (mw) call sfree (sp) end sptable-1.0.pre20180612/src/mwcs/mwloadim.x000066400000000000000000000136371331023215600201650ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include include include include "mwcs.h" include "imwcs.h" # MW_LOADIM -- Load a MWCS object saved in an image header in FITS format # into an MWCS descriptor. Note that the MWCS descriptor is allocated # if the input is NULL. This is to allow the WCS cards to be read to # determine the WCS dimensionality. procedure mw_loadim (mw, im) pointer mw #U pointer to MWCS descriptor pointer im #I pointer to image header bool have_wcs int ndim, i, j, ea_type int axno[MAX_DIM], axval[MAX_DIM] double maxval pointer sp, sysname, iw, ct, wp, cp, bufp, ip int mw_allocd(), mw_refstr(), ctoi(), envgeti() pointer iw_rfits(), iw_findcard(), iw_gbigfits(), mw_open() errchk iw_rfits, mw_allocd, mw_newsystem, mw_swtype, iw_enterwcs, mw_saxmap errchk mw_open string s_physical "physical" define axerr_ 91 define axinit_ 92 begin call smark (sp) call salloc (sysname, SZ_FNAME, TY_CHAR) # Read the FITS image header into an IMWCS descriptor. iw = iw_rfits (mw, im, RF_REFERENCE) if (mw == NULL) { ndim = max (IW_NDIM(iw), IM_NPHYSDIM(im)) mw = mw_open (NULL, ndim) } ndim = IW_NDIM(iw) # Initialize the MWCS descriptor from the IMWCS descriptor. # Free any storage associated with the old descriptor. # Start with any still allocated CTRAN descriptors. do i = 1, MAX_CTRAN { ct = MI_CTRAN(mw,i) if (ct != NULL) iferr (call mw_ctfree (ct)) call erract (EA_WARN) } # Free the old string and data buffers. if (MI_SBUF(mw) != NULL) call mfree (MI_SBUF(mw), TY_CHAR) if (MI_DBUF(mw) != NULL) call mfree (MI_DBUF(mw), TY_DOUBLE) # Initialize the new descriptor. call aclri (Memi[mw], LEN_MWCS) MI_MAGIC(mw) = MWCS_MAGIC MI_REFIM(mw) = im MI_NDIM(mw) = ndim MI_LTV(mw) = mw_allocd (mw, ndim) MI_LTM(mw) = mw_allocd (mw, ndim * ndim) # Set the Lterm. Set axes with no LTM scales to unit scales. # Issue a warning by default but use "wcs_matrix_err" to allow # setting other error actions. call amovd (IW_LTV(iw,1), D(mw,MI_LTV(mw)), ndim) if (iw_findcard (iw, TY_LTM, ERR, 0) != NULL) { do i = 1, ndim { maxval = 0D0 do j = 1, ndim { D(mw,MI_LTM(mw)+(j-1)*ndim+(i-1)) = IW_LTM(iw,i,j) maxval = max (maxval, abs (IW_LTM(iw,i,j))) } if (maxval == 0D0) { iferr (ea_type = envgeti ("wcs_matrix_err")) ea_type = EA_WARN iferr { switch (ea_type) { case EA_FATAL, EA_ERROR: call sprintf (Memc[sysname], SZ_FNAME, "LTM keywords for axis %d undefined") call pargi (i) call error (SYS_MWMISSAX, Memc[sysname]) case EA_WARN: IW_LTM(iw,i,i) = 1D0 D(mw,MI_LTM(mw)+(i-1)*ndim+(i-1)) = IW_LTM(iw,i,i) call sprintf (Memc[sysname], SZ_FNAME, "setting LTM%d_%d to %.4g") call pargi (i) call pargi (i) call pargd (IW_LTM(iw,i,i)) call error (SYS_MWMISSAX, Memc[sysname]) default: IW_LTM(iw,i,i) = 1D0 D(mw,MI_LTM(mw)+(i-1)*ndim+(i-1)) = IW_LTM(iw,i,i) } } then call erract (ea_type) } } } else call mw_mkidmd (D(mw,MI_LTM(mw)), ndim) # Set up the builtin world systems "physical" and "logical". # Both are linear systems. The physical system is a unitary # transformation (since world systems are defined relative to # the physical system), and the logical system has the Lterm # for its linear term. No wcs attributes other than wtype are # defined. # Create the physical system. call mw_newsystem (mw, s_physical, ndim) do i = 1, ndim call mw_swtype (mw, i, 1, "linear", "") # Create the logical system. call mw_newsystem (mw, "logical", ndim) do i = 1, ndim call mw_swtype (mw, i, 1, "linear", "") # Set W and CD for the logical system to point to the Lterm. wp = MI_WCS(mw) WCS_W(wp) = MI_LTV(mw) WCS_CD(wp) = MI_LTM(mw) # Did the image header specify a WCS? have_wcs = false do i = 1, IW_NCARDS(iw) { cp = IW_CARD(iw,i) switch (C_TYPE(cp)) { case TY_CTYPE, TY_CRPIX, TY_CRVAL, TY_CD, TY_CDELT: have_wcs = true break } } # Enter the saved WCS. We make up a system name for now, and patch # it up later once the real name has been recalled along with the # attributes. if (have_wcs) { call mw_newsystem (mw, "image", ndim) call iw_enterwcs (mw, iw, ndim) ifnoerr { call mw_gwattrs (mw, 0, "system", Memc[sysname], SZ_FNAME) } then WCS_SYSTEM(MI_WCS(mw)) = mw_refstr (mw, Memc[sysname]) } # Restore the saved WCS axis map if any. if (iw_findcard (iw, TY_WAXMAP, ERR, 0) != NULL) { bufp = iw_gbigfits (iw, TY_WAXMAP, ERR) ip = bufp do i = 1, ndim { if (ctoi (Memc, ip, axno[i]) <= 0) goto axerr_ if (ctoi (Memc, ip, axval[i]) <= 0) { axerr_ call eprintf ("Image %s: cannot decode WAXMAP\n") call pargstr (IM_NAME(IW_IM(iw))) goto axinit_ } } call mfree (bufp, TY_CHAR) call mw_saxmap (mw, axno, axval, ndim) } else { axinit_ do i = 1, ndim { MI_AXNO(mw,i) = i MI_AXVAL(mw,i) = 0 } MI_USEAXMAP(mw) = NO MI_NLOGDIM(mw) = ndim } # Apply the section transform, if the image was opened with an image # section. This edits the axis map restored above, if any, and must # be done after restoring the original WCS axis map. call iw_setaxmap (mw, im) # Set the default world system. call mw_sdefwcs (mw) call iw_cfits (iw) call sfree (sp) end sptable-1.0.pre20180612/src/mwcs/mwltran.gx000066400000000000000000000011761331023215600202020ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include "../mwcs.h" # MW_LTRAN -- Perform a general N-dimensional linear transformation, i.e., # matrix multiply and translation. procedure mw_ltran$t (p1, p2, ltm, ltv, ndim) PIXEL p1[ndim] #I input point PIXEL p2[ndim] #O transformed output point PIXEL ltm[ndim,ndim] #I linear transformation matrix PIXEL ltv[ndim] #I linear translation vector int ndim #I dimension of system int i, j PIXEL p3[MAX_DIM] begin call amov$t (p1, p3, ndim) do j = 1, ndim { p2[j] = ltv[j] do i = 1, ndim p2[j] = p2[j] + ltm[i,j] * p3[i] } end sptable-1.0.pre20180612/src/mwcs/mwlu.x000066400000000000000000000026611331023215600173330ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. # MULU -- Matrix utilities for MWCS. # # mw_ludecompose performs LU decomposition of a square matrix # mw_lubacksub performs backsubstitution to solve a system # # These routines simply call the LU composition routines provided by LAPACK. # MW_LUDECOMPOSE -- Replace an NxN matrix A by the LU decomposition of a # rowwise permutation of the matrix. The LU decomposed matrix A and the # permutation index IX are output. The decomposition is performed in place. procedure mw_ludecompose (a, ix, ndim) double a[ndim,ndim] #U matrix to be inverted; inverted matrix int ix[ndim] #O vector describing row permutation int ndim #I dimension of square matrix int status begin call dgetrf(ndim, ndim, a, ndim, ix, status) end # MW_LUBACKSUB -- Solves the set of N linear equations A*X=B. Here A is input, # not as the matrix A but rather as its LU decomposition, determined by the # routine mw_ludecompose. IX is input as the permutation vector as returned by # mw_ludecompose. B is input as the right hand side vector B, and returns with # the solution vector X. procedure mw_lubacksub (a, ix, b, ndim) double a[ndim,ndim] #I LU decomposition of the matrix A int ix[ndim] #I permutation vector for A double b[ndim] #U rhs vector; solution vector int ndim #I dimension of system int status begin call dgetrs('N', ndim, 1, a, ndim, ix, b, ndim, status) end sptable-1.0.pre20180612/src/mwcs/mwmkidmd.x000066400000000000000000000005361331023215600201570ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. # MW_MKIDMD -- Make the identity matrix. procedure mw_mkidmd (ltm, ndim) double ltm[ndim,ndim] #O set to the identity matrix int ndim #I dimension of (square) matrix int i, j begin do j = 1, ndim { do i = 1, ndim ltm[i,j] = 0.0 ltm[j,j] = 1.0 } end sptable-1.0.pre20180612/src/mwcs/mwmkidmr.x000066400000000000000000000005341331023215600201730ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. # MW_MKIDMR -- Make the identity matrix. procedure mw_mkidmr (ltm, ndim) real ltm[ndim,ndim] #O set to the identity matrix int ndim #I dimension of (square) matrix int i, j begin do j = 1, ndim { do i = 1, ndim ltm[i,j] = 0.0 ltm[j,j] = 1.0 } end sptable-1.0.pre20180612/src/mwcs/mwmmul.gx000066400000000000000000000007041331023215600200300ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. # MW_MMUL -- Matrix multiply. procedure mw_mmul$t (a, b, c, ndim) PIXEL a[ndim,ndim] #I left input matrix PIXEL b[ndim,ndim] #I right input matrix PIXEL c[ndim,ndim] #O output matrix int ndim #I dimensionality of system int i, j, k PIXEL v begin do j = 1, ndim do i = 1, ndim { v = 0 do k = 1, ndim v = v + a[k,j] * b[i,k] c[i,j] = v } end sptable-1.0.pre20180612/src/mwcs/mwnewcopy.x000066400000000000000000000062661331023215600204040ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include "mwcs.h" # MW_NEWCOPY -- Copy a MWCS. The copy is done by constructing a new MWCS # from the objects stored in the first one, freeing any dead storage in the # process. pointer procedure mw_newcopy (o_mw) pointer o_mw #I pointer to old MWCS descriptor int ndim, nelem, i, j pointer mw, wp, o_wp, at, o_at bool streq() int mw_copys(), mw_copyd() errchk calloc, mw_copys, mw_copyd begin # Make a copy of the main descriptor. call malloc (mw, LEN_MWCS, TY_STRUCT) call amovi (Memi[o_mw], Memi[mw], LEN_MWCS) # We have to allocate our own string and data buffers. MI_SBUF(mw) = NULL MI_SBUFLEN(mw) = 0 MI_SBUFUSED(mw) = 0 MI_DBUF(mw) = NULL MI_DBUFLEN(mw) = 0 MI_DBUFUSED(mw) = 0 # Copy the Lterm data. ndim = MI_NDIM(mw) nelem = ndim * ndim MI_LTV(mw) = mw_copyd (mw, o_mw, MI_LTV(o_mw), ndim) MI_LTM(mw) = mw_copyd (mw, o_mw, MI_LTM(o_mw), nelem) # We don't inherit open CTRAN descriptors. call aclri (MI_CTRAN(mw,1), MAX_CTRAN) # Copy the WCS. do i = 1, MI_NWCS(o_mw) { wp = MI_WCSP(mw,i) o_wp = MI_WCSP(o_mw,i) ndim = WCS_NDIM(wp) nelem = ndim * ndim # Copy the WCS data. WCS_R(wp) = mw_copyd (mw, o_mw, WCS_R(o_wp), ndim) WCS_W(wp) = mw_copyd (mw, o_mw, WCS_W(o_wp), ndim) WCS_CD(wp) = mw_copyd (mw, o_mw, WCS_CD(o_wp), nelem) # Copy the PV coefficients. do j = 1, ndim WCS_PVC(wp,j) = mw_copyd (mw, o_mw, WCS_PVC(o_wp,j), WCS_NPVC(o_wp,j)) # Each axis can have its own sampled WCS. do j = 1, ndim { WCS_PV(wp,j) = mw_copyd (mw, o_mw, WCS_PV(o_wp,j), WCS_NPTS(o_wp,j)) WCS_WV(wp,j) = mw_copyd (mw, o_mw, WCS_WV(o_wp,j), WCS_NPTS(o_wp,j)) } # Copy the WCS attributes. do j = 1, WCS_NWATTR(o_wp) { at = WCS_WATTR(wp,j) o_at = WCS_WATTR(o_wp,j) AT_NAME(at) = mw_copys (mw, o_mw, AT_NAME(o_at)) AT_VALUE(at) = mw_copys (mw, o_mw, AT_VALUE(o_at)) if (streq (S(mw,AT_NAME(at)), "system")) WCS_SYSTEM(wp) = AT_VALUE(at) } # Preserve the default WCS. if (MI_WCS(o_mw) == o_wp) MI_WCS(mw) = wp } return (mw) end # MW_COPYD -- Copy a block of type double data from one MWCS to another. # If the buffer offset in the old system is NULL, there was no data, and # a null offset is output. int procedure mw_copyd (mw, o_mw, o_off, nelem) pointer mw #I pointer to output MWCS pointer o_mw #I pointer to input (old) MWCS int o_off #I buffer offset in old MWCS int nelem #I number of type double data elements int off int mw_allocd() errchk mw_allocd begin if (o_off == NULL) off = NULL else { off = mw_allocd (mw, nelem) call amovd (D(o_mw,o_off), D(mw,off), nelem) } return (off) end # MW_COPYS -- Copy an EOS delimited string from one MWCS to another. # If the buffer offset in the old system is NULL, there is no data, and # a null offset is output. int procedure mw_copys (mw, o_mw, o_off) pointer mw #I pointer to output MWCS pointer o_mw #I pointer to input (old) MWCS int o_off #I buffer offset in old MWCS int off int mw_refstr() errchk mw_refstr begin if (o_off == NULL) off = NULL else off = mw_refstr (mw, S(o_mw,o_off)) return (off) end sptable-1.0.pre20180612/src/mwcs/mwnewsys.x000066400000000000000000000021451331023215600202400ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include "mwcs.h" # MW_NEWSYSTEM -- Add a new world coordinate system with the given name # and dimensionality to the MWCS. Make the new system the current system, # since a number of WCS initialization calls will (should) surely follow. procedure mw_newsystem (mw, system, ndim) pointer mw #I pointer to MWCS descriptor char system[ARB] #I system name int ndim #I system dimensionality pointer wp int mw_refstr() pointer mw_findsys() errchk syserrs, mw_refstr begin # Check that the system does not already exist. if (mw_findsys (mw, system) != NULL) call syserrs (SYS_MWWCSREDEF, system) # Add the new system. if (MI_NWCS(mw) + 1 > MAX_WCS) call syserrs (SYS_MWMAXWCS, system) MI_NWCS(mw) = MI_NWCS(mw) + 1 wp = MI_WCSP(mw,MI_NWCS(mw)) # Initialize the WCS. WCS_NDIM(wp) = ndim # Make the new WCS the default WCS. MI_WCS(mw) = wp # The system name is stored as a global (axis=0) attribute of the WCS. call mw_swattrs (mw, 0, "system", system) WCS_SYSTEM(wp) = mw_refstr (mw, system) end sptable-1.0.pre20180612/src/mwcs/mwopen.x000066400000000000000000000041651331023215600176550ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include include "mwcs.h" # MW_OPEN -- Create a new MWCS descriptor. If the non-NULL address of a # buffer containing a saved MWCS is given, the saved MWCS will be loaded, # otherwise a unitary MWCS of the indicated dimension is created. pointer procedure mw_open (bufptr, ndim) pointer bufptr #I pointer to encoded MWCS, or NULL int ndim #I dimension of system to be created int i pointer mw, wp int mw_allocd() errchk calloc, mw_load, syserrs, mw_allocd string s_physical "physical" begin # Initialize the function drivers. call wf_init() # Allocate the base descriptor. call calloc (mw, LEN_MWCS, TY_STRUCT) # Load saved MWCS, if one was given. if (bufptr != NULL) { call mw_load (mw, bufptr) return (mw) } # Initialize the new descriptor to a unitary transform of dimension # NDIM. Most of this is accomplished by merely creating a zeroed # descriptor. if (ndim < 1 || ndim > MAX_DIM) { call mfree (mw, TY_STRUCT) call syserrs (SYS_MWNDIM, "mw_open") } MI_MAGIC(mw) = MWCS_MAGIC MI_NDIM(mw) = ndim MI_NLOGDIM(mw) = ndim MI_LTV(mw) = mw_allocd (mw, ndim) MI_LTM(mw) = mw_allocd (mw, ndim * ndim) call mw_mkidmd (D(mw,MI_LTM(mw)), ndim) do i = 1, ndim { MI_AXNO(mw,i) = i MI_PHYSAX(mw,i) = i } # Set up the builtin world systems "physical" and "logical". # Both are linear systems. The physical system is a unitary # transformation (since world systems are defined relative to # the physical system), and the logical system has the Lterm # for its linear term. No wcs attributes other than wtype are # defined. # Create the physical system. call mw_newsystem (mw, s_physical, ndim) do i = 1, ndim call mw_swtype (mw, i, 1, "linear", "") # Create the logical system. call mw_newsystem (mw, "logical", ndim) do i = 1, ndim call mw_swtype (mw, i, 1, "linear", "") # Set W and CD for the logical system to point to the Lterm. wp = MI_WCS(mw) WCS_W(wp) = MI_LTV(mw) WCS_CD(wp) = MI_LTM(mw) # Set the default world system. call mw_sdefwcs (mw) return (mw) end sptable-1.0.pre20180612/src/mwcs/mwopenim.x000066400000000000000000000010341331023215600201730ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include # MW_OPENIM -- Open an MWCS descriptor on an image, loading the descriptor # from the image if there is one. The MWCS descriptor is allocated after # the WCS cards are read in mw_loadim so that the WCS dimensionality can # be determined when the image header is dataless. pointer procedure mw_openim (im) pointer im #I pointer to image descriptor pointer mw begin mw = NULL call mw_loadim (mw, im) return (mw) end sptable-1.0.pre20180612/src/mwcs/mwrefstr.x000066400000000000000000000023551331023215600202200ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include "mwcs.h" # MW_REFSTR -- Search the string buffer for the named string and return the # string offset if found, otherwise enter the new string and return its # offset. This is used to avoid storing the same string many times, but # use of this technique means that string data cannot be modified once # entered. int procedure mw_refstr (mw, str) pointer mw #I pointer to MWCS descriptor char str[ARB] #I string to be referenced or entered bool match pointer sbuf, btop, ip int nchars, off, ch, i int strlen(), mw_allocs() errchk mw_allocs begin sbuf = MI_SBUF(mw) btop = sbuf + MI_SBUFLEN(mw) nchars = strlen (str) # Search the string buffer for the given string. match = false if (sbuf != NULL) for (ip=sbuf; !match && ip < btop; ) { match = true do i = 1, btop-ip { ch = Memc[ip+i-1] if (i <= nchars) if (ch != str[i]) match = false if (ch == EOS) { if (!match) ip = ip + i break } } if (ch != EOS) break } # Add the string if not found. if (!match) { off = mw_allocs (mw, nchars) call strcpy (str, S(mw,off), nchars) } else off = ip - sbuf + 1 return (off) end sptable-1.0.pre20180612/src/mwcs/mwrotate.x000066400000000000000000000040151331023215600202040ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include "mwcs.h" define LTM Memd[ltm+(($2)-1)*pdim+($1)-1] # MW_ROTATE -- Front end to mw_translate, used to perform simple rotations # of the logical system by specifying the rotation angle in degrees, and the # center of rotation. Since only one rotation angle can be specified, this # routine is useful only for 2-dim rotations (between any two axes). Note # that the transformation is performed in double precision even though the # rotation angle and center are specified in single precision, preserving # the full internal precision of the Lterm. procedure mw_rotate (mw, theta, center, axbits) pointer mw #I pointer to MWCS descriptor real theta #I rotation angle, degrees real center[ARB] #I center of rotation int axbits #I bitflags defining axes to be rotated double d_theta pointer sp, ltm, ltv_1, ltv_2 int axis[MAX_DIM], naxes, ax1, ax2, axmap, pdim, nelem errchk syserr begin # Convert axis bitflags to axis list. call mw_gaxlist (mw, axbits, axis, naxes) if (naxes != 2) call syserr (SYS_MWROT2AX) pdim = MI_NDIM(mw) nelem = pdim * pdim axmap = MI_USEAXMAP(mw) MI_USEAXMAP(mw) = NO d_theta = theta ax1 = axis[1] ax2 = axis[2] call smark (sp) call salloc (ltm, nelem, TY_DOUBLE) call salloc (ltv_1, pdim, TY_DOUBLE) call salloc (ltv_2, pdim, TY_DOUBLE) # Initialize the translation matrix and vectors. call mw_mkidmd (Memd[ltm], pdim) call aclrd (Memd[ltv_1], pdim) call aclrd (Memd[ltv_2], pdim) # Set up a 2-dim rotation between the specified axes. LTM(ax1,ax1) = cos(d_theta) LTM(ax2,ax1) = sin(d_theta) LTM(ax1,ax2) = -sin(d_theta) LTM(ax2,ax2) = cos(d_theta) # Set the rotation center. Memd[ltv_1+ax1-1] = center[1] Memd[ltv_1+ax2-1] = center[2] # Set the back translation vector. Memd[ltv_2+ax1-1] = center[1] Memd[ltv_2+ax2-1] = center[2] # Perform the translation. call mw_translated (mw, Memd[ltv_1], Memd[ltm], Memd[ltv_2], pdim) MI_USEAXMAP(mw) = axmap call sfree (sp) end sptable-1.0.pre20180612/src/mwcs/mwsave.x000066400000000000000000000052571331023215600176550ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include "mwcs.h" include "mwsv.h" # MW_SAVE -- Save the contents of a MWCS descriptor, i.e., the MWCS object, # in a machine independent binary array. This may be stored in a file or # database, passed through a network interface, etc., and later reopened # on a descriptor with MW_LOAD or MW_OPEN. int procedure mw_save (o_mw, bp, buflen) pointer o_mw #I pointer to MWCS descriptor pointer bp #U pointer to save buffer of type char int buflen #U allocated length of save buffer int nchars, olen pointer mw, sp, sv, op, oo errchk coerce, realloc, mw_newcopy pointer coerce(), mw_newcopy() int pl_p2li() begin call smark (sp) call salloc (sv, LEN_SVHDR, TY_STRUCT) # We save a new copy of the MWCS, rather than the MWCS itself, # to discard any dead storage and to cause the runtime descriptor # pointers to be set to NULL. mw = mw_newcopy (o_mw) # Clear runtime fields that cannot be meaningfully saved. MI_WCS(mw) = NULL MI_REFIM(mw) = NULL call aclri (MI_AXNO(mw,1), MAX_DIM) call aclri (MI_AXVAL(mw,1), MAX_DIM) call aclri (MI_PHYSAX(mw,1), MAX_DIM) # Compress the main header to save space. call salloc (oo, MI_LEN(mw) * 3 + 32, TY_SHORT) olen = pl_p2li (Memi[mw], 1, Mems[oo], MI_LEN(mw)) # Determine how much space will be needed. nchars = LEN_SVHDR * SZ_STRUCT + olen * SZ_SHORT + (MI_DBUFUSED(mw) + 1) * SZ_DOUBLE + (MI_SBUFUSED(mw) + SZB_CHAR-1) / SZB_CHAR # Get the space. if (nchars > buflen) { call realloc (bp, nchars, TY_CHAR) buflen = nchars } # Prepare the save header. call aclri (Memi[sv], LEN_SVHDR) SV_MAGIC(sv) = MWSV_MAGIC SV_CWCSLEN(sv) = olen SV_MWSVLEN(sv) = MI_LEN(mw) SV_DBUFLEN(sv) = MI_DBUFUSED(mw) SV_SBUFLEN(sv) = MI_SBUFUSED(mw) SV_MWSVOFF(sv) = LEN_SVHDR * SZ_STRUCT SV_DBUFOFF(sv) = (SV_MWSVOFF(sv) + olen * SZ_SHORT + SZ_DOUBLE-1) / SZ_DOUBLE * SZ_DOUBLE SV_SBUFOFF(sv) = SV_DBUFOFF(sv) + MI_DBUFUSED(mw) * SZ_DOUBLE SV_VERSION(sv) = MWSV_VERSION SV_NWCS(sv) = MI_NWCS(mw) SV_LENWCS(sv) = LEN_WCS # Output the save header. op = coerce (bp, TY_CHAR, TY_STRUCT) call miipak32 (Memi[sv], Memi[op], LEN_SVHDR, TY_INT) # Store the three segments of the MWCS, i.e., the main descriptor # and the data and string buffers. op = coerce (bp + SV_MWSVOFF(sv), TY_CHAR, TY_SHORT) call miipak16 (Mems[oo], Mems[op], olen, TY_SHORT) op = coerce (bp + SV_DBUFOFF(sv), TY_CHAR, TY_DOUBLE) call miipakd (D(mw,1), Memd[op], SV_DBUFLEN(sv), TY_DOUBLE) op = coerce (bp + SV_SBUFOFF(sv), TY_CHAR, TY_CHAR) call miipak8 (S(mw,1), Memc[op], SV_SBUFLEN(sv), TY_CHAR) call mw_close (mw) call sfree (sp) return (nchars) end sptable-1.0.pre20180612/src/mwcs/mwsaveim.x000066400000000000000000000313221331023215600201730ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include include include "imwcs.h" include "mwcs.h" # MW_SAVEIM -- Save the current MWCS in an image header in FITS format. # This is only possible to some degree. Although the Lterm is always saved, # only one world system can be saved. FITS convention requires that the # FITS wcs represent the transformation from image (logical) coordinates # to world coordinates, whereas the MWCS Wterm represents the physical to # world transformation, so what we save is actually a combination of the # Wterm and Lterm; combining the two is only possible if there are no # rotations between dissimilar axes. Sampled WCS vectors and WCS attributes # can be saved, although this can be inefficient for large vectors and can # result in header overflow, and there can be problems preserving the # precision of double precision data since the FITS representation is ASCII. # Since the WCS is represented by a variable set of cards, we must be careful # to delete any old WCS cards which are not updated by the save operation. procedure mw_saveim (mw, im) pointer mw #I pointer to MWCS descriptor pointer im #I pointer to image descriptor double cdelt, dval char label[SZ_VALSTR] bool update, output_cdelt char kwname[SZ_KWNAME], ctype[SZ_CTYPE], axtype[20] int ndim, axis, fn, ira, idec, i, j, pv, wv, npts, fd pointer sp, iw, wp, wf, vp, cp, at, o_r, n_r, o_cd, n_cd, ltm int op bool streq(), strne(), fp_equald() pointer iw_rfits(), iw_findcard() int strncmp(), strlen(), open(), nowhite(), stridxs() errchk iw_rfits, mw_ssystem, iw_putarray, iw_putstr, open include "mwcs.com" define ewcs_ 91 begin # Scan the old image header, recording all WCS cards. iw = iw_rfits (mw, im, RF_COPY) # Save the WCS dimension (not necessarily same as that of the image). ndim = MI_NDIM(mw) cp = iw_findcard (iw, TY_WCSDIM, -1, 0) if (cp == NULL || IW_NDIM(iw) != ndim) { call strcpy ("WCSDIM", kwname, SZ_KWNAME) if (cp == NULL) call imaddf (im, kwname, "i") call imputi (im, kwname, ndim) } if (cp != NULL) C_UPDATED(cp) = YES call smark (sp) call salloc (o_r, ndim, TY_DOUBLE) call salloc (n_r, ndim, TY_DOUBLE) call salloc (o_cd, ndim*ndim, TY_DOUBLE) call salloc (n_cd, ndim*ndim, TY_DOUBLE) call salloc (ltm, ndim*ndim, TY_DOUBLE) # Get pointer to the world system to be saved. Currently only one # such system can be saved since the image header is FITS based and # FITS doesn't support multiple world coordinate systems. The system # to be saved can be set by calling MW_SSYSTEM before doing the # mw_saveim. wp = MI_WCS(mw) # Do we need to save any WCS information at all? if (MI_NWCS(mw) <= 2) goto ewcs_ # Store the current WCS in the image header. This is optimized to # use the knowledge of the current header contents obtained by # iw_rfits above, to determine if each header card needs to be # modified in the header, or added to the header. If the card # already exists with the correct value nothing is done. # Output CTYPEi for each axis. do axis = 1, ndim { # Get the new value of CTYPEi. if (WCS_AXCLASS(wp,axis) == F_LINEAR) { # For the default case of a linear axis, set CTYPEi to the # value of the axis label, if there is one and it is a simple # keyword but not one of the CTYPE keywords reserved by MWCS. call strcpy ("LINEAR ", ctype, SZ_CTYPE) ifnoerr { call mw_gwattrs (mw, axis, "label", label, SZ_VALSTR) } then { call strupr (label) if (nowhite (label, label, SZ_VALSTR) <= SZ_CTYPE) { if (strncmp (label, "SAMPLED", 8) != 0 && strncmp (label, "RA--", 4) != 0 && strncmp (label, "DEC-", 4) != 0 && strncmp (label[2], "LON", 3) != 0 && strncmp (label[2], "LAT", 3) != 0) { call sprintf (ctype, SZ_CTYPE, "%-8s%9t") call pargstr (label) } } } } else { wf = WCS_FUNC(wp,WCS_AXCLASS(wp,axis)) fn = WF_FN(wf) if (and (FN_FLAGS(fn), F_RADEC) != 0) { # Determine the axis type. ira = 0 idec = 0 axtype[1] = EOS do i = 1, 2 { ifnoerr (call mw_gwattrs (mw, WF_AXIS(wf,i), "wtype", axtype, 4)) { call strlwr (axtype) if (streq (axtype, "ra") || streq (axtype[2], "lon")) { ira = i idec = 3 - i break } else if (streq (axtype, "dec") || streq (axtype[2], "lat")) { ira = 3 - i idec = i break } } } # RA and DEC had better be flagged, but if not, assume # that the first axis is RA and the second DEC. if (ira == 0) ira = 1 if (idec == 0) idec = 2 # Make a name like "RA---TAN". if (WF_AXIS(wf,idec) == axis) { if (streq (axtype, "ra") || streq (axtype, "dec")) { call strcpy ("DEC-----", ctype, SZ_CTYPE) } else if (streq (axtype[2], "lon") || streq (axtype[2], "lat")) { call sprintf (ctype, SZ_CTYPE, "%cLAT----") call pargc (axtype[1]) } else { call strcpy ("DEC-----", ctype, SZ_CTYPE) } } else { if (streq (axtype, "ra") || streq (axtype, "dec")) { call strcpy ("RA------", ctype, SZ_CTYPE) } else if (streq (axtype[2], "lon") || streq (axtype[2], "lat")) { call sprintf (ctype, SZ_CTYPE, "%cLON----") call pargc (axtype[1]) } else { call strcpy ("RA------", ctype, SZ_CTYPE) } } op = max (1, SZ_CTYPE - strlen (FN_NAME(fn)) + 1) call strcpy (FN_NAME(fn), ctype[op], SZ_CTYPE-op+1) call strupr (ctype) } else if (streq (FN_NAME(fn), "pc")) { call mw_gwattrs (mw, axis, "axtype", axtype, 20) call mw_gwattrs (mw, axis, "pc", kwname, SZ_KWNAME) call sprintf (ctype, SZ_CTYPE, "%s-%s") call pargstr (axtype) call pargstr (kwname) call strupr (ctype) } else { # Just output the WCS function name as CTYPE. call strcpy (" ", ctype, SZ_CTYPE) call strcpy (FN_NAME(fn), ctype, SZ_CTYPE) call strupr (ctype) } } # Update the header value if there is any change. update = true vp = IW_CTYPE(iw,axis) if (vp != NULL) { i = stridxs ("'", Memc[vp]) if (i > 0) Memc[vp+i-1] = EOS update = strne (Memc[vp], ctype) } cp = iw_findcard (iw, TY_CTYPE, axis, 0) if (update) { call sprintf (kwname, SZ_KWNAME, "CTYPE%d") call pargi (axis) if (cp == NULL) call imaddf (im, kwname, "c") call impstr (im, kwname, ctype) } if (cp != NULL) C_UPDATED(cp) = YES } # FITS requires that the WCS specify the transformation from raw # image (logical) coordinates to world coordinates, whereas the # MWCS Wterm specifies the transformation from physical coordinates # to world coordinates. Hence, we must modify CD and CRPIX (R) # to specify the transformation from logical to world coordinates. # Get the MWCS R vector. if (WCS_R(wp) != NULL) call amovd (D(mw,WCS_R(wp)), Memd[o_r], ndim) else call aclrd (Memd[o_r], ndim) # Get the MWCS CD matrix. if (WCS_CD(wp) != NULL) call amovd (D(mw,WCS_CD(wp)), Memd[o_cd], ndim*ndim) else call mw_mkidmd (Memd[o_cd], ndim) # Output CRVAL (this is unaffected by the Lterm). if (WCS_W(wp) != NULL) call iw_putarray (iw, D(mw,WCS_W(wp)), IW_CRVAL(iw,1), ndim, "CRVAL%d", TY_CRVAL, 0) # Output CRPIX = R' = (LTM * R + LTV). call mw_vmuld (D(mw,MI_LTM(mw)), Memd[o_r], Memd[n_r], ndim) call aaddd (D(mw,MI_LTV(mw)), Memd[n_r], Memd[n_r], ndim) call iw_putarray (iw, Memd[n_r], IW_CRPIX(iw,1), ndim, "CRPIX%d", TY_CRPIX, 0) # Output the CD matrix = CD' = (CD * inv(LTM)). If the system # dimensionality is 2 or less and there is no rotation, output # the CDELT notation in addition to the CD matrix to enhance # compatibility with older programs. call mw_invertd (D(mw,MI_LTM(mw)), Memd[ltm], ndim) call mw_mmuld (Memd[o_cd], Memd[ltm], Memd[n_cd], ndim) # Output CDELT1/CDELT2 if the image dimension is 2 or less and the # CD matrix is a diagonal matrix (no rotational or skew terms). output_cdelt = false if (ndim == 1) output_cdelt = true else if (ndim == 2) { output_cdelt = (fp_equald(Memd[n_cd+1],0.0D0) && fp_equald(Memd[n_cd+2],0.0D0)) } if (output_cdelt) { do j = 1, ndim { cdelt = Memd[n_cd+(j-1)*(ndim+1)] cp = iw_findcard (iw, TY_CDELT, j, 0) if (cp == NULL || !fp_equald(IW_CDELT(iw,j),cdelt)) { call sprintf (kwname, SZ_KWNAME, "CDELT%d") call pargi (j) if (cp == NULL) call imaddf (im, kwname, "d") call imputd (im, kwname, cdelt) } if (cp != NULL) C_UPDATED(cp) = YES } } # Update the CD matrix. do j = 1, ndim { call sprintf (kwname, SZ_KWNAME, "CD%d_%%d") call pargi (j) call iw_putarray (iw, Memd[n_cd+(j-1)*ndim], IW_CD(iw,1,j), ndim, kwname, TY_CD, j) } # Output the Lterm. ewcs_ # Output LTV. if (MI_LTV(mw) != NULL) call iw_putarray (iw, D(mw,MI_LTV(mw)), IW_LTV(iw,1), ndim, "LTV%d", TY_LTV, 0) # Output LTM. if (MI_LTM(mw) != NULL) { do j = 1, ndim { call sprintf (kwname, SZ_KWNAME, "LTM%%d_%d") call pargi (j) call iw_putarray (iw, D(mw,MI_LTM(mw)+(j-1)*ndim), IW_LTM(iw,1,j), ndim, kwname, TY_LTM, j) } } # Output axis map if any. if (MI_USEAXMAP(mw) == YES) { fd = open ("WAXMAP", READ_WRITE, SPOOL_FILE) axis = ERR do i = 1, ndim { call fprintf (fd, "%d %d ") call pargi (MI_AXNO(mw,i)) call pargi (MI_AXVAL(mw,i)) } # Output successive WAXMAPj FITS cards. call seek (fd, BOFL) call iw_putstr (fd, iw, axis, TY_WAXMAP, "WAXMAP%02d", "", 0) call close (fd) } # Output any WCS attributes. do axis = 0, ndim { fd = open ("WAT", READ_WRITE, SPOOL_FILE) npts = 0 # Dump the attribute=value assignments for this axis into a single # large string buffer, using a spool file. do i = 1, WCS_NWATTR(wp) { at = WCS_WATTR(wp,i) if (AT_AXIS(at) != axis) next if (npts > 0) call putline (fd, " ") call putline (fd, S(mw,AT_NAME(at))) if (stridxs (" \t", S(mw,(AT_VALUE(at)))) > 0) { call putline (fd, " = \"") call putline (fd, S(mw,AT_VALUE(at))) call putline (fd, "\"") } else { call putline (fd, "=") call putline (fd, S(mw,AT_VALUE(at))) } npts = npts + 1 } # Output successive WATi_jjj FITS cards. call seek (fd, BOFL) if (npts > 0) call iw_putstr (fd, iw, axis, TY_WATDATA, "WAT%d_%03d", "WAT%d%04d", 999) call close (fd) } # Output any PV coefficients. do axis = 1, ndim { npts = WCS_NPVC(wp,axis) if (npts == 0) next pv = WCS_PVC(wp,axis) do i = 0, npts-1 { dval = D(mw,pv+i) if (fp_equald(dval,0.0D0)) next cp = iw_findcard (iw, TY_PV, axis, i) call sprintf (kwname, SZ_KWNAME, "PV%d_%d") call pargi (axis) call pargi (i) if (cp == NULL) call imaddf (im, kwname, "d") else C_UPDATED(cp) = YES call imputd (im, kwname, dval) } } # Output any PC coefficients. do axis = 1, ndim { npts = WCS_NPC(wp,axis) if (npts == 0) next pv = WCS_PC(wp,axis) do i = 0, npts-1 { dval = D(mw,pv+i) if (fp_equald(dval,0.0D0)) next cp = iw_findcard (iw, TY_PC, axis, i) call sprintf (kwname, SZ_KWNAME, "PC%d_%d") call pargi (axis) call pargi (i) if (cp == NULL) call imaddf (im, kwname, "d") else C_UPDATED(cp) = YES call imputd (im, kwname, dval) } } # Update any sampled WCS in the header. do axis = 1, ndim { npts = WCS_NPTS(wp,axis) if (npts == 0) next # Update the LEN card. cp = iw_findcard (iw, TY_WSVLEN, axis, 0) if (IW_WSVLEN(iw,axis) != npts) { call sprintf (kwname, SZ_KWNAME, "WSV%d_LEN") call pargi (axis) if (cp == NULL) call imaddf (im, kwname, "i") call imputi (im, kwname, npts) } if (cp != NULL) C_UPDATED(cp) = YES pv = WCS_PV(wp,axis) wv = WCS_WV(wp,axis) # Dump the entire array into an ASCII spool file as successive # points [PV,WV]. fd = open ("WSV", READ_WRITE, SPOOL_FILE) do i = 1, npts { call fprintf (fd, "%0.*g %0.*g ") call pargi (NDIGITS_DP); call pargd (D(mw,pv+i-1)) call pargi (NDIGITS_DP); call pargd (D(mw,wv+i-1)) } # Output successive WSVi_jjj FITS cards. call seek (fd, BOFL) call iw_putstr (fd, iw, axis, TY_WSVDATA, "WSV%d_%03d", "WSV%d%04d", 999) call close (fd) } # Delete any old WCS cards which were not updated, and hence which # are no longer valid, or which are not needed because the value is # the default (in which case the old card is probably invalid). do i = 1, IW_NCARDS(iw) { cp = IW_CARD(iw,i) if (C_UPDATED(cp) == NO) { call strcpy (Memc[C_RP(cp)], kwname, SZ_KWNAME) if (nowhite (kwname, kwname, SZ_KWNAME) > 0) call imdelf (im, kwname) } } call iw_cfits (iw) call sfree (sp) end sptable-1.0.pre20180612/src/mwcs/mwsaxmap.x000066400000000000000000000026441331023215600202050ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include "mwcs.h" # MW_SAXMAP -- Set the axis map. This assigns a logical axis axno[i] to # each physical axis I. If axno[i]=0, the value of the physical axis # coordinate is the constant axval[i], and the dimension of the logical # system is reduced by one. Setting the axis map automatically enables # axis mapping if a nonstandard map is entered. procedure mw_saxmap (mw, axno, axval, ndim) pointer mw #I pointer to MWCS descriptor int axno[ndim] #I physical -> logical axis assignments int axval[ndim] #I value of physical axis if axno=0 int ndim #I physical dimension of axis map int i, j errchk syserrs, syserr begin # Verify dimension. if (MI_NDIM(mw) != ndim) call syserrs (SYS_MWNDIM, "mw_saxmap") # Store the arrays, and determine the dimension of the logical system. # Enable axis mapping if an interesting map has been entered. MI_NLOGDIM(mw) = 0 MI_USEAXMAP(mw) = NO do i = 1, ndim { MI_AXNO(mw,i) = axno[i] MI_AXVAL(mw,i) = axval[i] if (axno[i] > 0) MI_NLOGDIM(mw) = MI_NLOGDIM(mw) + 1 if (axno[i] != i) MI_USEAXMAP(mw) = YES } # Invert the axis map to facilitate logical->physical mappings. do j = 1, MI_NLOGDIM(mw) { for (i=1; i <= ndim; i=i+1) if (axno[i] == j) { MI_PHYSAX(mw,j) = i break } if (i > ndim) call syserr (SYS_MWINVAXMAP) } end sptable-1.0.pre20180612/src/mwcs/mwscale.x000066400000000000000000000022641331023215600200010ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include "mwcs.h" # MW_SCALE -- Front end to mw_translate, used to perform a simple rescaling # of the logical system. procedure mw_scale (mw, scale, axbits) pointer mw #I pointer to MWCS descriptor real scale[ARB] #I scale factor for each axis in axbits int axbits #I bitflags defining axes pointer sp, ltm, ltv_1, ltv_2 int axis[MAX_DIM], naxes, pdim, nelem, axmap, i, j begin # Convert axis bitflags to axis list. call mw_gaxlist (mw, axbits, axis, naxes) if (naxes <= 0) return pdim = MI_NDIM(mw) nelem = pdim * pdim axmap = MI_USEAXMAP(mw) MI_USEAXMAP(mw) = NO call smark (sp) call salloc (ltm, nelem, TY_DOUBLE) call salloc (ltv_1, pdim, TY_DOUBLE) call salloc (ltv_2, pdim, TY_DOUBLE) # Initialize the translation matrix and vectors. call mw_mkidmd (Memd[ltm], pdim) call aclrd (Memd[ltv_1], pdim) call aclrd (Memd[ltv_2], pdim) # Enter the axis scale factors. do i = 1, naxes { j = axis[i] - 1 Memd[ltm+j*pdim+j] = scale[i] } # Perform the translation. call mw_translated (mw, Memd[ltv_1], Memd[ltm], Memd[ltv_2], pdim) MI_USEAXMAP(mw) = axmap call sfree (sp) end sptable-1.0.pre20180612/src/mwcs/mwsctran.x000066400000000000000000000324471331023215600202120ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include include include "mwcs.h" # MW_SCTRAN -- Set up a coordinate transformation (CTRAN) descriptor. # The general idea is to reduce the coordinate transformation to as simple # a form as possible for efficient evaluation at runtime. Most of the # complexities of the actual coordinate system, e.g., axis mapping, multiple # WCS, separate linear and world terms, forward and inverse transforms, etc., # can be dealt with at CTRAN compile time. The result is a CTRAN descriptor # for an N-d coordinate defining an N-d linear transformation and zero or # more calls to WCS functions for individual axes, where N can be anything # less than or equal to the dimensionality of the full system. # # A transformation may be set up between any two coordinate systems # SYSTEM1 and SYSTEM2. The dimensionality of the transformation, and the # axes to which it applies, is determined by the axis bitflags in AXBITS. # A pointer to the optimized transformation descriptor is returned as the # function value. An arbitrary number of transformation descriptors may be # simultaneously open (a limit of 16 or so is imposed by the main MWCS # descriptor). A CTRAN descriptor reflects the state of the WCS *at the # time that the descriptor was compiled*, i.e., subsequent changes to # the MWCS descriptor do not affect any compiled transformation descriptors. # CTRAN descriptors not subsequently closed by CTFREE are automatically # closed when the main MWCS descriptor is closed. pointer procedure mw_sctran (mw, system1, system2, axbits) pointer mw #I pointer to MWCS descriptor char system1[ARB] #I input coordinate system char system2[ARB] #I output coordinate system int axbits #I bitmap defining axes to be transformed bool newfunc int naxes, axis[MAX_DIM], wfno, fn, epa int i, j, k , matlen, ndata, ctlen, pdim pointer i_ltm, i_ltv, o_ltm, o_ltv, t_ltm, t_ltv, ltm, ltv pointer sp, w1, w2, ct, wf, fc, lp, ip, op, ct_r, sv_wcs bool streq() pointer coerce() errchk syserr, syserrs, calloc, zcall2, mw_invertd, mw_ssystem include "mwcs.com" begin call smark (sp) # Get pointers to the input and output systems. sv_wcs = MI_WCS(mw) iferr { call mw_ssystem (mw, system1) w1 = MI_WCS(mw) call mw_ssystem (mw, system2) w2 = MI_WCS(mw) } then { MI_WCS(mw) = sv_wcs call erract (EA_ERROR) } else MI_WCS(mw) = sv_wcs # Get the physical axis list. The bitflags in AXBITS define the axes # in the logical system; run these through the axis map (if enabled) # to get the list of physical axes for which the transformation is to # be prepared. call mw_gaxlist (mw, axbits, axis, naxes) # Allocate the CTRAN descriptor. First we must figure out how # much space is required. The space required is for the base # descriptor, plus additional space for the LTM and LTV, which vary # in size depending upon the dimensionality of the transformation. # The whole thing is then doubled to provide 2 versions of the # descriptor, providing both single and double precision versions # of the LTM and LTV. Any additional storage utilized by the WCS # functions is separately allocated by the initialization routines # in the function drivers. matlen = naxes * naxes ndata = matlen + naxes ctlen = LEN_CTBASE + ndata * SZ_DOUBLE / SZ_STRUCT call calloc (ct, ctlen*2, TY_STRUCT) # Save a pointer to the CTRAN descriptor in the main MWCS descriptor, # to permit automatic deallocation at close time. do i = 1, MAX_CTRAN+1 { if (i > MAX_CTRAN) { call mfree (ct, TY_STRUCT) call syserr (SYS_MWCTOVFL) } if (MI_CTRAN(mw,i) == NULL) { MI_CTRAN(mw,i) = ct break } } CT_MW(ct) = mw CT_WCSI(ct) = w1 CT_WCSO(ct) = w2 CT_NDIM(ct) = naxes CT_R(ct) = ct + ctlen call amovi (axis, CT_AXIS(ct,1), naxes) CT_LTM(ct) = coerce (ct + LEN_CTBASE, TY_STRUCT, TY_DOUBLE) CT_LTV(ct) = CT_LTM(ct) + matlen ltm = CT_LTM(ct) ltv = CT_LTV(ct) # We also need some full-system matrix and vector buffers. pdim = min (WCS_NDIM(w1), WCS_NDIM(w2)) pdim = min (MI_NDIM(mw), pdim) i = pdim * pdim call salloc (i_ltm, i, TY_DOUBLE) call salloc (i_ltv, pdim, TY_DOUBLE) call salloc (o_ltm, i, TY_DOUBLE) call salloc (o_ltv, pdim, TY_DOUBLE) call salloc (t_ltm, i, TY_DOUBLE) call salloc (t_ltv, pdim, TY_DOUBLE) # Compute the transformation. A transformation between any two # world systems W1 and W2 consists of the transformation W1->P # from W1 to the physical system, followed by a transformation # P->W2 to the second world system. The linear portions of these # two transformations can be combined to produce a single linear # transformation, and if no WCS function calls are involved at # either end, the entire transformation reduces to a single linear # transformation defined by LTM and LTV. Note that as far as we # are concerned here, the special world systems "logical" and # "physical" are just like other world systems, except that both are # always linear systems. The linear term for the logical system is # the MWCS Lterm; for the physical system it is the identity matrix. # Set up the transformation W1->P. First we must determine if there # are any WCS function calls. We do this by going ahead and compiling # the "in" function calls in the CTRAN descriptor. # FV 5/2014: It doesn't seem to make sense to include functions # for transformation to/from physical and when a sampled array # is defined the wrong things happen in this case. So we make # an explict check on a physical system to not compile WCS functions. do i = 1, naxes { wfno = WCS_AXCLASS(w1,axis[i]) # Skip to next axis if no WCS function is assigned to this axis. if (wfno == 0 || streq (system1, "physical")) next # Has function call for this axis already been compiled? newfunc = true do j = 1, CT_NCALLI(ct) { fc = CT_FCI(ct,j) do k = 1, FC_NAXES(fc) if (FC_AXIS(fc,k) == i) newfunc = false } # Compile a function call for the inverse transformation. if (newfunc) { CT_NCALLI(ct) = CT_NCALLI(ct) + 1 if (CT_NCALLI(ct) > MAX_CALL) call syserrs (SYS_MWFCOVFL, system1) fc = CT_FCI(ct,CT_NCALLI(ct)) wf = WCS_FUNC(w1,wfno) fn = WF_FN(wf) FC_CT(fc) = ct FC_WCS(fc) = w1 FC_WF(fc) = wf FC_FCN(fc) = FN_INV(fn) FC_NAXES(fc) = WF_NAXES(wf) # Store CTRAN-relative list of axes in function call # descriptor. Verify that all the axes needed for the # function call are included in the transformation. # This requirement can theoretically be relaxed in # some cases but this is not supported in MWCS. do j = 1, WF_NAXES(wf) { for (k=1; k <= naxes; k=k+1) if (axis[k] == WF_AXIS(wf,j)) { FC_AXIS(fc,j) = k break } if (k > naxes) call syserrs (SYS_MWMISSAX, system1) } # Call the function driver to perform any driver dependent # initialization. epa = FN_INIT(fn) if (epa != NULL) call zcall2 (epa, fc, INVERSE) } } # Prepare the linear part of the input transformation W1->P. # This is LTM=inv(CD), and for axis I, LTV[i]=(R[i]-inv(CD)*W) # if no function call, or LTV[i]=R[i] if there is a function # assigned to axis I which already deals with the W[i]. All # this is done in the full dimension of the internal system for # now; extraction of the portion of the full system affecting # the CTRAN axes is done later to permit verification of the # legality of the reduction step required. # Invert CD matrix. if (WCS_CD(w1) == NULL) call mw_mkidmd (Memd[i_ltm], pdim) else call mw_invertd (D(mw,WCS_CD(w1)), Memd[i_ltm], pdim) # If no function calls for an axis and W is set, LTV=(R-inv(CD)*W). if (WCS_W(w1) != NULL) { call amovd (D(mw,WCS_W(w1)), Memd[i_ltv], pdim) do i = 1, CT_NCALLI(ct) { fc = CT_FCI(ct,i) do j = 1, FC_NAXES(fc) { k = axis[FC_AXIS(fc,j)] Memd[i_ltv+k-1] = 0.0d0 } } call mw_vmuld (Memd[i_ltm], Memd[i_ltv], Memd[t_ltv], pdim) # Copy R to LTV. if (WCS_R(w1) == NULL) call anegd (Memd[t_ltv], Memd[i_ltv], pdim) else call asubd (D(mw,WCS_R(w1)), Memd[t_ltv], Memd[i_ltv], pdim) } else { # Copy R to LTV. if (WCS_R(w1) == NULL) call aclrd (Memd[i_ltv], pdim) else call amovd (D(mw,WCS_R(w1)), Memd[i_ltv], pdim) } # Now prepare the output side of the transformation, from P->W2. # Like the input half, this consists of a linear term and a list # of zero or more function calls. # Compile the "out" function calls in the CTRAN descriptor. do i = 1, naxes { wfno = WCS_AXCLASS(w2,axis[i]) # Skip to next axis if no WCS function is assigned to this axis. if (wfno == 0 || streq (system2, "physical")) next # Has function call for this axis already been compiled? newfunc = true do j = 1, CT_NCALLO(ct) { fc = CT_FCO(ct,j) do k = 1, FC_NAXES(fc) if (FC_AXIS(fc,k) == i) newfunc = false } # Compile a function call for the forward transformation. if (newfunc) { CT_NCALLO(ct) = CT_NCALLO(ct) + 1 if (CT_NCALLO(ct) > MAX_CALL) call syserrs (SYS_MWFCOVFL, system2) fc = CT_FCO(ct,CT_NCALLO(ct)) wf = WCS_FUNC(w2,wfno) fn = WF_FN(wf) FC_CT(fc) = ct FC_WCS(fc) = w2 FC_WF(fc) = wf FC_FCN(fc) = FN_FWD(fn) FC_NAXES(fc) = WF_NAXES(wf) # Store CTRAN-relative list of axes in function call # descriptor. Verify that all the axes needed for the # function call are included in the transformation. do j = 1, WF_NAXES(wf) { for (k=1; k <= naxes; k=k+1) if (axis[k] == WF_AXIS(wf,j)) { FC_AXIS(fc,j) = k break } if (k > naxes) call syserrs (SYS_MWMISSAX, system2) } # Call the function driver to perform any driver dependent # initialization. epa = FN_INIT(fn) if (epa != NULL) call zcall2 (epa, fc, FORWARD) } } # Prepare the linear part of the input transformation P->W2. # This is LTM=CD, and for axis I, LTV[i]=(W-CD*R) if no function # call, or LTV[i]=(-CD*R) if there is a function assigned to axis # I which already deals with the W[i]. # Copy CD matrix to LTM. if (WCS_CD(w2) == NULL) call mw_mkidmd (Memd[o_ltm], pdim) else call amovd (D(mw,WCS_CD(w2)), Memd[o_ltm], pdim*pdim) # Copy -R to t_ltv. if (WCS_R(w2) == NULL) call aclrd (Memd[t_ltv], pdim) else call amulkd (D(mw,WCS_R(w2)), -1.0D0, Memd[t_ltv], pdim) # Compute -CD*R in LTV. call mw_vmuld (Memd[o_ltm], Memd[t_ltv], Memd[o_ltv], pdim) # If no function calls for an axis and W is set, LTV=(W-CD*R). if (WCS_W(w2) != NULL) { call amovd (D(mw,WCS_W(w2)), Memd[t_ltv], pdim) call aaddd (Memd[t_ltv], Memd[o_ltv], Memd[o_ltv], pdim) do i = 1, CT_NCALLO(ct) { fc = CT_FCO(ct,i) do j = 1, FC_NAXES(fc) { k = axis[FC_AXIS(fc,j)] # undo +W[k] lp = o_ltv + k - 1 Memd[lp] = Memd[lp] - Memd[t_ltv+k-1] } } } # Now combine the linear terms of the input and output transformations # to produce the linear portion of the full transformation. call mw_mmuld (Memd[o_ltm], Memd[i_ltm], Memd[t_ltm], pdim) call mw_vmuld (Memd[o_ltm], Memd[i_ltv], Memd[t_ltv], pdim) call aaddd (Memd[o_ltv], Memd[t_ltv], Memd[t_ltv], pdim) # Extract the rows of the full linear transformation which are used # for the axes involved in the transformation we are compiling. # In the process we must examine the off-diagonal elements of the # matrix to verify that the system does not include any dependencies # upon axes other than those included in the transformation we are # compiling. (This restriction prohibits dimensional reduction via # an image section which results in loss of a rotated axis). do i = 1, naxes { # Get matrix line pointers for axis[i]. ip = t_ltm + (axis[i]-1) * pdim op = ltm + (i-1) * naxes do j = 1, pdim { # Is column J used by transform? for (k=1; k <= naxes; k=k+1) if (axis[k] == j) break # If column J is not used in the transform but is not zero, # then transform I is dependent upon physical axis J and # we cannot do the transform. If column J is used in the # transform, copy the value to the final output matrix LTM # discarding unused columns as we go. if (k > naxes) { # Check for dependency on axis outside transform. if (abs(Memd[ip+j-1]) > EPSILOND*100.0D0) call syserr (SYS_MWROTDEP) } else { # Add matrix element to final LTM. Memd[op+k-1] = Memd[ip+j-1] } } # Copy the LTV vector element. Memd[ltv+i-1] = Memd[t_ltv+axis[i]-1] } # Determine the transformation type. This is LNR for a purely # linear transformation with no rotational (off-diagonal) terms, # LRO for a purely linear transform with rotational terms, and # GEN for everything else. if (CT_NCALLI(ct) > 0 || CT_NCALLO(ct) > 0) CT_TYPE(ct) = GEN else { CT_TYPE(ct) = LNR do j = 1, naxes do i = 1, naxes if (i != j) { lp = ltm + (j-1)*naxes + i-1 if (abs(Memd[lp]) > EPSILOND*100.0D0) { CT_TYPE(ct) = LRO break } } } # Prepare the single precision part of the transform. call amovi (Memi[CT_D(ct)], Memi[CT_R(ct)], ctlen) ct_r = CT_R(ct) CT_LTM(ct_r) = coerce (ct_r + LEN_CTBASE, TY_STRUCT, TY_REAL) CT_LTV(ct_r) = CT_LTM(ct_r) + matlen call achtdr (Memd[CT_LTM(ct)], Memr[CT_LTM(ct_r)], matlen) call achtdr (Memd[CT_LTV(ct)], Memr[CT_LTV(ct_r)], naxes) call sfree (sp) return (ct) end sptable-1.0.pre20180612/src/mwcs/mwsdefwcs.x000066400000000000000000000021471331023215600203500ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include "mwcs.h" # MW_SDEFWCS -- Set the default WCS. This is the WCS indicated by the user # environment variable "setwcs", if defined and the named WCS exists, else # the first world system is used, else the physical system is used. procedure mw_sdefwcs (mw) pointer mw #I pointer to MWCS descriptor pointer sp, defwcs int envfind() begin call smark (sp) call salloc (defwcs, SZ_FNAME, TY_CHAR) MI_WCS(mw) = NULL # Set the default WCS defined in the user environment, if defined # and the named WCS exists in this MWCS. if (envfind ("defwcs", Memc[defwcs], SZ_FNAME) > 0) iferr (call mw_ssystem (mw, Memc[defwcs])) ; # Otherwise, the default WCS is the first world system, if any, # else it is the physical system. The first world system is WCS 3 # as the physical and logical systems are systems 1 and 2 and are # always defined in any MWCS. if (MI_WCS(mw) == NULL) { if (MI_NWCS(mw) >= 3) MI_WCS(mw) = MI_WCSP(mw,3) else call mw_ssystem (mw, "physical") } call sfree (sp) end sptable-1.0.pre20180612/src/mwcs/mwseti.x000066400000000000000000000011021331023215600176440ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include include "mwcs.h" # MW_SETI -- Set the value of a MWCS interface parameter. procedure mw_seti (mw, param, value) pointer mw #I pointer to MWCS descriptor int param #I parameter code as defined in int value #I new value for parameter begin switch (param) { case MW_NWCS: MI_NWCS(mw) = max (2, value) case MW_REFIM: MI_REFIM(mw) = value case MW_USEAXMAP: MI_USEAXMAP(mw) = value default: call syserr (SYS_MWSET) } end sptable-1.0.pre20180612/src/mwcs/mwshift.x000066400000000000000000000022101331023215600200160ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include "mwcs.h" # MW_SHIFT -- Front end to mw_translate, used to perform a simple shift # of the logical system. procedure mw_shift (mw, shift, axbits) pointer mw #I pointer to MWCS descriptor real shift[ARB] #I shift for each axis in axbits int axbits #I bitflags defining axes pointer sp, ltm, ltv_1, ltv_2 int axis[MAX_DIM], naxes, pdim, nelem, axmap, i begin # Convert axis bitflags to axis list. call mw_gaxlist (mw, axbits, axis, naxes) if (naxes <= 0) return pdim = MI_NDIM(mw) nelem = pdim * pdim axmap = MI_USEAXMAP(mw) MI_USEAXMAP(mw) = NO call smark (sp) call salloc (ltm, nelem, TY_DOUBLE) call salloc (ltv_1, pdim, TY_DOUBLE) call salloc (ltv_2, pdim, TY_DOUBLE) # Initialize the translation matrix and vectors. call mw_mkidmd (Memd[ltm], pdim) call aclrd (Memd[ltv_1], pdim) call aclrd (Memd[ltv_2], pdim) # Enter the axis shifts. do i = 1, naxes Memd[ltv_2+axis[i]-1] = shift[i] # Perform the translation. call mw_translated (mw, Memd[ltv_1], Memd[ltm], Memd[ltv_2], pdim) MI_USEAXMAP(mw) = axmap call sfree (sp) end sptable-1.0.pre20180612/src/mwcs/mwshow.x000066400000000000000000000065121331023215600176720ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include "mwcs.h" # MW_SHOW -- Print information about a MWCS object to a file. procedure mw_show (mw, fd, what) pointer mw #I pointer to MWCS descriptor int fd #I output file int what #I type of output (not used at present) pointer wp int ndim, nwcs, wcs, i, j bool itob() begin ndim = MI_NDIM(mw) nwcs = MI_NWCS(mw) call fprintf (fd, "MWCS=%x, ndim=%d, nwcs=%d, curwcs=%d(%s), refim=%s\n") call pargi (mw) call pargi (ndim) call pargi (nwcs) wcs = INDEFI do i = 1, MI_NWCS(mw) if (MI_WCS(mw) == MI_WCSP(mw,i)) { wcs = i break } call pargi (wcs) if (MI_WCS(mw) != NULL) { wp = MI_WCS(mw) if (WCS_SYSTEM(wp) != NULL) call pargstr (S(mw,WCS_SYSTEM(wp))) else call pargstr ("noname") } if (MI_REFIM(mw) != NULL) call pargstr (IM_NAME(MI_REFIM(mw))) else call pargstr ("none") call fprintf (fd, "sbuflen=%d, sbufused=%d, dbuflen=%d, dbufused=%d\n") call pargi (MI_SBUFLEN(mw)) call pargi (MI_SBUFUSED(mw)) call pargi (MI_DBUFLEN(mw)) call pargi (MI_DBUFUSED(mw)) # Print the axis map. call fprintf (fd, "useaxmap=%b, nlogdim=%d") call pargb (itob(MI_USEAXMAP(mw))) call pargi (MI_NLOGDIM(mw)) call fprintf (fd, " axno=[") do i = 1, ndim { if (i > 1) call fprintf (fd, " ") call fprintf (fd, "%d") call pargi (MI_AXNO(mw,i)) } call fprintf (fd, "] axval=[") do i = 1, ndim { if (i > 1) call fprintf (fd, " ") call fprintf (fd, "%d") call pargi (MI_AXVAL(mw,i)) } call fprintf (fd, "] physax=[") do i = 1, ndim { if (i > 1) call fprintf (fd, " ") call fprintf (fd, "%d") call pargi (MI_PHYSAX(mw,i)) } call fprintf (fd, "]\n") # Print the LTERM. call fprintf (fd, "ltv = [") do i = 1, ndim { if (i > 1) call fprintf (fd, " ") call fprintf (fd, "%g") call pargd (D(mw,MI_LTV(mw)+i-1)) } call fprintf (fd, "]\n") call fprintf (fd, "ltm = [") do j = 1, ndim { if (j > 1) call fprintf (fd, "; ") do i = 1, ndim { if (i > 1) call fprintf (fd, " ") call fprintf (fd, "%g") call pargd (D(mw,MI_LTM(mw)+(j-1)*ndim+i-1)) } } call fprintf (fd, "]\n") # Print the world systems. do wcs = 1, nwcs { wp = MI_WCSP(mw,wcs) ndim = WCS_NDIM(wp) call fprintf (fd, "WCS %d, ndim=%d, name=%s, nwattr=%d, nfunc=%d\n") call pargi (wcs) call pargi (ndim) if (WCS_SYSTEM(wp) != NULL) call pargstr (S(mw,WCS_SYSTEM(wp))) else call pargstr ("noname") call pargi (WCS_NWATTR(wp)) call pargi (WCS_NFUNC(wp)) call fprintf (fd, "R = [") do i = 1, ndim { if (i > 1) call fprintf (fd, " ") call fprintf (fd, "%g") call pargd (D(mw,WCS_R(wp)+i-1)) } call fprintf (fd, "]\n") call fprintf (fd, "W = [") do i = 1, ndim { if (i > 1) call fprintf (fd, " ") call fprintf (fd, "%g") call pargd (D(mw,WCS_W(wp)+i-1)) } call fprintf (fd, "]\n") call fprintf (fd, "CD = [") do j = 1, ndim { if (j > 1) call fprintf (fd, "; ") do i = 1, ndim { if (i > 1) call fprintf (fd, " ") call fprintf (fd, "%g") call pargd (D(mw,WCS_CD(wp)+(j-1)*ndim+i-1)) } } call fprintf (fd, "]\n") } end sptable-1.0.pre20180612/src/mwcs/mwsltermd.x000066400000000000000000000020061331023215600203560ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include "mwcs.h" # MW_SLTERMD -- Set the Lterm, double precision version. Since all floating # data is stored as double internally, we merely copy the data in. procedure mw_sltermd (mw, ltm, ltv, ndim) pointer mw #I pointer to MWCS descriptor double ltm[ndim,ndim] #I linear transformation matrix double ltv[ndim] #I translation vector int ndim #I dimensionality of system pointer mw_allocd() errchk syserrs, mw_allocd begin # The dimensionality of the data must match that of the current Lterm. if (ndim != MI_NDIM(mw)) call syserrs (SYS_MWNDIM, "mw_sltermd") # Copy in the data. Cobber the old data if the Lterm has been set, # otherwise allocate space in the global data area. if (MI_LTM(mw) == NULL) MI_LTM(mw) = mw_allocd (mw, ndim*ndim) call amovd (ltm, D(mw,MI_LTM(mw)), ndim*ndim) if (MI_LTV(mw) == NULL) MI_LTV(mw) = mw_allocd (mw, ndim) call amovd (ltv, D(mw,MI_LTV(mw)), ndim) end sptable-1.0.pre20180612/src/mwcs/mwsltermr.x000066400000000000000000000024521331023215600204010ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include "mwcs.h" # MW_SLTERMR -- Set the Lterm, single precision version. Since all floating # data is stored as double internally, a real->double conversion is involved, # but no precision is lost provided single precision is adequate to describe # the input data (an example of a case where precision is lost is a rotation, # where there is a difference between the single and double precision version # of, e.g., "sin(theta)"). procedure mw_sltermr (mw, ltm, ltv, ndim) pointer mw #I pointer to MWCS descriptor real ltm[ndim,ndim] #I linear transformation matrix real ltv[ndim] #I translation vector int ndim #I dimensionality of system int nelem pointer mw_allocd() errchk syserrs, mw_allocd begin # The dimensionality of the data must match that of the current Lterm. if (ndim != MI_NDIM(mw)) call syserrs (SYS_MWNDIM, "mw_sltermr") # Copy in the data. Cobber the old data if the Lterm has been set, # otherwise allocate space in the global data area. nelem = ndim * ndim if (MI_LTM(mw) == NULL) MI_LTM(mw) = mw_allocd (mw, nelem) call achtrd (ltm, D(mw,MI_LTM(mw)), nelem) if (MI_LTV(mw) == NULL) MI_LTV(mw) = mw_allocd (mw, ndim) call achtrd (ltv, D(mw,MI_LTV(mw)), ndim) end sptable-1.0.pre20180612/src/mwcs/mwspc.x000066400000000000000000000013751331023215600175010ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include "mwcs.h" # MW_SPC -- Set PC coefficients for an axis. procedure mw_spc (mw, axis, pc, npc) pointer mw #I pointer to MWCS descriptor int axis #I axis which gets the wsamp vector double pc[ARB] #I PC coefficients int npc #I number of coefficients pointer wp int mw_allocd() errchk syserrs, mw_allocd begin # Get the current WCS. wp = MI_WCS(mw) if (wp == NULL) call syserrs (SYS_MWNOWCS, "mw_spc") # Overwrite the current curve, if any, else allocate new storage. if (WCS_PC(wp,axis) == NULL || WCS_NPC(wp,axis) < npc) WCS_PC(wp,axis) = mw_allocd (mw, npc) call amovd (pc, D(mw,WCS_PC(wp,axis)), npc) WCS_NPC(wp,axis) = npc end sptable-1.0.pre20180612/src/mwcs/mwspv.x000066400000000000000000000014061331023215600175170ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include "mwcs.h" # MW_SPV -- Set the PV coefficients for an axis. procedure mw_spv (mw, axis, pv, npv) pointer mw #I pointer to MWCS descriptor int axis #I axis which gets the wsamp vector double pv[ARB] #I PV coefficients int npv #I number of coefficients pointer wp int mw_allocd() errchk syserrs, mw_allocd begin # Get the current WCS. wp = MI_WCS(mw) if (wp == NULL) call syserrs (SYS_MWNOWCS, "mw_spv") # Overwrite the current curve, if any, else allocate new storage. if (WCS_PVC(wp,axis) == NULL || WCS_NPVC(wp,axis) < npv) WCS_PVC(wp,axis) = mw_allocd (mw, npv) call amovd (pv, D(mw,WCS_PVC(wp,axis)), npv) WCS_NPVC(wp,axis) = npv end sptable-1.0.pre20180612/src/mwcs/mwssys.x000066400000000000000000000011131331023215600177030ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include "mwcs.h" # MW_SSYSTEM -- Make the named world coordinate system the default. procedure mw_ssystem (mw, system) pointer mw #I pointer to MWCS descriptor char system[ARB] #I system name pointer wp bool streq() pointer mw_findsys() errchk mw_findsys begin if (streq (system, "world")) call mw_sdefwcs (mw) # set default world system else { wp = mw_findsys (mw, system) if (wp != NULL) MI_WCS(mw) = wp else call syserrs (SYS_MWWCSNF, system) } end sptable-1.0.pre20180612/src/mwcs/mwstati.x000066400000000000000000000015001331023215600200260ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include include include "mwcs.h" # MW_STATI -- Get the value of a MWCS interface parameter. int procedure mw_stati (mw, param) pointer mw #I pointer to MWCS descriptor int param #I parameter code as defined in begin switch (param) { case MW_NDIM: if (MI_USEAXMAP(mw) == NO) return (MI_NDIM(mw)) else return (MI_NLOGDIM(mw)) case MW_NWCS: return (MI_NWCS(mw)) case MW_REFIM: return (MI_REFIM(mw)) case MW_USEAXMAP: return (MI_USEAXMAP(mw)) case MW_NPHYSDIM: return (MI_NDIM(mw)) case MW_SAVELEN: return (MI_LEN(mw) * SZ_STRUCT + MI_DBUFUSED(mw) * SZ_DOUBLE + (MI_SBUFUSED(mw) + SZB_CHAR-1) / SZB_CHAR) default: call syserr (SYS_MWSTAT) } end sptable-1.0.pre20180612/src/mwcs/mwsv.h000066400000000000000000000037561331023215600173310ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. # MWSV.H -- Definitions for the MWSV external save-MWSV data format. This # has been generalized slightly over the original "version 0" design, but is # still not very general and should be redone at some point. There is an # implicit assumption that most of the elements of the MWSV structure are # identical to those in the MWCS runtime descriptor. define MWSV_MAGIC 4D57X # identifies MWSV descriptor define MWSV_VERSION 1 # current MWSV version define MWSV_MAXWCS 8 # max wcs per mwcs define MWSV_LENWCS0 282 # LENWCS for MWSV version 0 # Header for the saved MWCS object. Object LENs are in the natural units of # whatever object the field refers to. Save buffer offsets are type char # regardless of the object type. The unused fields at the end of the header # are reserved for future use and are set to zero in the current version. define LEN_SVHDR 16 define SV_MAGIC Memi[$1] # magic marker define SV_CWCSLEN Memi[$1+1] # length of compressed MWSV define SV_MWSVLEN Memi[$1+2] # full length of MWSV descr. define SV_MWSVOFF Memi[$1+3] # char offset of saved MWSV define SV_DBUFLEN Memi[$1+4] # length of saved DBUF define SV_DBUFOFF Memi[$1+5] # char offset of saved DBUF define SV_SBUFLEN Memi[$1+6] # length of saved SBUF define SV_SBUFOFF Memi[$1+7] # char offset of saved SBUF define SV_VERSION Memi[$1+8] # MWSV save file version number define SV_NWCS Memi[$1+9] # number of saved WCS structs define SV_LENWCS Memi[$1+10] # length of WCS substruct # MWSV descriptor. This is very similar to the MWCS runtime descriptor # except that the size of a WCS sub-structure (LENWCS) can vary. If the # MWSV version is 0 lenwcs is fixed at MS_LENWCS0, otherwise the value of # lenwcs is given in the save header as the value of field SV_LENWCS. define MWSV_BASELEN 70 define LEN_MWSV (MWSV_BASELEN+($1)*($2)) define MS_MAGIC Memi[$1] # magic marker define MS_WCSP ($1+70+(($2)-1)*($3)) # $1=ms $2=wcs $3=lenwcs sptable-1.0.pre20180612/src/mwcs/mwswattrs.x000066400000000000000000000025521331023215600204210ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include "mwcs.h" # MW_SWATTRS -- Set the string value of the named WCS attribute for axis N. # The attribute is created if not already defined. If axis N=0 is specified, # the attribute pertains to the entire WCS, not just one axis. procedure mw_swattrs (mw, axis, attribute, valstr) pointer mw #I pointer to MWCS descriptor int axis #I axis to which attribute belongs char attribute[ARB] #I attribute name char valstr[ARB] #I attribute value pointer wp, ap int atno, i bool streq() int mw_refstr() errchk syserrs, mw_refstr begin # Get current WCS. wp = MI_WCS(mw) if (wp == NULL) call syserrs (SYS_MWNOWCS, "mw_swattrs") # Lookup the named attribute and replace the pointer to the value # string if found. Otherwise, add a new attribute. atno = 0 do i = 1, WCS_NWATTR(wp) { ap = WCS_WATTR(wp,i) if (AT_AXIS(ap) == axis) if (streq (S(mw,AT_NAME(ap)), attribute)) { atno = i break } } # Add a new attribute? if (atno == 0) { atno = WCS_NWATTR(wp) + 1 if (atno > MAX_WATTR) call syserrs (SYS_MWATOVFL, attribute) else { WCS_NWATTR(wp) = atno ap = WCS_WATTR(wp,atno) AT_AXIS(ap) = axis AT_NAME(ap) = mw_refstr (mw, attribute) } } # Store the value string. AT_VALUE(ap) = mw_refstr (mw, valstr) end sptable-1.0.pre20180612/src/mwcs/mwswsampd.x000066400000000000000000000017661331023215600203760ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include "mwcs.h" # MW_SWSAMPD -- Set the sampled WCS curve for an axis. procedure mw_swsampd (mw, axis, pv, wv, npts) pointer mw #I pointer to MWCS descriptor int axis #I axis which gets the wsamp vector double pv[ARB] #I physical coordinates of points double wv[ARB] #I world coordinates of points int npts #I number of data point in curve pointer wp int mw_allocd() errchk syserrs, mw_allocd begin # Get the current WCS. wp = MI_WCS(mw) if (wp == NULL) call syserrs (SYS_MWNOWCS, "mw_swsampd") # Overwrite the current curve, if any, else allocate new storage. if (WCS_PV(wp,axis) == NULL || WCS_NPTS(wp,axis) < npts) WCS_PV(wp,axis) = mw_allocd (mw, npts) call amovd (pv, D(mw,WCS_PV(wp,axis)), npts) if (WCS_WV(wp,axis) == NULL || WCS_NPTS(wp,axis) < npts) WCS_WV(wp,axis) = mw_allocd (mw, npts) call amovd (wv, D(mw,WCS_WV(wp,axis)), npts) WCS_NPTS(wp,axis) = npts end sptable-1.0.pre20180612/src/mwcs/mwswsampr.x000066400000000000000000000017641331023215600204120ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include "mwcs.h" # MW_SWSAMPR -- Set the sampled WCS curve for an axis. procedure mw_swsampr (mw, axis, pv, wv, npts) pointer mw #I pointer to MWCS descriptor int axis #I axis which gets the wsamp vector real pv[ARB] #I physical coordinates of points real wv[ARB] #I world coordinates of points int npts #I number of data point in curve pointer wp int mw_allocd() errchk syserrs, mw_allocd begin # Get the current WCS. wp = MI_WCS(mw) if (wp == NULL) call syserrs (SYS_MWNOWCS, "mw_swsampr") # Overwrite the current curve, if any, else allocate new storage. if (WCS_PV(wp,axis) == NULL || WCS_NPTS(wp,axis) < npts) WCS_PV(wp,axis) = mw_allocd (mw, npts) call achtrd (pv, D(mw,WCS_PV(wp,axis)), npts) if (WCS_WV(wp,axis) == NULL || WCS_NPTS(wp,axis) < npts) WCS_WV(wp,axis) = mw_allocd (mw, npts) call achtrd (wv, D(mw,WCS_WV(wp,axis)), npts) WCS_NPTS(wp,axis) = npts end sptable-1.0.pre20180612/src/mwcs/mwswtermd.x000066400000000000000000000024461331023215600204010ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include "mwcs.h" # MW_SWTERMD -- Set the linear part of the Wterm, i.e., the physical and world # coordinates of the reference point and the CD matrix. It is the Wterm of # the current default WCS which is affected. procedure mw_swtermd (mw, r, w, cd, ndim) pointer mw #I pointer to MWCS descriptor double r[ndim] #I physical coordinates of reference point double w[ndim] #I world coordinates of reference point double cd[ndim,ndim] #I CD matrix int ndim #I dimension of Wterm pointer wp pointer mw_allocd() errchk mw_allocd, syserrs string s_name "mw_swtermd" begin # Get the current WCS. wp = MI_WCS(mw) if (wp == NULL) call syserrs (SYS_MWNOWCS, s_name) # Verify the dimension. if (WCS_NDIM(wp) != ndim) call syserrs (SYS_MWNDIM, s_name) # Copy in the data. Cobber the old data if the Wterm has been set, # otherwise allocate space in the global data area. if (WCS_R(wp) == NULL) WCS_R(wp) = mw_allocd (mw, ndim) call amovd (r, D(mw,WCS_R(wp)), ndim) if (WCS_W(wp) == NULL) WCS_W(wp) = mw_allocd (mw, ndim) call amovd (w, D(mw,WCS_W(wp)), ndim) if (WCS_CD(wp) == NULL) WCS_CD(wp) = mw_allocd (mw, ndim*ndim) call amovd (cd, D(mw,WCS_CD(wp)), ndim*ndim) end sptable-1.0.pre20180612/src/mwcs/mwswtermr.x000066400000000000000000000024721331023215600204160ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include "mwcs.h" # MW_SWTERMR -- Set the linear part of the Wterm, i.e., the physical and world # coordinates of the reference point and the CD matrix. It is the Wterm of # the current default WCS which is affected. procedure mw_swtermr (mw, r, w, cd, ndim) pointer mw #I pointer to MWCS descriptor real r[ndim] #I physical coordinates of reference point real w[ndim] #I world coordinates of reference point real cd[ndim,ndim] #I CD matrix int ndim #I dimension of Wterm pointer wp int nelem pointer mw_allocd() errchk mw_allocd, syserrs string s_name "mw_swtermr" begin # Get the current WCS. wp = MI_WCS(mw) if (wp == NULL) call syserrs (SYS_MWNOWCS, s_name) # Verify the dimension. if (WCS_NDIM(wp) != ndim) call syserrs (SYS_MWNDIM, s_name) # Copy in the data. Cobber the old data if the Wterm has been set, # otherwise allocate space in the global data area. if (WCS_R(wp) == NULL) WCS_R(wp) = mw_allocd (mw, ndim) call achtrd (r, D(mw,WCS_R(wp)), ndim) if (WCS_W(wp) == NULL) WCS_W(wp) = mw_allocd (mw, ndim) call achtrd (w, D(mw,WCS_W(wp)), ndim) nelem = ndim * ndim if (WCS_CD(wp) == NULL) WCS_CD(wp) = mw_allocd (mw, nelem) call achtrd (cd, D(mw,WCS_CD(wp)), nelem) end sptable-1.0.pre20180612/src/mwcs/mwswtype.x000066400000000000000000000071261331023215600202470ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include include "mwcs.h" # MW_SWTYPE -- Set the coordinate (WCS function) type and any related # attributes for an axis, or set of related axes, of a WCS. Each call # defines a group of one or more axes which share the same WCS function # and which are dependent, i.e., all axes are required to evaluate the # coordinate of any axis in the group. Independent axes or groups of # axes should be defined in separate calls. # # Although the attributes for each axis in the group are all entered in # a single call via the WATTR string, each attribute is still assigned # to a single axis. The syntax is as follows: # # axis 1: format="...", label="..." # axis 2: ...(etc.) # # where the axis number is relative to the start of the group. # The WATTR string may be any length and may contain multiple lines of text. # A typical use of attributes is to define WCS specific parameters; these # may be read by the initialization routine in the WCS function driver, # called when a coordinate transformation is compiled. procedure mw_swtype (mw, axis, naxes, wtype, wattr) pointer mw #I pointer to MWCS descriptor int axis[naxes] #I axis number, 1:ndim int naxes #I number of axes in function group char wtype[ARB] #I axis coordinate type char wattr[ARB] #I axis attributes, "attr=value, ..." pointer sp, atname, valstr, wp, op, wf int ip, ch, fn, wfno, ax, sz_valstr, i int ctowrd(), mw_flookup(), ctoi(), strlen() errchk syserrs, mw_swattrs, mw_flookup bool streq() begin call smark (sp) sz_valstr = strlen (wattr) call salloc (valstr, sz_valstr, TY_CHAR) call salloc (atname, SZ_ATNAME, TY_CHAR) # Get the current WCS. wp = MI_WCS(mw) if (wp == NULL) call syserrs (SYS_MWNOWCS, "mw_swtype") # Set the function type? if (wtype[1] != EOS) { # Determine the function type for this axis group. fn = mw_flookup (mw, wtype) if (fn == ERR) call syserrs (SYS_MWUNKFN, wtype) # For anything except a simple linear relation, add a new function # descriptor to the WCS. if (fn != F_LINEAR) { # Allocate new WCS function descriptor. wfno = WCS_NFUNC(wp) + 1 if (wfno > MAX_FUNC) call syserrs (SYS_MWFUNCOVFL, wtype) WCS_NFUNC(wp) = wfno # Initialize the descriptor. wf = WCS_FUNC(wp,wfno) WF_FN(wf) = fn WF_NAXES(wf) = naxes call amovi (axis, WF_AXIS(wf,1), naxes) } else wfno = 0 # Set the axis type and class. do i = 1, naxes { call mw_swattrs (mw, axis[i], "wtype", wtype) WCS_AXCLASS(wp,axis[i]) = wfno } } # Process the attributes into the WCS descriptor. ax = axis[1] for (ip=1; wattr[ip] != EOS; ) { # Skip to next token. ch = wattr[ip] while (IS_WHITE(ch) || ch == ',' || ch == '\n' || ch == ':') { ip = ip + 1 ch = wattr[ip] } # Done? if (ch == EOS) break # Extract attribute name string. op = atname ch = wattr[ip] while (IS_ALNUM(ch) || ch == '_' || ch == '$') { Memc[op] = ch op = min (atname+SZ_ATNAME, op + 1) ip = ip + 1 ch = wattr[ip] } Memc[op] = EOS # Check for "axis N:" and set AX if encountered. if (streq (Memc[atname], "axis")) if (ctoi (wattr, ip, i) > 0) { ax = axis[i] next } # Skip to value string. ch = wattr[ip] while (IS_WHITE(ch) || ch == '=' || ch == '\n') { ip = ip + 1 ch = wattr[ip] } # Extract value string. ch = ctowrd (wattr, ip, Memc[valstr], sz_valstr) # Add the attribute to the WCS. call mw_swattrs (mw, ax, Memc[atname], Memc[valstr]) } call sfree (sp) end sptable-1.0.pre20180612/src/mwcs/mwtransd.x000066400000000000000000000064311331023215600202050ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include "mwcs.h" # MW_TRANSLATE -- Translate the logical system, i.e., perform a linear # transformation of the logical system by modifying the Lterm of the MWCS. # The transformation is defined in terms of the CURRENT LOGICAL SYSTEM, # subject to axis mapping, dimensional reduction, etc. This is unlike # MW_SLTERM, which defines the Lterm relative to the physical system in # physical terms (no axis mapping, full dimensionality, etc.). # # p' = ltm * (p - ltv_1) + ltv_2 # # For convenience the transformation is specified using separate translation # vectors for the input and output systems. If ltv_1 is set to zero a # "fully reduced" transformation of the form used internally may be entered. procedure mw_translated (mw, ltv_1, ltm, ltv_2, ndim) pointer mw #I pointer to MWCS descriptor double ltv_1[ndim] #I input translation vector double ltm[ndim,ndim] #I linear transformation matrix double ltv_2[ndim] #I output translation vector int ndim #I dimensionality of transform double v pointer sp, o_ltm, o_ltv, n_ltm, n_ltv, ltv int pdim, nelem, axis[MAX_DIM], i, j errchk syserrs define err_ 91 begin pdim = MI_NDIM(mw) nelem = pdim * pdim call smark (sp) call salloc (ltv, ndim, TY_DOUBLE) call salloc (o_ltm, nelem, TY_DOUBLE) call salloc (o_ltv, pdim, TY_DOUBLE) call salloc (n_ltm, nelem, TY_DOUBLE) call salloc (n_ltv, pdim, TY_DOUBLE) # Combine the input and output translation vectors. do j = 1, ndim { v = ltv_2[j] do i = 1, ndim v = v + ltm[i,j] * (-ltv_1[i]) Memd[ltv+j-1] = v } # Get axis map. if (MI_USEAXMAP(mw) == NO) { if (ndim > MI_NDIM(mw)) goto err_ do i = 1, ndim axis[i] = i } else { if (ndim > MI_NLOGDIM(mw)) err_ call syserrs (SYS_MWNDIM, "mw_translate") do i = 1, ndim axis[i] = MI_PHYSAX(mw,i) } # Perform the transformation. Use a procedure call to dereference # the pointers to simplify the notation. call mw_axtran (D(mw,MI_LTM(mw)), D(mw,MI_LTV(mw)), Memd[n_ltm], Memd[n_ltv], pdim, ltm, Memd[ltv], axis, ndim) # Update the Lterm. call amovd (Memd[n_ltm], D(mw,MI_LTM(mw)), nelem) call amovd (Memd[n_ltv], D(mw,MI_LTV(mw)), pdim) call sfree (sp) end # MW_AXTRAN -- Axis mapped linear transformation. Matrix or vector elements # not included in the axis map are propagated unchanged. procedure mw_axtran (o_ltm,o_ltv, n_ltm,n_ltv, pdim, ltm,ltv, ax, ndim) double o_ltm[pdim,pdim] #I matrix to be transformed double o_ltv[pdim] #I vector to be transformed double n_ltm[pdim,pdim] #O transformed matrix double n_ltv[pdim] #O transformed vector int pdim #I dimension of these guys double ltm[ndim,ndim] #I transform matrix double ltv[ndim] #I transform vector int ax[ndim] #I transform axis map: physax=axis[logax] int ndim #I dimension of these guys double v int i, j, k begin # Transform the matrix. call amovd (o_ltm, n_ltm, pdim * pdim) do j = 1, ndim do i = 1, ndim { v = 0 do k = 1, ndim # v = v + o_ltm[ax[k],ax[j]] * ltm[i,k] v = v + ltm[k,j] * o_ltm[ax[i],ax[k]] n_ltm[ax[i],ax[j]] = v } # Transform the vector. call amovd (o_ltv, n_ltv, pdim) do j = 1, ndim { v = ltv[j] do i = 1, ndim v = v + ltm[i,j] * o_ltv[ax[i]] n_ltv[ax[j]] = v } end sptable-1.0.pre20180612/src/mwcs/mwtransr.x000066400000000000000000000016501331023215600202210ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. # MW_TRANSLATE -- Translate the logical system, i.e., perform a linear # transformation of the logical system by modifying the Lterm of the MWCS. procedure mw_translater (mw, ltv_1, ltm, ltv_2, ndim) pointer mw #I pointer to MWCS descriptor real ltv_1[ndim] #I input translation vector real ltm[ndim,ndim] #I linear transformation matrix real ltv_2[ndim] #I output translation vector int ndim #I dimensionality of transform int nelem pointer sp, d_ltm, d_ltv1, d_ltv2 begin call smark (sp) nelem = ndim * ndim call salloc (d_ltm, nelem, TY_DOUBLE) call salloc (d_ltv1, ndim, TY_DOUBLE) call salloc (d_ltv2, ndim, TY_DOUBLE) call achtrd (ltm, Memd[d_ltm], nelem) call achtrd (ltv_1, Memd[d_ltv1], ndim) call achtrd (ltv_2, Memd[d_ltv2], ndim) call mw_translated (mw, Memd[d_ltv1], Memd[d_ltm], Memd[d_ltv2], ndim) call sfree (sp) end sptable-1.0.pre20180612/src/mwcs/mwv1tran.gx000066400000000000000000000014231331023215600202700ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include "../mwcs.h" # MW_V1TRAN -- Optimized 1D coordinate transformation for an array of points. procedure mw_v1tran$t (a_ct, x1, x2, npts) pointer a_ct #I pointer to CTRAN descriptor PIXEL x1[ARB] #I coordinates in input system PIXEL x2[ARB] #O coordinates in output system int npts int i pointer ct PIXEL scale, offset errchk mw_ctran$t begin # Get real or double version of descriptor. ct = CT_$T(a_ct) scale = Mem$t[CT_LTM(ct)] offset = Mem$t[CT_LTV(ct)] # Perform the transformation; case LNR is a simple linear transform. if (CT_TYPE(ct) == LNR) { do i = 1, npts x2[i] = scale * x1[i] + offset } else { do i = 1, npts call mw_ctran$t (a_ct, x1[i], x2[i], 1) } end sptable-1.0.pre20180612/src/mwcs/mwv2tran.gx000066400000000000000000000023461331023215600202760ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include "../mwcs.h" # MW_V2TRAN -- Optimized 2D coordinate transformation for an array of points. procedure mw_v2tran$t (a_ct, x1,y1, x2,y2, npts) pointer a_ct #I pointer to CTRAN descriptor PIXEL x1[ARB],y1[ARB] #I coordinates in input system PIXEL x2[ARB],y2[ARB] #O coordinates in output system int npts int i pointer ct, ltm, ltv PIXEL p1[2], p2[2] errchk mw_ctran$t begin # Get real or double version of descriptor. ct = CT_$T(a_ct) ltm = CT_LTM(ct) ltv = CT_LTV(ct) if (CT_TYPE(ct) == LNR) { # Simple linear, nonrotated transformation. do i = 1, npts { x2[i] = Mem$t[ltm ] * x1[i] + Mem$t[ltv ] y2[i] = Mem$t[ltm+3] * y1[i] + Mem$t[ltv+1] } } else if (CT_TYPE(ct) == LRO) { # Linear, rotated transformation. do i = 1, npts { p1[1] = x1[i]; p1[2] = y1[i] x2[i] = Mem$t[ltm ] * p1[1] + Mem$t[ltm+1] * p2[1] + Mem$t[ltv ] y2[i] = Mem$t[ltm+2] * p1[1] + Mem$t[ltm+3] * p2[1] + Mem$t[ltv+1] } } else { # General case involving one or more functional terms. do i = 1, npts { p1[1] = x1[i]; p1[2] = y1[i] call mw_ctran$t (a_ct, p1, p2, 2) x2[i] = p2[1]; y2[i] = p2[2] } } end sptable-1.0.pre20180612/src/mwcs/mwvmul.gx000066400000000000000000000006171331023215600200440ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. # MW_VMUL -- Vector multiply. procedure mw_vmul$t (a, b, c, ndim) PIXEL a[ndim,ndim] #I input matrix PIXEL b[ndim] #I input vector PIXEL c[ndim] #O output vector int ndim #I system dimension int i, j PIXEL v begin do j = 1, ndim { v = 0 do i = 1, ndim v = v + a[i,j] * b[i] c[j] = v } end sptable-1.0.pre20180612/src/mwcs/mwvtran.gx000066400000000000000000000011041331023215600202030ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. # MW_VTRAN -- Transform an array of N-dimensional points, expressed as a # 2D vector where v[1,i] is point I of vector V. procedure mw_vtran$t (ct, v1, v2, ndim, npts) pointer ct #I pointer to CTRAN descriptor PIXEL v1[ndim,npts] #I points to be transformed PIXEL v2[ndim,npts] #O vector to get the transformed points int ndim #I dimensionality of each point int npts #I number of points int i errchk mw_ctran$t begin do i = 1, npts call mw_ctran$t (ct, v1[1,i], v2[1,i], ndim) end sptable-1.0.pre20180612/src/mwcs/wfait.x000066400000000000000000000351501331023215600174600ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include "mwcs.h" .help WFAIT .nf ------------------------------------------------------------------------- WFAIT -- WCS function driver for the Hammer-Aitoff projection. Driver routines: FN_INIT wf_ait_init (fc, dir) FN_DESTROY (none) FN_FWD wf_ait_fwd (fc, v1, v2) FN_INV wf_ait_inv (fc, v1, v2) .endhelp -------------------------------------------------------------------- # Driver specific fields of function call (FC) descriptor. define FC_IRA Memi[$1+FCU] # RA axis (1 or 2) define FC_IDEC Memi[$1+FCU+1] # DEC axis (1 or 2) define FC_NATRA Memd[P2D($1+FCU+2)] # RA of native pole (rads) define FC_NATDEC Memd[P2D($1+FCU+4)] # DEC of native pole (rads) define FC_LONGP Memd[P2D($1+FCU+6)] # LONGPOLE (rads) define FC_COSDEC Memd[P2D($1+FCU+8)] # cosine (NATDEC) define FC_SINDEC Memd[P2D($1+FCU+10)] # sine (NATDEC) define FC_SPHTOL Memd[P2D($1+FCU+12)] # trig tolerance define FC_RODEG Memd[P2D($1+FCU+14)] # RO (degs) define FC_C1 Memd[P2D($1+FCU+16)] # 2 * RO * RO define FC_C2 Memd[P2D($1+FCU+18)] # 1 / (4 * RO * RO) (degs) define FC_C3 Memd[P2D($1+FCU+20)] # 1 / (16 * RO * RO) (degs) define FC_C4 Memd[P2D($1+FCU+22)] # 1 / (2 * RO) (degs) define FC_BADCVAL Memd[P2D($1+FCU+24)] # bad coordinate value define FC_W Memd[P2D($1+FCU+26)+($2)-1] # CRVAL axis (1 and 2) # WF_AIT_INIT -- Initialize the forward or inverse Hammer-Aitoff transform. # Initialization for this transformation consists of, determining which axis # is RA / LON and which is DEC / LAT, reading in the native longitude and # latitude of the pole in celestial coordinates LONGPOLE and LATPOLE from the # attribute list, computing the celestial longitude and colatitude of the # native pole, precomputing the Euler angles and associated intermediary # functions of the reference point, reading in the projection parameter RO # from the attribute list, and precomputing the various required intermediate # quantities. If LONGPOLE is undefined then a value of 180.0 degrees is assumed # if the celestial latitude of the reference point is less than 0, otherwise # 0 degrees is assumed. If LATPOLE is undefined, the more northerly of the # two possible solutions is assumed, otherwise the solution closest to # LATPOLE is assumed. If RO is undefined a value of 180.0 / PI is assumed. # In order to determine the axis order, the "axtype={ra|dec} {xlon|ylat}" # must have been set in the attribute list for the function. The LONGPOLE, # LATPOLE, and RO parameters may be set in either or both of the axes attribute # lists, but the value in the RA axis attribute list takes precedence. procedure wf_ait_init (fc, dir) pointer fc #I pointer to FC descriptor int dir #I direction of transform int i double dec, latpole, theta0, clat0, slat0, cphip, sphip, cthe0, sthe0, x, y, z double u, v, latp1, latp2, latp, maxlat, tol pointer sp, atvalue, ct, mw, wp, wv int ctod() data tol/1.0d-10/ errchk wf_decaxis(), mw_gwattrs() begin # Allocate space for the attribute string. call smark (sp) call salloc (atvalue, SZ_LINE, TY_CHAR) # Get the required mwcs pointers. ct = FC_CT(fc) mw = CT_MW(ct) wp = FC_WCS(fc) # Determine which is the DEC axis, and hence the axis order. call wf_decaxis (fc, FC_IRA(fc), FC_IDEC(fc)) # Get the value of W for each axis, i.e. the world coordinates at # the reference point. wv = MI_DBUF(mw) + WCS_W(wp) - 1 do i = 1, 2 FC_W(fc,i) = Memd[wv+CT_AXIS(ct,FC_AXIS(fc,i))-1] # Determine the native longitude and latitude of the pole of the # celestial coordinate system corresponding to the FITS keywords # LONGPOLE and LATPOLE. LONGPOLE has no default but will be set # to 180 or 0 depending on the value of the declination of the # reference point. LATPOLE has no default but will be set depending # on the values of LONGPOLE and the reference declination. iferr { call mw_gwattrs (mw, FC_IRA(fc), "longpole", Memc[atvalue], SZ_LINE) } then { iferr { call mw_gwattrs (mw, FC_IDEC(fc), "longpole", Memc[atvalue], SZ_LINE) } then { FC_LONGP(fc) = INDEFD } else { i = 1 if (ctod (Memc[atvalue], i, FC_LONGP(fc)) <= 0) FC_LONGP(fc) = INDEFD } } else { i = 1 if (ctod (Memc[atvalue], i, FC_LONGP(fc)) <= 0) FC_LONGP(fc) = INDEFD } iferr { call mw_gwattrs (mw, FC_IRA(fc), "latpole", Memc[atvalue], SZ_LINE) } then { iferr { call mw_gwattrs (mw, FC_IDEC(fc), "latpole", Memc[atvalue], SZ_LINE) } then { latpole = INDEFD } else { i = 1 if (ctod (Memc[atvalue], i, latpole) <= 0) latpole = INDEFD } } else { i = 1 if (ctod (Memc[atvalue], i, latpole) <= 0) latpole = INDEFD } # Fetch the RO projection parameter which is the radius of the # generating sphere for the projection. If RO is absent which # is the usual case set it to 180 / PI. Search both axes for # this quantity. iferr { call mw_gwattrs (mw, FC_IRA(fc), "ro", Memc[atvalue], SZ_LINE) } then { iferr { call mw_gwattrs (mw, FC_IDEC(fc), "ro", Memc[atvalue], SZ_LINE) } then { FC_RODEG(fc) = 180.0d0 / DPI } else { i = 1 if (ctod (Memc[atvalue], i, FC_RODEG(fc)) <= 0) FC_RODEG(fc) = 180.0d0 / DPI } } else { i = 1 if (ctod (Memc[atvalue], i, FC_RODEG(fc)) <= 0) FC_RODEG(fc) = 180.0d0 / DPI } # Compute the native longitude of the celestial pole. dec = DDEGTORAD(FC_W(fc,FC_IDEC(fc))) theta0 = 0.0d0 if (IS_INDEFD(FC_LONGP(fc))) { if (dec < theta0) FC_LONGP(fc) = DPI else FC_LONGP(fc) = 0.0d0 } else FC_LONGP(fc) = DDEGTORAD(FC_LONGP(fc)) # Compute the celestial longitude and latitude of the native pole. clat0 = cos (dec) slat0 = sin (dec) cphip = cos (FC_LONGP(fc)) sphip = sin (FC_LONGP(fc)) cthe0 = cos (theta0) sthe0 = sin (theta0) x = cthe0 * cphip y = sthe0 z = sqrt (x * x + y * y) # The latitude of the native pole is determined by LATPOLE in this # case. if (z == 0.0d0) { if (slat0 != 0.0d0) call error (0, "WF_AIT_INIT: Invalid projection parameters") if (IS_INDEFD(latpole)) latp = 999.0d0 else latp = DDEGTORAD(latpole) } else { if (abs (slat0 / z) > 1.0d0) call error (0, "WF_AIT_INIT: Invalid projection parameters") u = atan2 (y, x) v = acos (slat0 / z) latp1 = u + v if (latp1 > DPI) latp1 = latp1 - DTWOPI else if (latp1 < -DPI) latp1 = latp1 + DTWOPI latp2 = u - v if (latp2 > DPI) latp2 = latp2 - DTWOPI else if (latp2 < -DPI) latp2 = latp2 + DTWOPI if (IS_INDEFD(latpole)) maxlat = 999.0d0 else maxlat = DDEGTORAD(latpole) if (abs (maxlat - latp1) < abs (maxlat - latp2)) { if (abs (latp1) < (DHALFPI + tol)) latp = latp1 else latp = latp2 } else { if (abs (latp2) < (DHALFPI + tol)) latp = latp2 else latp = latp1 } } FC_NATDEC(fc) = DHALFPI - latp z = cos (latp) * clat0 if (abs(z) < tol) { # Celestial pole at the reference point. if (abs(clat0) < tol) { FC_NATRA(fc) = DDEGTORAD(FC_W(fc,FC_IRA(fc))) FC_NATDEC(fc) = DHALFPI - theta0 # Celestial pole at the native north pole. } else if (latp > 0.0d0) { FC_NATRA(fc) = DDEGTORAD(FC_W(fc,FC_IRA(fc))) + FC_LONGP(fc) - DPI FC_NATDEC(fc) = 0.0d0 # Celestial pole at the native south pole. } else if (latp < 0.0d0) { FC_NATRA(fc) = DDEGTORAD(FC_W(fc,FC_IRA(fc))) - FC_LONGP(fc) FC_NATDEC(fc) = DPI } } else { x = (sthe0 - sin (latp) * slat0) / z y = sphip * cthe0 / clat0 if (x == 0.0d0 && y == 0.0d0) call error (0, "WF_AIT_INIT: Invalid projection parameters") FC_NATRA(fc) = DDEGTORAD(FC_W(fc,FC_IRA(fc))) - atan2 (y,x) } if (FC_W(fc,FC_IRA(fc)) >= 0.0d0) { if (FC_NATRA(fc) < 0.0d0) FC_NATRA(fc) = FC_NATRA(fc) + DTWOPI } else { if (FC_NATRA(fc) > 0.0d0) FC_NATRA(fc) = FC_NATRA(fc) - DTWOPI } FC_COSDEC(fc) = cos (FC_NATDEC(fc)) FC_SINDEC(fc) = sin (FC_NATDEC(fc)) # Check for ill-conditioned parameters. if (abs(latp) > (DHALFPI+tol)) call error (0, "WF_AIT_INIT: Invalid projection parameters") FC_C1(fc) = 2.0d0 * FC_RODEG(fc) * FC_RODEG(fc) FC_C2(fc) = 1.0d0 / (2.0d0 * FC_C1(fc)) FC_C3(fc) = FC_C2(fc) / 4.0d0 FC_C4(fc) = 1.0d0 / (2.0d0 * FC_RODEG(fc)) # Set the bad coordinate value. FC_SPHTOL(fc) = 1.0d-5 # Set the bad coordinate value. FC_BADCVAL(fc) = INDEFD # Free working space. call sfree (sp) end # WF_AIT_FWD -- Forward transform (physical to world) for the Hammer-Aitoff # projection. procedure wf_ait_fwd (fc, p, w) pointer fc #I pointer to FC descriptor double p[2] #I physical coordinates (x, y) double w[2] #O world coordinates (ra, dec) int ira, idec double x, y, u, z, s, xp, yp, phi, theta, costhe, sinthe, dphi, cosphi, sinphi double ra, dec, dlng begin # Get the axis numbers. ira = FC_IRA(fc) idec = FC_IDEC(fc) # Compute native spherical coordinates PHI and THETA in degrees from # the projected coordinates. This is the projection part of the # computation. x = p[ira] y = p[idec] # Compute PHI. u = 1.0d0 - x * x * FC_C3(fc) - y * y * FC_C2(fc) if (u < 0.0d0) { w[ira] = FC_BADCVAL(fc) w[idec] = FC_BADCVAL(fc) return } z = sqrt (u) s = z * y / FC_RODEG(fc) if (s < -1.0d0 || s > 1.0d0) { w[ira] = FC_BADCVAL(fc) w[idec] = FC_BADCVAL(fc) return } xp = 2.0d0 * z * z - 1.0d0 yp = z * x * FC_C4(fc) if (xp == 0.0d0 && yp == 0.0d0) phi = 0.0d0 else phi = 2.0d0 * atan2 (yp, xp) # Compute THETA. theta = asin (s) # Compute the celestial coordinates RA and DEC from the native # coordinates PHI and THETA. This is the spherical geometry part # of the computation. costhe = cos (theta) sinthe = sin (theta) dphi = phi - FC_LONGP(fc) cosphi = cos (dphi) sinphi = sin (dphi) # Compute the RA. x = sinthe * FC_SINDEC(fc) - costhe * FC_COSDEC(fc) * cosphi if (abs (x) < FC_SPHTOL(fc)) x = -cos (theta + FC_NATDEC(fc)) + costhe * FC_COSDEC(fc) * (1.0d0 - cosphi) y = -costhe * sinphi if (x != 0.0d0 || y != 0.0d0) { dlng = atan2 (y, x) } else { dlng = dphi + DPI } ra = DRADTODEG (FC_NATRA(fc) + dlng) # Normalize the RA. if (FC_NATRA(fc) >= 0.0d0) { if (ra < 0.0d0) ra = ra + 360.0d0 } else { if (ra > 0.0d0) ra = ra - 360.0d0 } if (ra > 360.0d0) ra = ra - 360.0d0 else if (ra < -360.0d0) ra = ra + 360.0d0 # Compute the DEC. if (mod (dphi, DPI) == 0.0d0) { dec = DRADTODEG(theta + cosphi * FC_NATDEC(fc)) if (dec > 90.0d0) dec = 180.0d0 - dec if (dec < -90.0d0) dec = -180.0d0 - dec } else { z = sinthe * FC_COSDEC(fc) + costhe * FC_SINDEC(fc) * cosphi if (abs(z) > 0.99d0) { if (z >= 0.0d0) dec = DRADTODEG(acos (sqrt(x * x + y * y))) else dec = DRADTODEG(-acos (sqrt(x * x + y * y))) } else dec = DRADTODEG(asin (z)) } # Store the results. w[ira] = ra w[idec] = dec end # WF_AIT_INV -- Inverse transform (world to physical) for the Hammer-Aitoff # projection. procedure wf_ait_inv (fc, w, p) pointer fc #I pointer to FC descriptor double w[2] #I input world (RA, DEC) coordinates double p[2] #I output physical coordinates int ira, idec double ra, dec, cosdec, sindec, cosra, sinra, x, y, phi, theta, costhe, wconst double dphi, z begin # Get the axes numbers. ira = FC_IRA(fc) idec = FC_IDEC(fc) # Compute the transformation from celestial coordinates RA and # DEC to native coordinates PHI and THETA. This is the spherical # geometry part of the transformation. ra = DDEGTORAD (w[ira]) - FC_NATRA(fc) dec = DDEGTORAD (w[idec]) cosra = cos (ra) sinra = sin (ra) cosdec = cos (dec) sindec = sin (dec) # Compute PHI. x = sindec * FC_SINDEC(fc) - cosdec * FC_COSDEC(fc) * cosra if (abs(x) < FC_SPHTOL(fc)) x = -cos (dec + FC_NATDEC(fc)) + cosdec * FC_COSDEC(fc) * (1.0d0 - cosra) y = -cosdec * sinra if (x != 0.0d0 || y != 0.0d0) dphi = atan2 (y, x) else dphi = ra - DPI phi = FC_LONGP(fc) + dphi if (phi > DPI) phi = phi - DTWOPI else if (phi < -DPI) phi = phi + DTWOPI # Compute THETA. if (mod (ra, DPI) == 0.0) { theta = dec + cosra * FC_NATDEC(fc) if (theta > DHALFPI) theta = DPI - theta if (theta < -DHALFPI) theta = -DPI - theta } else { z = sindec * FC_COSDEC(fc) + cosdec * FC_SINDEC(fc) * cosra if (abs (z) > 0.99d0) { if (z >= 0.0) theta = acos (sqrt(x * x + y * y)) else theta = -acos (sqrt(x * x + y * y)) } else theta = asin (z) } # Compute the transformation from native coordinates PHI and THETA # to projected coordinates X and Y. costhe = cos (theta) wconst = sqrt (FC_C1(fc) / (1.0d0 + costhe * cos (phi / 2.0d0))) p[ira] = 2.0d0 * wconst * costhe * sin (phi / 2.0d0) p[idec] = wconst * sin (theta) end sptable-1.0.pre20180612/src/mwcs/wfarc.x000066400000000000000000000101711331023215600174440ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include "mwcs.h" .help WFARC .nf ------------------------------------------------------------------------- WFARC -- WCS function driver for the arc projection. Driver routines: FN_INIT wf_arc_init (fc, dir) FN_DESTROY (none) FN_FWD wf_arc_fwd (fc, v1, v2) FN_INV wf_arc_inv (fc, v1, v2) .endhelp -------------------------------------------------------------------- # Driver specific fields of function call (FC) descriptor. define FC_IRA Memi[$1+FCU] # RA axis (1 or 2) define FC_IDEC Memi[$1+FCU+1] # DEC axis (1 or 2) define FC_COSDEC Memd[P2D($1+FCU+2)] # cosine(dec) define FC_SINDEC Memd[P2D($1+FCU+4)] # sine(dec) define FC_W Memd[P2D($1+FCU+6)+($2)-1] # W (CRVAL) for each axis # WF_ARC_INIT -- Initialize the arc forward or inverse transform. # Initialization for this transformation consists of determining which axis # is RA and which is DEC, and precomputing the sine and cosine of the # declination at the reference point. In order to determine the axis order, # the parameter "axtype={ra|dec}" must have been set in the attribute list # for the function. # NOTE: This is identical to wf_tan_init. procedure wf_arc_init (fc, dir) pointer fc #I pointer to FC descriptor int dir #I direction of transform int i double dec pointer ct, mw, wp, wv errchk wf_decaxis begin ct = FC_CT(fc) mw = CT_MW(ct) wp = FC_WCS(fc) # Determine which is the DEC axis, and hence the axis order. call wf_decaxis (fc, FC_IRA(fc), FC_IDEC(fc)) # Get the value of W for each axis, i.e., the world coordinate at # the reference point. wv = MI_DBUF(mw) + WCS_W(wp) - 1 do i = 1, 2 FC_W(fc,i) = Memd[wv+CT_AXIS(ct,FC_AXIS(fc,i))-1] # Precompute the sin and cos of the declination at the reference pixel. dec = DEGTORAD(FC_W(fc,FC_IDEC(fc))) FC_COSDEC(fc) = cos(dec) FC_SINDEC(fc) = sin(dec) end # WF_ARC_FWD -- Forward transform (physical to world), arc # projection. Based on code from STScI, Hodge et al. procedure wf_arc_fwd (fc, p, w) pointer fc #I pointer to FC descriptor double p[2] #I physical coordinates (xi, eta) double w[2] #O world coordinates (ra, dec) int ira, idec double xi, eta, x, y, z, ra, dec double theta # distance (radians) from ref pixel to object double v[3] # unit vector with v[1] pointing toward ref pixel begin ira = FC_IRA(fc) idec = FC_IDEC(fc) xi = DEGTORAD(p[ira]) eta = DEGTORAD(p[idec]) theta = sqrt (xi*xi + eta*eta) if (theta == 0.d0) { v[1] = 1.d0 v[2] = 0.d0 v[3] = 0.d0 } else { v[1] = cos (theta) v[2] = sin (theta) / theta * xi v[3] = sin (theta) / theta * eta } # Rotate the rectangular coordinate system of the vector v by the # declination so the X axis will pass through the equator. x = v[1] * FC_COSDEC(fc) - v[3] * FC_SINDEC(fc) y = v[2] z = v[1] * FC_SINDEC(fc) + v[3] * FC_COSDEC(fc) if (x == 0.d0 && y == 0.d0) ra = 0.d0 else ra = atan2 (y, x) dec = atan2 (z, sqrt (x*x + y*y)) # Return RA and DEC in degrees. dec = RADTODEG(dec) ra = RADTODEG(ra) + FC_W(fc,ira) if (ra < 0.d0) ra = ra + 360.D0 else if (ra > 360.D0) ra = ra - 360.D0 w[ira] = ra w[idec] = dec end # WF_ARC_INV -- Inverse transform (world to physical) for the arc # projection. Based on code from Eric Greisen, AIPS Memo No. 27. procedure wf_arc_inv (fc, w, p) pointer fc #I pointer to FC descriptor double w[2] #I input world (RA, DEC) coordinates double p[2] #O output physical coordinates int ira, idec double ra, dec, xi, eta double cosra, cosdec, sinra, sindec double theta # distance (radians) from ref pixel to object double r # theta / sin (theta) begin ira = FC_IRA(fc) idec = FC_IDEC(fc) ra = DEGTORAD (w[ira] - FC_W(fc,ira)) dec = DEGTORAD (w[idec]) cosra = cos (ra) sinra = sin (ra) cosdec = cos (dec) sindec = sin (dec) theta = acos (sindec * FC_SINDEC(fc) + cosdec * FC_COSDEC(fc) * cosra) if (theta == 0.d0) r = 1.d0 else r = theta / sin (theta) xi = r * cosdec * sinra eta = r * (sindec * FC_COSDEC(fc) - cosdec * FC_SINDEC(fc) * cosra) p[ira] = RADTODEG(xi) p[idec] = RADTODEG(eta) end sptable-1.0.pre20180612/src/mwcs/wfcar.x000066400000000000000000000326371331023215600174570ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include "mwcs.h" .help WFCAR .nf ------------------------------------------------------------------------- WFCAR -- WCS function driver for the cylindrical cartesian projection. Driver routines: FN_INIT wf_car_init (fc, dir) FN_DESTROY (none) FN_FWD wf_car_fwd (fc, v1, v2) FN_INV wf_car_inv (fc, v1, v2) .endhelp -------------------------------------------------------------------- # Driver specific fields of function call (FC) descriptor. define FC_IRA Memi[$1+FCU] # RA axis (1 or 2) define FC_IDEC Memi[$1+FCU+1] # DEC axis (1 or 2) define FC_NATRA Memd[P2D($1+FCU+2)] # RA of native pole (rads) define FC_NATDEC Memd[P2D($1+FCU+4)] # DEC of native pole (rads) define FC_LONGP Memd[P2D($1+FCU+6)] # LONGPOLE (rads) define FC_COSDEC Memd[P2D($1+FCU+8)] # cosine (NATDEC) define FC_SINDEC Memd[P2D($1+FCU+10)] # sine (NATDEC) define FC_SPHTOL Memd[P2D($1+FCU+12)] # trig tolerance define FC_RODEG Memd[P2D($1+FCU+14)] # RO (degs) define FC_RECRODEG Memd[P2D($1+FCU+16)] # 1.0 / RO define FC_BADCVAL Memd[P2D($1+FCU+18)] # bad coordinate value define FC_W Memd[P2D($1+FCU+20)+($2)-1] # CRVAL axis (1 and 2) # WF_CAR_INIT -- Initialize the cylindical cartesian forward or inverse # transform. Initialization for this transformation consists of, determining # which axis is RA / LON and which is DEC / LAT, reading in the the native # longitude and latitude of the pole in celestial coordinates LONGPOLE and # LATPOLE from the attribute list, computing the celestial longitude and # colatitude of the native pole, precomputing the Euler angles and various # intermediary functions derived from the reference point, and reading in the # projection parameter RO from the attribute list. If LONGPOLE is undefined # then a value of 180.0 degrees is assumed if the celestial latitude of the # reference point is less than 0, otherwise 0 is assumed. If LATPOLE is # undefined than the most northerly of the two possible solutions for the # latitude of the native pole is chosen, otherwise the solution closest to # LATPOLE is chosen. If RO is undefined a value of 180.0 / PI is assumed. # In order to determine the axis order, the parameter "axtype={ra|dec} # {xlon|xlat}" must have been set in the attribute list for the function. # The LONGPOLE, LATPOLE, and RO parameters may be set in either or both of # the axes attribute lists, but the value in the RA axis attribute list takes # precedence. procedure wf_car_init (fc, dir) pointer fc #I pointer to FC descriptor int dir #I direction of transform int i double dec, latpole, theta0, clat0, slat0, cphip, sphip, cthe0, sthe0, x, y, z double u, v, latp1, latp2, latp, maxlat, tol pointer sp, atvalue, ct, mw, wp, wv int ctod() data tol/1.0d-10/ errchk wf_decaxis(), mw_gwattrs() begin # Allocate space for the attribute string. call smark (sp) call salloc (atvalue, SZ_LINE, TY_CHAR) # Get the required mwcs pointers. ct = FC_CT(fc) mw = CT_MW(ct) wp = FC_WCS(fc) # Determine which is the DEC axis, and hence the axis order. call wf_decaxis (fc, FC_IRA(fc), FC_IDEC(fc)) # Get the value of W for each axis, i.e. the world coordinates at # the reference point. wv = MI_DBUF(mw) + WCS_W(wp) - 1 do i = 1, 2 FC_W(fc,i) = Memd[wv+CT_AXIS(ct,FC_AXIS(fc,i))-1] # Determine the native longitude and latitude of the pole of the # celestial coordinate system corresponding to the FITS keywords # LONGPOLE and LATPOLE. LONGPOLE has no default but will be set # to 180 or 0 depending on the value of the declination of the # reference point. LATPOLE has no default but will be set depending # on the values of LONGPOLE and the reference declination. iferr { call mw_gwattrs (mw, FC_IRA(fc), "longpole", Memc[atvalue], SZ_LINE) } then { iferr { call mw_gwattrs (mw, FC_IDEC(fc), "longpole", Memc[atvalue], SZ_LINE) } then { FC_LONGP(fc) = INDEFD } else { i = 1 if (ctod (Memc[atvalue], i, FC_LONGP(fc)) <= 0) FC_LONGP(fc) = INDEFD } } else { i = 1 if (ctod (Memc[atvalue], i, FC_LONGP(fc)) <= 0) FC_LONGP(fc) = INDEFD } iferr { call mw_gwattrs (mw, FC_IRA(fc), "latpole", Memc[atvalue], SZ_LINE) } then { iferr { call mw_gwattrs (mw, FC_IDEC(fc), "latpole", Memc[atvalue], SZ_LINE) } then { latpole = INDEFD } else { i = 1 if (ctod (Memc[atvalue], i, latpole) <= 0) latpole = INDEFD } } else { i = 1 if (ctod (Memc[atvalue], i, latpole) <= 0) latpole = INDEFD } # Fetch the RO projection parameter which is the radius of the # generating sphere for the projection. If RO is absent which # is the usual case set it to 180 / PI. Search both axes for # this quantity. iferr { call mw_gwattrs (mw, FC_IRA(fc), "ro", Memc[atvalue], SZ_LINE) } then { iferr { call mw_gwattrs (mw, FC_IDEC(fc), "ro", Memc[atvalue], SZ_LINE) } then { FC_RODEG(fc) = 180.0d0 / DPI } else { i = 1 if (ctod (Memc[atvalue], i, FC_RODEG(fc)) <= 0) FC_RODEG(fc) = 180.0d0 / DPI } } else { i = 1 if (ctod (Memc[atvalue], i, FC_RODEG(fc)) <= 0) FC_RODEG(fc) = 180.0d0 / DPI } # Compute the native longitude of the celestial pole. dec = DDEGTORAD(FC_W(fc,FC_IDEC(fc))) theta0 = 0.0d0 if (IS_INDEFD(FC_LONGP(fc))) { if (dec < theta0) FC_LONGP(fc) = DPI else FC_LONGP(fc) = 0.0d0 } else FC_LONGP(fc) = DDEGTORAD(FC_LONGP(fc)) # Compute the celestial longitude and latitude of the native pole. clat0 = cos (dec) slat0 = sin (dec) cphip = cos (FC_LONGP(fc)) sphip = sin (FC_LONGP(fc)) cthe0 = cos (theta0) sthe0 = sin (theta0) x = cthe0 * cphip y = sthe0 z = sqrt (x * x + y * y) # The latitude of the native pole is determined by LATPOLE in this # case. if (z == 0.0d0) { if (slat0 != 0.0d0) call error (0, "WF_CAR_INIT: Invalid projection parameters") if (IS_INDEFD(latpole)) latp = 999.0d0 else latp = DDEGTORAD(latpole) } else { if (abs (slat0 / z) > 1.0d0) call error (0, "WF_CAR_INIT: Invalid projection parameters") u = atan2 (y, x) v = acos (slat0 / z) latp1 = u + v if (latp1 > DPI) latp1 = latp1 - DTWOPI else if (latp1 < -DPI) latp1 = latp1 + DTWOPI latp2 = u - v if (latp2 > DPI) latp2 = latp2 - DTWOPI else if (latp2 < -DPI) latp2 = latp2 + DTWOPI if (IS_INDEFD(latpole)) maxlat = 999.0d0 else maxlat = DDEGTORAD(latpole) if (abs (maxlat - latp1) < abs (maxlat - latp2)) { if (abs (latp1) < (DHALFPI + tol)) latp = latp1 else latp = latp2 } else { if (abs (latp2) < (DHALFPI + tol)) latp = latp2 else latp = latp1 } } FC_NATDEC(fc) = DHALFPI - latp z = cos (latp) * clat0 if (abs(z) < tol) { # Celestial pole at the reference point. if (abs(clat0) < tol) { FC_NATRA(fc) = DDEGTORAD(FC_W(fc,FC_IRA(fc))) FC_NATDEC(fc) = DHALFPI - theta0 # Celestial pole at the native north pole. } else if (latp > 0.0d0) { FC_NATRA(fc) = DDEGTORAD(FC_W(fc,FC_IRA(fc))) + FC_LONGP(fc) - DPI FC_NATDEC(fc) = 0.0d0 # Celestial pole at the native south pole. } else if (latp < 0.0d0) { FC_NATRA(fc) = DDEGTORAD(FC_W(fc,FC_IRA(fc))) - FC_LONGP(fc) FC_NATDEC(fc) = DPI } } else { x = (sthe0 - sin (latp) * slat0) / z y = sphip * cthe0 / clat0 if (x == 0.0d0 && y == 0.0d0) call error (0, "WF_CAR_INIT: Invalid projection parameters") FC_NATRA(fc) = DDEGTORAD(FC_W(fc,FC_IRA(fc))) - atan2 (y,x) } if (FC_W(fc,FC_IRA(fc)) >= 0.0d0) { if (FC_NATRA(fc) < 0.0d0) FC_NATRA(fc) = FC_NATRA(fc) + DTWOPI } else { if (FC_NATRA(fc) > 0.0d0) FC_NATRA(fc) = FC_NATRA(fc) - DTWOPI } FC_COSDEC(fc) = cos (FC_NATDEC(fc)) FC_SINDEC(fc) = sin (FC_NATDEC(fc)) # Check for ill-conditioned parameters. if (abs(latp) > (DHALFPI+tol)) call error (0, "WF_CAR_INIT: Invalid projection parameters") # Compute the required intermediate quantities. FC_RECRODEG(fc) = 1.0d0 / FC_RODEG(fc) # Set the bad coordinate value. FC_SPHTOL(fc) = 1.0d-5 # Set the bad coordinate value. FC_BADCVAL(fc) = INDEFD # Free working space. call sfree (sp) end # WF_CAR_FWD -- Forward transform (physical to world) for the cartesian # projection. procedure wf_car_fwd (fc, p, w) pointer fc #I pointer to FC descriptor double p[2] #I physical coordinates (x, y) double w[2] #O world coordinates (ra, dec) int ira, idec double x, y, phi, theta, costhe, sinthe, dphi, cosphi, sinphi, ra, dec double dlng, z begin # Get the axis numbers. ira = FC_IRA(fc) idec = FC_IDEC(fc) # Compute native spherical coordinates PHI and THETA in degrees from # the projected coordinates. This is the projection part of the # computation. x = p[ira] y = p[idec] # Compute PHI. phi = FC_RECRODEG(fc) * x # Compute THETA. theta = FC_RECRODEG(fc) * y # Compute the celestial coordinates RA and DEC from the native # coordinates PHI and THETA. This is the spherical geometry part # of the computation. costhe = cos (theta) sinthe = sin (theta) dphi = phi - FC_LONGP(fc) cosphi = cos (dphi) sinphi = sin (dphi) # Compute the RA. x = sinthe * FC_SINDEC(fc) - costhe * FC_COSDEC(fc) * cosphi if (abs (x) < FC_SPHTOL(fc)) x = -cos (theta + FC_NATDEC(fc)) + costhe * FC_COSDEC(fc) * (1.0d0 - cosphi) y = -costhe * sinphi if (x != 0.0d0 || y != 0.0d0) { dlng = atan2 (y, x) } else { dlng = dphi + DPI } ra = DRADTODEG( FC_NATRA(fc) + dlng) # Normalize the RA. if (FC_NATRA(fc) >= 0.0d0) { if (ra < 0.0d0) ra = ra + 360.0d0 } else { if (ra > 0.0d0) ra = ra - 360.0d0 } if (ra > 360.0d0) ra = ra - 360.0d0 else if (ra < -360.0d0) ra = ra + 360.0d0 # Compute the DEC. if (mod (dphi, DPI) == 0.0d0) { dec = DRADTODEG(theta + cosphi * FC_NATDEC(fc)) if (dec > 90.0d0) dec = 180.0d0 - dec if (dec < -90.0d0) dec = -180.0d0 - dec } else { z = sinthe * FC_COSDEC(fc) + costhe * FC_SINDEC(fc) * cosphi if (abs(z) > 0.99d0) { if (z >= 0.0d0) dec = DRADTODEG(acos (sqrt(x * x + y * y))) else dec = DRADTODEG(-acos (sqrt(x * x + y * y))) } else dec = DRADTODEG(asin (z)) } # Store the results. w[ira] = ra w[idec] = dec end # WF_CAR_INV -- Inverse transform (world to physical) for the cartesian # projection. procedure wf_car_inv (fc, w, p) pointer fc #I pointer to FC descriptor double w[2] #I input world (RA, DEC) coordinates double p[2] #I output physical coordinates int ira, idec double ra, dec, cosdec, sindec, cosra, sinra, x, y, phi, theta, z, dphi begin # Get the axes numbers. ira = FC_IRA(fc) idec = FC_IDEC(fc) # Compute the transformation from celestial coordinates RA and # DEC to native coordinates PHI and THETA. This is the spherical # geometry part of the transformation. ra = DDEGTORAD (w[ira]) - FC_NATRA(fc) dec = DDEGTORAD (w[idec]) cosra = cos (ra) sinra = sin (ra) cosdec = cos (dec) sindec = sin (dec) # Compute PHI. x = sindec * FC_SINDEC(fc) - cosdec * FC_COSDEC(fc) * cosra if (abs(x) < FC_SPHTOL(fc)) x = -cos (dec + FC_NATDEC(fc)) + cosdec * FC_COSDEC(fc) * (1.0d0 - cosra) y = -cosdec * sinra if (x != 0.0d0 || y != 0.0d0) dphi = atan2 (y, x) else dphi = ra - DPI phi = FC_LONGP(fc) + dphi if (phi > DPI) phi = phi - DTWOPI else if (phi < -DPI) phi = phi + DTWOPI # Compute THETA. if (mod (ra, DPI) == 0.0) { theta = dec + cosra * FC_NATDEC(fc) if (theta > DHALFPI) theta = DPI - theta if (theta < -DHALFPI) theta = -DPI - theta } else { z = sindec * FC_COSDEC(fc) + cosdec * FC_SINDEC(fc) * cosra if (abs (z) > 0.99d0) { if (z >= 0.0) theta = acos (sqrt(x * x + y * y)) else theta = -acos (sqrt(x * x + y * y)) } else theta = asin (z) } # Compute the transformation from native coordinates PHI and THETA # to projected coordinates X and Y. p[ira] = FC_RODEG(fc) * phi p[idec] = FC_RODEG(fc) * theta end sptable-1.0.pre20180612/src/mwcs/wfcsc.x000066400000000000000000000437241331023215600174610ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include "mwcs.h" .help WFCSC .nf ------------------------------------------------------------------------- WFCSC -- WCS function driver for the COBE quadrilateratized cube projection. Driver routines: FN_INIT wf_csc_init (fc, dir) FN_DESTROY (none) FN_FWD wf_csc_fwd (fc, v1, v2) FN_INV wf_csc_inv (fc, v1, v2) .endhelp -------------------------------------------------------------------- # Driver specific fields of function call (FC) descriptor. define FC_IRA Memi[$1+FCU] # RA axis (1 or 2) define FC_IDEC Memi[$1+FCU+1] # DEC axis (1 or 2) define FC_NATRA Memd[P2D($1+FCU+2)] # RA of native pole (rads) define FC_NATDEC Memd[P2D($1+FCU+4)] # DEC of native pole (rads) define FC_LONGP Memd[P2D($1+FCU+6)] # LONGPOLE (rads) define FC_COSDEC Memd[P2D($1+FCU+8)] # cosine (NATDEC) define FC_SINDEC Memd[P2D($1+FCU+10)] # sine (NATDEC) define FC_SPHTOL Memd[P2D($1+FCU+12)] # trig tolerance define FC_RODEG Memd[P2D($1+FCU+14)] # RO (degs) define FC_C1 Memd[P2D($1+FCU+16)] # RO * (PI / 4) define FC_C2 Memd[P2D($1+FCU+18)] # (4 / PI) * RO define FC_BADCVAL Memd[P2D($1+FCU+20)] # bad coordinate value define FC_W Memd[P2D($1+FCU+22)+($2)-1] # CRVAL axis (1 and 2) # WF_CSC_INIT -- Initialize the forward or inverse Cobe quadrilateralized # forward or inverse transform. Initialization for this transformation consists # of, determining which axis is RA / LON and which is DEC / LAT, reading in the # native longitude and latitude of the pole in celestial coordinates LONGPOLE # and LATPOLE from the attribute list, computing the celestial longitude and # colatitude of the native pole, Euler angles and various intermediary # functions of the reference point reading in the projection parameter RO from # the attribute list, and precomputing the various required intermediate # quantities. If LONGPOLE is undefined then a value of 180.0 degrees is assumed # if the celestial latitude is less than 0, otherwise 0 degrees is assumed. # If RO is undefined a value of 180.0 / PI is assumed. In order to determine # the axis order, the parameter "axtype={ra|dec} {xlon|ylat}" must have been # set in the attribute list for the function. The LONGPOLE, LATPOLE and RO # parameters may be set in either or both of the axes attribute lists, but the # value in the RA axis attribute list takes precedence. procedure wf_csc_init (fc, dir) pointer fc #I pointer to FC descriptor int dir #I direction of transform int i double dec, latpole, theta0, clat0, slat0, cphip, sphip, cthe0, sthe0, x, y, z double u, v, latp1, latp2, latp, maxlat, tol pointer sp, atvalue, ct, mw, wp, wv int ctod() data tol/1.0d-10/ errchk wf_decaxis(), mw_gwattrs() begin # Allocate space for the attribute string. call smark (sp) call salloc (atvalue, SZ_LINE, TY_CHAR) # Get the required mwcs pointers. ct = FC_CT(fc) mw = CT_MW(ct) wp = FC_WCS(fc) # Determine which is the DEC axis, and hence the axis order. call wf_decaxis (fc, FC_IRA(fc), FC_IDEC(fc)) # Get the value of W for each axis, i.e. the world coordinates at # the reference point. wv = MI_DBUF(mw) + WCS_W(wp) - 1 do i = 1, 2 FC_W(fc,i) = Memd[wv+CT_AXIS(ct,FC_AXIS(fc,i))-1] # Determine the native longitude and latitude of the pole of the # celestial coordinate system corresponding to the FITS keywords # LONGPOLE and LATPOLE. LONGPOLE has no default but will be set # to 180 or 0 depending on the value of the declination of the # reference point. LATPOLE has no default but will be set depending # on the values of LONGPOLE and the reference declination. iferr { call mw_gwattrs (mw, FC_IRA(fc), "longpole", Memc[atvalue], SZ_LINE) } then { iferr { call mw_gwattrs (mw, FC_IDEC(fc), "longpole", Memc[atvalue], SZ_LINE) } then { FC_LONGP(fc) = INDEFD } else { i = 1 if (ctod (Memc[atvalue], i, FC_LONGP(fc)) <= 0) FC_LONGP(fc) = INDEFD } } else { i = 1 if (ctod (Memc[atvalue], i, FC_LONGP(fc)) <= 0) FC_LONGP(fc) = INDEFD } iferr { call mw_gwattrs (mw, FC_IRA(fc), "latpole", Memc[atvalue], SZ_LINE) } then { iferr { call mw_gwattrs (mw, FC_IDEC(fc), "latpole", Memc[atvalue], SZ_LINE) } then { latpole = INDEFD } else { i = 1 if (ctod (Memc[atvalue], i, latpole) <= 0) latpole = INDEFD } } else { i = 1 if (ctod (Memc[atvalue], i, latpole) <= 0) latpole = INDEFD } # Fetch the RO projection parameter which is the radius of the # generating sphere for the projection. If RO is absent which # is the usual case set it to 180 / PI. Search both axes for # this quantity. iferr { call mw_gwattrs (mw, FC_IRA(fc), "ro", Memc[atvalue], SZ_LINE) } then { iferr { call mw_gwattrs (mw, FC_IDEC(fc), "ro", Memc[atvalue], SZ_LINE) } then { FC_RODEG(fc) = 180.0d0 / DPI } else { i = 1 if (ctod (Memc[atvalue], i, FC_RODEG(fc)) <= 0) FC_RODEG(fc) = 180.0d0 / DPI } } else { i = 1 if (ctod (Memc[atvalue], i, FC_RODEG(fc)) <= 0) FC_RODEG(fc) = 180.0d0 / DPI } # Compute the native longitude of the celestial pole. dec = DDEGTORAD(FC_W(fc,FC_IDEC(fc))) theta0 = 0.0d0 if (IS_INDEFD(FC_LONGP(fc))) { if (dec < theta0) FC_LONGP(fc) = DPI else FC_LONGP(fc) = 0.0d0 } else FC_LONGP(fc) = DDEGTORAD(FC_LONGP(fc)) # Compute the celestial longitude and latitude of the native pole. clat0 = cos (dec) slat0 = sin (dec) cphip = cos (FC_LONGP(fc)) sphip = sin (FC_LONGP(fc)) cthe0 = cos (theta0) sthe0 = sin (theta0) x = cthe0 * cphip y = sthe0 z = sqrt (x * x + y * y) # The latitude of the native pole is determined by LATPOLE in this # case. if (z == 0.0d0) { if (slat0 != 0.0d0) call error (0, "WF_CSC_INIT: Invalid projection parameters") if (IS_INDEFD(latpole)) latp = 999.0d0 else latp = DDEGTORAD(latpole) } else { if (abs (slat0 / z) > 1.0d0) call error (0, "WF_CSC_INIT: Invalid projection parameters") u = atan2 (y, x) v = acos (slat0 / z) latp1 = u + v if (latp1 > DPI) latp1 = latp1 - DTWOPI else if (latp1 < -DPI) latp1 = latp1 + DTWOPI latp2 = u - v if (latp2 > DPI) latp2 = latp2 - DTWOPI else if (latp2 < -DPI) latp2 = latp2 + DTWOPI if (IS_INDEFD(latpole)) maxlat = 999.0d0 else maxlat = DDEGTORAD(latpole) if (abs (maxlat - latp1) < abs (maxlat - latp2)) { if (abs (latp1) < (DHALFPI + tol)) latp = latp1 else latp = latp2 } else { if (abs (latp2) < (DHALFPI + tol)) latp = latp2 else latp = latp1 } } FC_NATDEC(fc) = DHALFPI - latp z = cos (latp) * clat0 if (abs(z) < tol) { # Celestial pole at the reference point. if (abs(clat0) < tol) { FC_NATRA(fc) = DDEGTORAD(FC_W(fc,FC_IRA(fc))) FC_NATDEC(fc) = DHALFPI - theta0 # Celestial pole at the native north pole. } else if (latp > 0.0d0) { FC_NATRA(fc) = DDEGTORAD(FC_W(fc,FC_IRA(fc))) + FC_LONGP(fc) - DPI FC_NATDEC(fc) = 0.0d0 # Celestial pole at the native south pole. } else if (latp < 0.0d0) { FC_NATRA(fc) = DDEGTORAD(FC_W(fc,FC_IRA(fc))) - FC_LONGP(fc) FC_NATDEC(fc) = DPI } } else { x = (sthe0 - sin (latp) * slat0) / z y = sphip * cthe0 / clat0 if (x == 0.0d0 && y == 0.0d0) call error (0, "WF_CSC_INIT: Invalid projection parameters") FC_NATRA(fc) = DDEGTORAD(FC_W(fc,FC_IRA(fc))) - atan2 (y,x) } if (FC_W(fc,FC_IRA(fc)) >= 0.0d0) { if (FC_NATRA(fc) < 0.0d0) FC_NATRA(fc) = FC_NATRA(fc) + DTWOPI } else { if (FC_NATRA(fc) > 0.0d0) FC_NATRA(fc) = FC_NATRA(fc) - DTWOPI } FC_COSDEC(fc) = cos (FC_NATDEC(fc)) FC_SINDEC(fc) = sin (FC_NATDEC(fc)) # Check for ill-conditioned parameters. if (abs(latp) > (DHALFPI+tol)) call error (0, "WF_CSC_INIT: Invalid projection parameters") # Compute the required intermediate quantities. FC_C1(fc) = FC_RODEG(fc) * (DPI / 4.0d0) FC_C2(fc) = 1.0d0 / FC_C1(fc) # Set the bad coordinate value. FC_SPHTOL(fc) = 1.0d-5 # Set the bad coordinate value. FC_BADCVAL(fc) = INDEFD # Free working space. call sfree (sp) end # WF_CSC_FWD -- Forward transform (physical to world) for the COBE # quarilateralized spherical projection. procedure wf_csc_fwd (fc, p, w) pointer fc #I pointer to FC descriptor double p[2] #I physical coordinates (x, y) double w[2] #O world coordinates (ra, dec) int ira, idec, face double l, m, n, phi, theta, costhe, sinthe, dphi, cosphi, sinphi, x, y, z double ra, dec, dlng real a, b, xf, xx, yf, yy real p00, p01, p02, p03, p04, p05, p06, p10, p11, p12, p13, p14, p15, p20 real p21, p22, p23, p24, p30, p31, p32, p33, p40, p41, p42, p50, p51, p60 data p00/-.27292696/, p10/-.07629969/, p20/-.22797056/, p30/.54852384/ data p40/-.62930065/, p50/.25795794/, p60/.02584375/, p01/-.02819452/ data p11/-.01471565/, p21/.48051509/, p31/-1.74114454/, p41/1.71547508/ data p51/-.53022337/, p02/.27058160/, p12/-.56800938/, p22/.30803317/ data p32/.98938102/, p42/-.83180469/, p03/-.60441560/, p13/1.50880086/ data p23/-.93678576/, p33/.08693841/, p04/.93412077/, p14/-1.41601920/ data p24/.33887446/, p05/-.63915306/, p15/.52032238/, p06/.14381585/ begin # Get the axis numbers. ira = FC_IRA(fc) idec = FC_IDEC(fc) # Compute native spherical coordinates PHI and THETA in degrees from # the projected coordinates. This is the projection part of the # computation. xf = p[ira] * FC_C2(fc) yf = p[idec] * FC_C2(fc) if (xf > 5.0) { face = 4 xf = xf - 6.0 } else if (xf > 3.0) { face = 3 xf = xf - 4.0 } else if (xf > 1.0) { face = 2 xf = xf - 2.0 } else if (yf > 1.0) { face = 0 yf = yf - 2.0 } else if (yf < -1.0) { face = 5 yf = yf + 2.0 } else { face = 1 } xx = xf * xf yy = yf * yf a = (p00+xx*(p10+xx*(p20+xx*(p30+xx*(p40+xx*(p50+xx*(p60)))))) + yy*(p01+xx*(p11+xx*(p21+xx*(p31+xx*(p41+xx*(p51))))) + yy*(p02+xx*(p12+xx*(p22+xx*(p32+xx*(p42)))) + yy*(p03+xx*(p13+xx*(p23+xx*(p33))) + yy*(p04+xx*(p14+xx*(p24)) + yy*(p05+xx*(p15) + yy*(p06))))))) a = xf + xf * (1.0 - xx) * a b = (p00+yy*(p10+yy*(p20+yy*(p30+yy*(p40+yy*(p50+yy*(p60)))))) + xx*(p01+yy*(p11+yy*(p21+yy*(p31+yy*(p41+yy*(p51))))) + xx*(p02+yy*(p12+yy*(p22+yy*(p32+yy*(p42)))) + xx*(p03+yy*(p13+yy*(p23+yy*(p33))) + xx*(p04+yy*(p14+yy*(p24)) + xx*(p05+yy*(p15) + xx*(p06))))))) b = yf + yf * (1.0 - yy) * b switch (face) { case 0: n = 1.0d0 / sqrt (a * a + b * b + 1.0d0) l = a * n m = -b * n case 1: m = 1.0d0 / sqrt (a * a + b * b + 1.0d0) l = a * m n = b * m case 2: l = 1.0d0 / sqrt (a * a + b * b + 1.0d0) m = -a * l n = b * l case 3: m = -1.0d0 / sqrt (a * a + b * b + 1.0d0) l = a * m n = -b * m case 4: l = -1.0d0 / sqrt (a * a + b * b + 1.0d0) m = -a * l n = -b * l case 5: n = -1.0d0 / sqrt (a * a + b * b + 1.0d0) l = -a * n m = -b * n } # Compute PHI. if (l == 0.0d0 && m == 0.0d0) phi = 0.0d0 else phi = atan2 (l, m) # Compute THETA. theta = asin(n) # Compute the celestial coordinates RA and DEC from the native # coordinates PHI and THETA. This is the spherical geometry part # of the computation. costhe = cos (theta) sinthe = sin (theta) dphi = phi - FC_LONGP(fc) cosphi = cos (dphi) sinphi = sin (dphi) # Compute the RA. x = sinthe * FC_SINDEC(fc) - costhe * FC_COSDEC(fc) * cosphi if (abs (x) < FC_SPHTOL(fc)) x = -cos (theta + FC_NATDEC(fc)) + costhe * FC_COSDEC(fc) * (1.0d0 - cosphi) y = -costhe * sinphi if (x != 0.0d0 || y != 0.0d0) { dlng = atan2 (y, x) } else { dlng = dphi + DPI } ra = DRADTODEG(FC_NATRA(fc) + dlng) # Normalize the RA. if (FC_NATRA(fc) >= 0.0d0) { if (ra < 0.0d0) ra = ra + 360.0d0 } else { if (ra > 0.0d0) ra = ra - 360.0d0 } if (ra > 360.0d0) ra = ra - 360.0d0 else if (ra < -360.0d0) ra = ra + 360.0d0 # Compute the DEC. if (mod (dphi, DPI) == 0.0d0) { dec = DRADTODEG(theta + cosphi * FC_NATDEC(fc)) if (dec > 90.0d0) dec = 180.0d0 - dec if (dec < -90.0d0) dec = -180.0d0 - dec } else { z = sinthe * FC_COSDEC(fc) + costhe * FC_SINDEC(fc) * cosphi if (abs(z) > 0.99d0) { if (z >= 0.0d0) dec = DRADTODEG(acos (sqrt(x * x + y * y))) else dec = DRADTODEG(-acos (sqrt(x * x + y * y))) } else dec = DRADTODEG(asin (z)) } # Store the results. w[ira] = ra w[idec] = dec end # WF_CSC_INV -- Inverse transform (world to physical) for the COBE # quadilateralized spherical projection. procedure wf_csc_inv (fc, w, p) pointer fc #I pointer to FC descriptor double w[2] #I input world (RA, DEC) coordinates double p[2] #I output physical coordinates int ira, idec, face double ra, dec, cosdec, sindec, cosra, sinra, x, y, z, phi, theta, dphi double costhe, eta, l, m, n, rho, xi real tol, a, a2, a2b2, a4, b, b2, b4, ca2, cb2, x0, xf, y0, yf real c00, c10, c01, c11, c20, c02, d0, d1, mm, gamma, gstar, omega1 data gstar/1.37484847732/, mm/.004869491981/, gamma/-.13161671474/ data omega1/-.159596235474/, d0/.0759196200467/, d1/-.0217762490699/ data c00/.141189631152/, c10/.0809701286525/, c01/-.281528535557/ data c11/.15384112876/, c20/-.178251207466/, c02/.106959469314/ data tol /1.0e-7/ begin # Get the axes numbers. ira = FC_IRA(fc) idec = FC_IDEC(fc) # Compute the transformation from celestial coordinates RA and # DEC to native coordinates PHI and THETA. This is the spherical # geometry part of the transformation. ra = DDEGTORAD (w[ira]) - FC_NATRA(fc) dec = DDEGTORAD (w[idec]) cosra = cos (ra) sinra = sin (ra) cosdec = cos (dec) sindec = sin (dec) # Compute PHI. x = sindec * FC_SINDEC(fc) - cosdec * FC_COSDEC(fc) * cosra if (abs(x) < FC_SPHTOL(fc)) x = -cos (dec + FC_NATDEC(fc)) + cosdec * FC_COSDEC(fc) * (1.0d0 - cosra) y = -cosdec * sinra if (x != 0.0d0 || y != 0.0d0) dphi = atan2 (y, x) else dphi = ra - DPI phi = FC_LONGP(fc) + dphi if (phi > DPI) phi = phi - DTWOPI else if (phi < -DPI) phi = phi + DTWOPI # Compute THETA. if (mod (ra, DPI) == 0.0) { theta = dec + cosra * FC_NATDEC(fc) if (theta > DHALFPI) theta = DPI - theta if (theta < -DHALFPI) theta = -DPI - theta } else { z = sindec * FC_COSDEC(fc) + cosdec * FC_SINDEC(fc) * cosra if (abs (z) > 0.99d0) { if (z >= 0.0) theta = acos (sqrt(x * x + y * y)) else theta = -acos (sqrt(x * x + y * y)) } else theta = asin (z) } # Compute the transformation from native coordinates PHI and THETA # to projected coordinates X and Y. costhe = cos (theta) l = costhe * sin (phi) m = costhe * cos (phi) n = sin (theta) face = 0 rho = n if (m > rho) { face = 1 rho = m } if (l > rho) { face = 2 rho = l } if (-m > rho) { face = 3 rho = -m } if (-l > rho) { face = 4 rho = -l } if (-n > rho) { face = 5 rho = -n } switch (face) { case 0: xi = l eta = -m x0 = 0.0 y0 = 2.0 case 1: xi = l eta = n x0 = 0.0 y0 = 0.0 case 2: xi = -m eta = n x0 = 2.0 y0 = 0.0 case 3: xi = -l eta = n x0 = 4.0 y0 = 0.0 case 4: xi = m eta = n x0 = 6.0 y0 = 0.0 case 5: xi = l eta = m x0 = 0.0 y0 = -2.0 } a = xi / rho b = eta / rho a2 = a * a b2 = b * b a4 = a2 * a2 b4 = b2 * b2 a2b2 = a2 * b2 ca2 = 1.0 - a2 cb2 = 1.0 - b2 xf = a*(a2+ca2*(gstar+b2*(gamma*ca2+mm*a2 + cb2*(c00+c10*a2+c01*b2+c11*a2b2+c20*a4+c02*b4)) + a2*(omega1-ca2*(d0+d1*a2)))) yf = b*(b2+cb2*(gstar+a2*(gamma*cb2+mm*b2 + ca2*(c00+c10*b2+c01*a2+c11*a2b2+c20*b4+c02*a4)) + b2*(omega1-cb2*(d0+d1*b2)))) if (abs(xf) > 1.0) { if (abs(xf) > (1.0 + tol)) { p[ira] = FC_BADCVAL(fc) p[idec] = FC_BADCVAL(fc) return } if (xf >= 0.0) xf = 1.0 else xf = -1.0 } if (abs(yf) > 1.0) { if (abs(yf) > (1.0 + tol)) { p[ira] = FC_BADCVAL(fc) p[idec] = FC_BADCVAL(fc) return } if (yf >= 0.0) yf = 1.0 else yf = -1.0 } p[ira] = FC_C1(fc) * (x0 + xf) p[idec] = FC_C1(fc) * (y0 + yf) end sptable-1.0.pre20180612/src/mwcs/wfdecaxis.x000066400000000000000000000022341331023215600203200ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include "mwcs.h" # WF_DECAXIS -- Determine which of the 2 axes for the current function is # the DEC axis. procedure wf_decaxis (fc, ira, idec) pointer fc #I pointer to function call descriptor int ira, idec #O CTRAN relative RA, DEC axis numbers pointer ct, mw int ax[2], i char axtype[4] bool streq() begin ct = FC_CT(fc) mw = CT_MW(ct) # This function requires exactly 2 axes. if (FC_NAXES(fc) != 2) call error (1, "A projection WCS requires 2 axes") # Map FC axis (1 or 2) to CTRAN axis to physical axis. do i = 1, 2 ax[i] = CT_AXIS(ct,FC_AXIS(fc,i)) # Determine which is the DEC/LAT axis, and hence the axis order. ira = 0 idec = 0 do i = 1, 2 ifnoerr (call mw_gwattrs (mw, ax[i], "axtype", axtype, 4)) { call strlwr (axtype) if (streq (axtype, "ra") || streq (axtype[2], "lon")) { ira = i idec = 3 - i break } else if (streq (axtype, "dec") || streq (axtype[2], "lat")) { ira = 3 - i idec = i break } } if (idec == 0) call error (2, "DEC/xLAT axis must be specified for a projection WCS") end sptable-1.0.pre20180612/src/mwcs/wfgls.x000066400000000000000000000340021331023215600174630ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include "mwcs.h" .help WFGLS .nf ------------------------------------------------------------------------- WFGLS -- WCS function driver for the Sanson-Flamsteed sinusoidal projection. Driver routines: FN_INIT wf_gls_init (fc, dir) FN_DESTROY (none) FN_FWD wf_gls_fwd (fc, v1, v2) FN_INV wf_gls_inv (fc, v1, v2) .endhelp -------------------------------------------------------------------- # Driver specific fields of function call (FC) descriptor. define FC_IRA Memi[$1+FCU] # RA axis (1 or 2) define FC_IDEC Memi[$1+FCU+1] # DEC axis (1 or 2) define FC_NATRA Memd[P2D($1+FCU+2)] # RA of native pole (rads) define FC_NATDEC Memd[P2D($1+FCU+4)] # DEC of native pole (rads) define FC_LONGP Memd[P2D($1+FCU+6)] # LONGPOLE (rads) define FC_COSDEC Memd[P2D($1+FCU+8)] # cosine (NATDEC) define FC_SINDEC Memd[P2D($1+FCU+10)] # sine (NATDEC) define FC_SPHTOL Memd[P2D($1+FCU+12)] # trig tolerance define FC_RODEG Memd[P2D($1+FCU+14)] # RO (degs) define FC_RECRODEG Memd[P2D($1+FCU+16)] # 1 / RO (degs) define FC_BADCVAL Memd[P2D($1+FCU+18)] # bad coordinate value define FC_W Memd[P2D($1+FCU+20)+($2)-1] # CRVAL axis (1 and 2) # WF_GLS_INIT -- Initialize the forward or inverse Sanson-Flamsteed global # sinusoidal transform. Initialization for this transformation consists of, # determining which axis is RA / LON and which is DEC / LAT, reading in the # ative longitudend latitude of the pole in celestial coordinates LONGPOLE # and LATPOLE from the attribute list, computing the celestial longitude and # colatitude of the native pole, precomputing the Euler angles and various # intermediary functions of the reference point, reading in the projection # parameter RO from the attribute list, and precomputing the various required # intermediate quantities. If LONGPOLE is undefined then a value of 180.0 # degrees is assumed if the native latitude of the reference point is less # than 0, otherwise 0 degrees is assumed. If LATPOLE is undefined then the # most northerly of the two possible solutions for the latitude of the # native pole is chosen. If RO is undefined a value of 180.0 / PI is assumed. # In order to determine the axis order, the parameter "axtype={ra|dec} # {xlon|xlat}" must have been set in the attribute list for the function. # The LONGPOLE, LATPOLE, and RO parameters may be set in either or both of # the axes attribute lists, but the value in the RA axis attribute list # takes precedence. procedure wf_gls_init (fc, dir) pointer fc #I pointer to FC descriptor int dir #I direction of transform int i double dec, latpole, theta0, clat0, slat0, cphip, sphip, cthe0, sthe0, x, y, z double u, v, latp1, latp2, latp, maxlat, tol pointer sp, atvalue, ct, mw, wp, wv int ctod() data tol/1.0d-10/ errchk wf_decaxis(), mw_gwattrs() begin # Allocate space for the attribute string. call smark (sp) call salloc (atvalue, SZ_LINE, TY_CHAR) # Get the required mwcs pointers. ct = FC_CT(fc) mw = CT_MW(ct) wp = FC_WCS(fc) # Determine which is the DEC axis, and hence the axis order. call wf_decaxis (fc, FC_IRA(fc), FC_IDEC(fc)) # Get the value of W for each axis, i.e. the world coordinates at # the reference point. wv = MI_DBUF(mw) + WCS_W(wp) - 1 do i = 1, 2 FC_W(fc,i) = Memd[wv+CT_AXIS(ct,FC_AXIS(fc,i))-1] # Determine the native longitude and latitude of the pole of the # celestial coordinate system corresponding to the FITS keywords # LONGPOLE and LATPOLE. LONGPOLE has no default but will be set # to 180 or 0 depending on the value of the declination of the # reference point. LATPOLE has no default but will be set depending # on the values of LONGPOLE and the reference declination. iferr { call mw_gwattrs (mw, FC_IRA(fc), "longpole", Memc[atvalue], SZ_LINE) } then { iferr { call mw_gwattrs (mw, FC_IDEC(fc), "longpole", Memc[atvalue], SZ_LINE) } then { FC_LONGP(fc) = INDEFD } else { i = 1 if (ctod (Memc[atvalue], i, FC_LONGP(fc)) <= 0) FC_LONGP(fc) = INDEFD } } else { i = 1 if (ctod (Memc[atvalue], i, FC_LONGP(fc)) <= 0) FC_LONGP(fc) = INDEFD } iferr { call mw_gwattrs (mw, FC_IRA(fc), "latpole", Memc[atvalue], SZ_LINE) } then { iferr { call mw_gwattrs (mw, FC_IDEC(fc), "latpole", Memc[atvalue], SZ_LINE) } then { latpole = INDEFD } else { i = 1 if (ctod (Memc[atvalue], i, latpole) <= 0) latpole = INDEFD } } else { i = 1 if (ctod (Memc[atvalue], i, latpole) <= 0) latpole = INDEFD } # Fetch the RO projection parameter which is the radius of the # generating sphere for the projection. If RO is absent which # is the usual case set it to 180 / PI. Search both axes for # this quantity. iferr { call mw_gwattrs (mw, FC_IRA(fc), "ro", Memc[atvalue], SZ_LINE) } then { iferr { call mw_gwattrs (mw, FC_IDEC(fc), "ro", Memc[atvalue], SZ_LINE) } then { FC_RODEG(fc) = 180.0d0 / DPI } else { i = 1 if (ctod (Memc[atvalue], i, FC_RODEG(fc)) <= 0) FC_RODEG(fc) = 180.0d0 / DPI } } else { i = 1 if (ctod (Memc[atvalue], i, FC_RODEG(fc)) <= 0) FC_RODEG(fc) = 180.0d0 / DPI } # Compute the native longitude of the celestial pole. dec = DDEGTORAD(FC_W(fc,FC_IDEC(fc))) theta0 = 0.0d0 if (IS_INDEFD(FC_LONGP(fc))) { if (dec < theta0) FC_LONGP(fc) = DPI else FC_LONGP(fc) = 0.0d0 } else FC_LONGP(fc) = DDEGTORAD(FC_LONGP(fc)) # Compute the celestial longitude and latitude of the native pole. clat0 = cos (dec) slat0 = sin (dec) cphip = cos (FC_LONGP(fc)) sphip = sin (FC_LONGP(fc)) cthe0 = cos (theta0) sthe0 = sin (theta0) x = cthe0 * cphip y = sthe0 z = sqrt (x * x + y * y) # The latitude of the native pole is determined by LATPOLE in this # case. if (z == 0.0d0) { if (slat0 != 0.0d0) call error (0, "WF_GLS_INIT: Invalid projection parameters") if (IS_INDEFD(latpole)) latp = 999.0d0 else latp = DDEGTORAD(latpole) } else { if (abs (slat0 / z) > 1.0d0) call error (0, "WF_GLS_INIT: Invalid projection parameters") u = atan2 (y, x) v = acos (slat0 / z) latp1 = u + v if (latp1 > DPI) latp1 = latp1 - DTWOPI else if (latp1 < -DPI) latp1 = latp1 + DTWOPI latp2 = u - v if (latp2 > DPI) latp2 = latp2 - DTWOPI else if (latp2 < -DPI) latp2 = latp2 + DTWOPI if (IS_INDEFD(latpole)) maxlat = 999.0d0 else maxlat = DDEGTORAD(latpole) if (abs (maxlat - latp1) < abs (maxlat - latp2)) { if (abs (latp1) < (DHALFPI + tol)) latp = latp1 else latp = latp2 } else { if (abs (latp2) < (DHALFPI + tol)) latp = latp2 else latp = latp1 } } FC_NATDEC(fc) = DHALFPI - latp z = cos (latp) * clat0 if (abs(z) < tol) { # Celestial pole at the reference point. if (abs(clat0) < tol) { FC_NATRA(fc) = DDEGTORAD(FC_W(fc,FC_IRA(fc))) FC_NATDEC(fc) = DHALFPI - theta0 # Celestial pole at the native north pole. } else if (latp > 0.0d0) { FC_NATRA(fc) = DDEGTORAD(FC_W(fc,FC_IRA(fc))) + FC_LONGP(fc) - DPI FC_NATDEC(fc) = 0.0d0 # Celestial pole at the native south pole. } else if (latp < 0.0d0) { FC_NATRA(fc) = DDEGTORAD(FC_W(fc,FC_IRA(fc))) - FC_LONGP(fc) FC_NATDEC(fc) = DPI } } else { x = (sthe0 - sin (latp) * slat0) / z y = sphip * cthe0 / clat0 if (x == 0.0d0 && y == 0.0d0) call error (0, "WF_GLS_INIT: Invalid projection parameters") FC_NATRA(fc) = DDEGTORAD(FC_W(fc,FC_IRA(fc))) - atan2 (y,x) } if (FC_W(fc,FC_IRA(fc)) >= 0.0d0) { if (FC_NATRA(fc) < 0.0d0) FC_NATRA(fc) = FC_NATRA(fc) + DTWOPI } else { if (FC_NATRA(fc) > 0.0d0) FC_NATRA(fc) = FC_NATRA(fc) - DTWOPI } FC_COSDEC(fc) = cos (FC_NATDEC(fc)) FC_SINDEC(fc) = sin (FC_NATDEC(fc)) # Check for ill-conditioned parameters. if (abs(latp) > (DHALFPI+tol)) call error (0, "WF_GLS_INIT: Invalid projection parameters") # Compute the required intermediate quantities. FC_RECRODEG(fc) = 1.0d0 / FC_RODEG(fc) # Set the bad coordinate value. FC_SPHTOL(fc) = 1.0d-5 # Set the bad coordinate value. FC_BADCVAL(fc) = INDEFD # Free working space. call sfree (sp) end # WF_GLS_FWD -- Forward transform (physical to world) for the Sanson-Flamsteed # global sinusoidal projection. procedure wf_gls_fwd (fc, p, w) pointer fc #I pointer to FC descriptor double p[2] #I physical coordinates (x, y) double w[2] #O world coordinates (ra, dec) int ira, idec double x, y, wconst, phi, theta, costhe, sinthe, dphi, cosphi, sinphi double ra, dec, dlng, z begin # Get the axis numbers. ira = FC_IRA(fc) idec = FC_IDEC(fc) # Compute native spherical coordinates PHI and THETA in degrees from # the projected coordinates. This is the projection part of the # computation. x = p[ira] y = p[idec] # Compute PHI wconst = cos (y * FC_RECRODEG(fc)) if (wconst == 0.0d0) phi = 0.0d0 else phi = x * FC_RECRODEG(fc) / wconst # Compute THETA. theta = y * FC_RECRODEG(fc) # Compute the celestial coordinates RA and DEC from the native # coordinates PHI and THETA. This is the spherical geometry part # of the computation. costhe = cos (theta) sinthe = sin (theta) dphi = phi - FC_LONGP(fc) cosphi = cos (dphi) sinphi = sin (dphi) # Compute the RA. x = sinthe * FC_SINDEC(fc) - costhe * FC_COSDEC(fc) * cosphi if (abs (x) < FC_SPHTOL(fc)) x = -cos (theta + FC_NATDEC(fc)) + costhe * FC_COSDEC(fc) * (1.0d0 - cosphi) y = -costhe * sinphi if (x != 0.0d0 || y != 0.0d0) { dlng = atan2 (y, x) } else { dlng = dphi + DPI } ra = DRADTODEG(FC_NATRA(fc) + dlng) # Normalize the RA. if (FC_NATRA(fc) >= 0.0d0) { if (ra < 0.0d0) ra = ra + 360.0d0 } else { if (ra > 0.0d0) ra = ra - 360.0d0 } if (ra > 360.0d0) ra = ra - 360.0d0 else if (ra < -360.0d0) ra = ra + 360.0d0 # Compute the DEC. if (mod (dphi, DPI) == 0.0d0) { dec = DRADTODEG(theta + cosphi * FC_NATDEC(fc)) if (dec > 90.0d0) dec = 180.0d0 - dec if (dec < -90.0d0) dec = -180.0d0 - dec } else { z = sinthe * FC_COSDEC(fc) + costhe * FC_SINDEC(fc) * cosphi if (abs(z) > 0.99d0) { if (z >= 0.0d0) dec = DRADTODEG(acos (sqrt(x * x + y * y))) else dec = DRADTODEG(-acos (sqrt(x * x + y * y))) } else dec = DRADTODEG(asin (z)) } # Store the results. w[ira] = ra w[idec] = dec end # WF_GLS_INV -- Inverse transform (world to physical) for the Sanson-Flamsteed # global sinusoidal projection. procedure wf_gls_inv (fc, w, p) pointer fc #I pointer to FC descriptor double w[2] #I input world (RA, DEC) coordinates double p[2] #I output physical coordinates int ira, idec double ra, dec, cosdec, sindec, cosra, sinra, x, y, z, phi, theta, dphi begin # Get the axes numbers. ira = FC_IRA(fc) idec = FC_IDEC(fc) # Compute the transformation from celestial coordinates RA and # DEC to native coordinates PHI and THETA. This is the spherical # geometry part of the transformation. ra = DDEGTORAD (w[ira]) - FC_NATRA(fc) dec = DDEGTORAD (w[idec]) cosra = cos (ra) sinra = sin (ra) cosdec = cos (dec) sindec = sin (dec) # Compute PHI. x = sindec * FC_SINDEC(fc) - cosdec * FC_COSDEC(fc) * cosra if (abs(x) < FC_SPHTOL(fc)) x = -cos (dec + FC_NATDEC(fc)) + cosdec * FC_COSDEC(fc) * (1.0d0 - cosra) y = -cosdec * sinra if (x != 0.0d0 || y != 0.0d0) dphi = atan2 (y, x) else dphi = ra - DPI phi = FC_LONGP(fc) + dphi if (phi > DPI) phi = phi - DTWOPI else if (phi < -DPI) phi = phi + DTWOPI # Compute THETA. if (mod (ra, DPI) == 0.0) { theta = dec + cosra * FC_NATDEC(fc) if (theta > DHALFPI) theta = DPI - theta if (theta < -DHALFPI) theta = -DPI - theta } else { z = sindec * FC_COSDEC(fc) + cosdec * FC_SINDEC(fc) * cosra if (abs (z) > 0.99d0) { if (z >= 0.0) theta = acos (sqrt(x * x + y * y)) else theta = -acos (sqrt(x * x + y * y)) } else theta = asin (z) } # Compute the transformation from native coordinates PHI and THETA # to projected coordinates X and Y. p[ira] = FC_RODEG(fc) * phi * cos (theta) p[idec] = FC_RODEG(fc) * theta end sptable-1.0.pre20180612/src/mwcs/wfgsurfit.x000066400000000000000000000415441331023215600203720ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. # WFGSURFIT.X -- Surface fitting package used by WCS function drivers. # # The following routines are used by the experimental function drivers tnx # and zpx to decode polynomial fits stored in the image header in the form # of a list of parameters and coefficients into surface descriptors in # ra / dec or longitude latitude. The polynomial surfaces so encoded consist # of corrections to function drivers tan and zpn. The package routines are # modelled after the equivalent gsurfit routines and are consistent with them. # The routines are: # # sf = wf_gsopen (wattstr) # wf_gsclose (sf) # # z = wf_gseval (sf, x, y) # wf_gscoeff (sf, coeff, ncoeff) # zder = wf_gsder (sf, x, y, nxder, nyder) # # WF_GSOPEN is used to open a surface fit encoded in a WCS attribute, returning # the SF surface fitting descriptor. wf_gsclose should be called later to free # the descriptor. WF_GSEVAL is called to evaluate the surface at a point. define SZ_GSCOEFFBUF 20 # Define the surface descriptor. define LEN_WFGSSTRUCT 20 define WF_XRANGE Memd[P2D($1)] # 2. / (xmax - xmin), polynomials define WF_XMAXMIN Memd[P2D($1+2)] # - (xmax + xmin) / 2., polynomials define WF_YRANGE Memd[P2D($1+4)] # 2. / (ymax - ymin), polynomials define WF_YMAXMIN Memd[P2D($1+6)] # - (ymax + ymin) / 2., polynomials define WF_TYPE Memi[$1+8] # Type of curve to be fitted define WF_XORDER Memi[$1+9] # Order of the fit in x define WF_YORDER Memi[$1+10] # Order of the fit in y define WF_XTERMS Memi[$1+11] # Cross terms for polynomials define WF_NCOEFF Memi[$1+12] # Total number of coefficients define WF_COEFF Memi[$1+13] # Pointer to coefficient vector define WF_XBASIS Memi[$1+14] # Pointer to basis functions (all x) define WF_YBASIS Memi[$1+15] # Pointer to basis functions (all y) # Define the structure elements for the wf_gsrestore task. define WF_SAVETYPE $1[1] define WF_SAVEXORDER $1[2] define WF_SAVEYORDER $1[3] define WF_SAVEXTERMS $1[4] define WF_SAVEXMIN $1[5] define WF_SAVEXMAX $1[6] define WF_SAVEYMIN $1[7] define WF_SAVEYMAX $1[8] # Define the permitted types of surfaces. define WF_CHEBYSHEV 1 define WF_LEGENDRE 2 define WF_POLYNOMIAL 3 # Define the cross-terms flags. define WF_XNONE 0 # no x-terms (old NO) define WF_XFULL 1 # full x-terms (new YES) define WF_XHALF 2 # half x-terms (new) define WF_SAVECOEFF 8 # WF_GSOPEN -- Decode the longitude / latitude or ra / dec mwcs attribute # and return a gsurfit compatible surface descriptor. pointer procedure wf_gsopen (atstr) char atstr[ARB] #I the input mwcs attribute string double dval int ip, npar, szcoeff pointer gs, sp, par, coeff int nscan(), ctod() errchk wf_gsrestore() begin if (atstr[1] == EOS) return (NULL) call smark (sp) call salloc (par, SZ_LINE, TY_CHAR) gs = NULL npar = 0 szcoeff = SZ_GSCOEFFBUF call malloc (coeff, szcoeff, TY_DOUBLE) call sscan (atstr) repeat { call gargwrd (Memc[par], SZ_LINE) if (nscan() == npar) break if (Memc[par] == EOS) break ip = 1 if (ctod (Memc[par], ip, dval) <= 0) break if (npar >= szcoeff) { szcoeff =szcoeff + SZ_GSCOEFFBUF call realloc (coeff, szcoeff, TY_DOUBLE) } Memd[coeff+npar] = dval npar = npar + 1 } iferr (call wf_gsrestore (gs, Memd[coeff])) gs = NULL call sfree (sp) call mfree (coeff, TY_DOUBLE) if (npar == 0) return (NULL) else return (gs) end # WF_GSCLOSE -- Procedure to free the surface descriptor. procedure wf_gsclose (sf) pointer sf #U the surface descriptor errchk mfree begin if (sf == NULL) return if (WF_XBASIS(sf) != NULL) call mfree (WF_XBASIS(sf), TY_DOUBLE) if (WF_YBASIS(sf) != NULL) call mfree (WF_YBASIS(sf), TY_DOUBLE) if (WF_COEFF(sf) != NULL) call mfree (WF_COEFF(sf), TY_DOUBLE) if (sf != NULL) call mfree (sf, TY_STRUCT) end # WF_GSEVAL -- Procedure to evaluate the fitted surface at a single point. # The WF_NCOEFF(sf) coefficients are stored in the vector pointed to by # WF_COEFF(sf). double procedure wf_gseval (sf, x, y) pointer sf #I pointer to surface descriptor structure double x #I x value double y #I y value double sum, accum int i, ii, k, maxorder, xorder begin # Calculate the basis functions. switch (WF_TYPE(sf)) { case WF_CHEBYSHEV: call wf_gsb1cheb (x, WF_XORDER(sf), WF_XMAXMIN(sf), WF_XRANGE(sf), Memd[WF_XBASIS(sf)]) call wf_gsb1cheb (y, WF_YORDER(sf), WF_YMAXMIN(sf), WF_YRANGE(sf), Memd[WF_YBASIS(sf)]) case WF_LEGENDRE: call wf_gsb1leg (x, WF_XORDER(sf), WF_XMAXMIN(sf), WF_XRANGE(sf), Memd[WF_XBASIS(sf)]) call wf_gsb1leg (y, WF_YORDER(sf), WF_YMAXMIN(sf), WF_YRANGE(sf), Memd[WF_YBASIS(sf)]) case WF_POLYNOMIAL: call wf_gsb1pol (x, WF_XORDER(sf), WF_XMAXMIN(sf), WF_XRANGE(sf), Memd[WF_XBASIS(sf)]) call wf_gsb1pol (y, WF_YORDER(sf), WF_YMAXMIN(sf), WF_YRANGE(sf), Memd[WF_YBASIS(sf)]) default: call error (0, "WF_GSEVAL: Unknown surface type.") } # Initialize accumulator basis functions. sum = 0. # Loop over y basis functions. maxorder = max (WF_XORDER(sf) + 1, WF_YORDER(sf) + 1) xorder = WF_XORDER(sf) ii = 1 do i = 1, WF_YORDER(sf) { # Loop over the x basis functions. accum = 0. do k = 1, xorder { accum = accum + Memd[WF_COEFF(sf)+ii-1] * Memd[WF_XBASIS(sf)+k-1) ii = ii + 1 } accum = accum * Memd[WF_YBASIS(sf)+i-1] sum = sum + accum # Elements of the coefficient vector where neither k = 1 or i = 1 # are not calculated if WF_XTERMS(sf) = NO. switch (WF_XTERMS(sf)) { case WF_XNONE: xorder = 1 case WF_XHALF: if ((i + WF_XORDER(sf) + 1) > maxorder) xorder = xorder - 1 default: ; } } return (sum) end # WF_GSCOEFF -- Procedure to fetch the number and magnitude of the coefficients. # If the WF_XTERMS(sf) = WF_XBI (YES) then the number of coefficients will be # (WF_XORDER(sf) * WF_YORDER(sf)); if WF_XTERMS is WF_XTRI then the number # of coefficients will be (WF_XORDER(sf) * WF_YORDER(sf) - order * # (order - 1) / 2) where order is the minimum of the x and yorders; if # WF_XTERMS(sf) = WF_XNONE then the number of coefficients will be # (WF_XORDER(sf) + WF_YORDER(sf) - 1). procedure wf_gscoeff (sf, coeff, ncoeff) pointer sf #I pointer to the surface fitting descriptor double coeff[ARB] #O the coefficients of the fit int ncoeff #O the number of coefficients begin # Calculate the number of coefficients. ncoeff = WF_NCOEFF(sf) call amovd (Memd[WF_COEFF(sf)], coeff, ncoeff) end # WF_GSDER -- Procedure to calculate a new surface which is a derivative of # the input surface. double procedure wf_gsder (sf1, x, y, nxd, nyd) pointer sf1 #I pointer to the previous surface double x #I x values double y #I y values int nxd, nyd #I order of the derivatives in x and y int ncoeff, nxder, nyder, i, j, k int order, maxorder1, maxorder2, nmove1, nmove2 pointer sf2, sp, coeff, ptr1, ptr2 double zfit, norm double wf_gseval() begin if (sf1 == NULL) return (0) if (nxd < 0 || nyd < 0) call error (0, "GSDER: Order of derivatives cannot be < 0") if (nxd == 0 && nyd == 0) { zfit = wf_gseval (sf1, x, y) return (zfit) } # Allocate space for new surface. call calloc (sf2, LEN_WFGSSTRUCT, TY_STRUCT) # check the order of the derivatives nxder = min (nxd, WF_XORDER(sf1) - 1) nyder = min (nyd, WF_YORDER(sf1) - 1) # Set up new surface. WF_TYPE(sf2) = WF_TYPE(sf1) # Set the derivative surface parameters. switch (WF_TYPE(sf2)) { case WF_LEGENDRE, WF_CHEBYSHEV, WF_POLYNOMIAL: WF_XTERMS(sf2) = WF_XTERMS(sf1) # Find the order of the new surface. switch (WF_XTERMS(sf2)) { case WF_XNONE: if (nxder > 0 && nyder > 0) { WF_XORDER(sf2) = 1 WF_YORDER(sf2) = 1 WF_NCOEFF(sf2) = 1 } else if (nxder > 0) { WF_XORDER(sf2) = max (1, WF_XORDER(sf1) - nxder) WF_YORDER(sf2) = 1 WF_NCOEFF(sf2) = WF_XORDER(sf2) } else if (nyder > 0) { WF_XORDER(sf2) = 1 WF_YORDER(sf2) = max (1, WF_YORDER(sf1) - nyder) WF_NCOEFF(sf2) = WF_YORDER(sf2) } case WF_XHALF: maxorder1 = max (WF_XORDER(sf1) + 1, WF_YORDER(sf1) + 1) order = max (1, min (maxorder1 - 1 - nyder - nxder, WF_XORDER(sf1) - nxder)) WF_XORDER(sf2) = order order = max (1, min (maxorder1 - 1 - nyder - nxder, WF_YORDER(sf1) - nyder)) WF_YORDER(sf2) = order order = min (WF_XORDER(sf2), WF_YORDER(sf2)) WF_NCOEFF(sf2) = WF_XORDER(sf2) * WF_YORDER(sf2) - order * (order - 1) / 2 default: WF_XORDER(sf2) = max (1, WF_XORDER(sf1) - nxder) WF_YORDER(sf2) = max (1, WF_YORDER(sf1) - nyder) WF_NCOEFF(sf2) = WF_XORDER(sf2) * WF_YORDER(sf2) } # Define the data limits. WF_XRANGE(sf2) = WF_XRANGE(sf1) WF_XMAXMIN(sf2) = WF_XMAXMIN(sf1) WF_YRANGE(sf2) = WF_YRANGE(sf1) WF_YMAXMIN(sf2) = WF_YMAXMIN(sf1) default: call error (0, "WF_GSDER: Unknown surface type.") } # Allocate space for coefficients and basis functions. call calloc (WF_COEFF(sf2), WF_NCOEFF(sf2), TY_DOUBLE) call calloc (WF_XBASIS(sf2), WF_XORDER(sf2), TY_DOUBLE) call calloc (WF_YBASIS(sf2), WF_YORDER(sf2), TY_DOUBLE) # Get coefficients. call smark (sp) call salloc (coeff, WF_NCOEFF(sf1), TY_DOUBLE) call wf_gscoeff (sf1, Memd[coeff], ncoeff) # Compute the new coefficients. switch (WF_XTERMS(sf2)) { case WF_XFULL: ptr2 = WF_COEFF(sf2) + (WF_YORDER(sf2) - 1) * WF_XORDER(sf2) ptr1 = coeff + (WF_YORDER(sf1) - 1) * WF_XORDER(sf1) do i = WF_YORDER(sf1), nyder + 1, -1 { do j = i, i - nyder + 1, -1 call amulkd (Memd[ptr1+nxder], double (j - 1), Memd[ptr1+nxder], WF_XORDER(sf2)) do j = WF_XORDER(sf1), nxder + 1, - 1 { do k = j , j - nxder + 1, - 1 Memd[ptr1+j-1] = Memd[ptr1+j-1] * (k - 1) } call amovd (Memd[ptr1+nxder], Memd[ptr2], WF_XORDER(sf2)) ptr2 = ptr2 - WF_XORDER(sf2) ptr1 = ptr1 - WF_XORDER(sf1) } case WF_XHALF: maxorder1 = max (WF_XORDER(sf1) + 1, WF_YORDER(sf1) + 1) maxorder2 = max (WF_XORDER(sf2) + 1, WF_YORDER(sf2) + 1) ptr2 = WF_COEFF(sf2) + WF_NCOEFF(sf2) ptr1 = coeff + WF_NCOEFF(sf1) do i = WF_YORDER(sf1), nyder + 1, -1 { nmove1 = max (0, min (maxorder1 - i, WF_XORDER(sf1))) nmove2 = max (0, min (maxorder2 - i + nyder, WF_XORDER(sf2))) ptr1 = ptr1 - nmove1 ptr2 = ptr2 - nmove2 do j = i, i - nyder + 1, -1 call amulkd (Memd[ptr1+nxder], double (j - 1), Memd[ptr1+nxder], nmove2) do j = nmove1, nxder + 1, - 1 { do k = j , j - nxder + 1, - 1 Memd[ptr1+j-1] = Memd[ptr1+j-1] * (k - 1) } call amovd (Memd[ptr1+nxder], Memd[ptr2], nmove2) } default: if (nxder > 0 && nyder > 0) { Memd[WF_COEFF(sf2)] = 0. } else if (nxder > 0) { ptr1 = coeff ptr2 = WF_COEFF(sf2) + WF_NCOEFF(sf2) - 1 do j = WF_XORDER(sf1), nxder + 1, -1 { do k = j, j - nxder + 1, -1 Memd[ptr1+j-1] = Memd[ptr1+j-1] * (k - 1) Memd[ptr2] = Memd[ptr1+j-1] ptr2 = ptr2 - 1 } } else if (nyder > 0) { ptr1 = coeff + WF_NCOEFF(sf1) - 1 ptr2 = WF_COEFF(sf2) do i = WF_YORDER(sf1), nyder + 1, -1 { do j = i, i - nyder + 1, - 1 Memd[ptr1] = Memd[ptr1] * (j - 1) ptr1 = ptr1 - 1 } call amovd (Memd[ptr1+1], Memd[ptr2], WF_NCOEFF(sf2)) } } # Evaluate the derivatives. zfit = wf_gseval (sf2, x, y) # Normalize. if (WF_TYPE(sf2) != WF_POLYNOMIAL) { norm = WF_XRANGE(sf2) ** nxder * WF_YRANGE(sf2) ** nyder zfit = norm * zfit } # Free the space. call wf_gsclose (sf2) call sfree (sp) return (zfit) end # WF_GSRESTORE -- Procedure to restore the surface fit encoded in the # image header as a list of double precision parameters and coefficients # to the surface descriptor for use by the evaluating routines. The # surface parameters, surface type, xorder (or number of polynomial # terms in x), yorder (or number of polynomial terms in y), xterms, # xmin, xmax and ymin and ymax, are stored in the first eight elements # of the double array fit, followed by the WF_NCOEFF(sf) surface coefficients. procedure wf_gsrestore (sf, fit) pointer sf #O surface descriptor double fit[ARB] #I array containing the surface parameters and #I coefficients int surface_type, xorder, yorder, order double xmin, xmax, ymin, ymax begin # Allocate space for the surface descriptor. call calloc (sf, LEN_WFGSSTRUCT, TY_STRUCT) xorder = nint (WF_SAVEXORDER(fit)) if (xorder < 1) call error (0, "WF_GSRESTORE: Illegal x order.") yorder = nint (WF_SAVEYORDER(fit)) if (yorder < 1) call error (0, "WF_GSRESTORE: Illegal y order.") xmin = WF_SAVEXMIN(fit) xmax = WF_SAVEXMAX(fit) if (xmax <= xmin) call error (0, "WF_GSRESTORE: Illegal x range.") ymin = WF_SAVEYMIN(fit) ymax = WF_SAVEYMAX(fit) if (ymax <= ymin) call error (0, "WF_GSRESTORE: Illegal y range.") # Set surface type dependent surface descriptor parameters. surface_type = nint (WF_SAVETYPE(fit)) switch (surface_type) { case WF_LEGENDRE, WF_CHEBYSHEV, WF_POLYNOMIAL: WF_XORDER(sf) = xorder WF_XRANGE(sf) = double(2.0) / (xmax - xmin) WF_XMAXMIN(sf) = - (xmax + xmin) / double(2.0) WF_YORDER(sf) = yorder WF_YRANGE(sf) = double(2.0) / (ymax - ymin) WF_YMAXMIN(sf) = - (ymax + ymin) / double(2.0) WF_XTERMS(sf) = WF_SAVEXTERMS(fit) switch (WF_XTERMS(sf)) { case WF_XNONE: WF_NCOEFF(sf) = WF_XORDER(sf) + WF_YORDER(sf) - 1 case WF_XHALF: order = min (xorder, yorder) WF_NCOEFF(sf) = WF_XORDER(sf) * WF_YORDER(sf) - order * (order - 1) / 2 case WF_XFULL: WF_NCOEFF(sf) = WF_XORDER(sf) * WF_YORDER(sf) } default: call error (0, "WF_GSRESTORE: Unknown surface type.") } # Set remaining curve parameters. WF_TYPE(sf) = surface_type call malloc (WF_COEFF(sf), WF_NCOEFF(sf), TY_DOUBLE) call malloc (WF_XBASIS(sf), WF_XORDER(sf), TY_DOUBLE) call malloc (WF_YBASIS(sf), WF_YORDER(sf), TY_DOUBLE) # restore coefficient array call amovd (fit[WF_SAVECOEFF+1], Memd[WF_COEFF(sf)], WF_NCOEFF(sf)) end # WF_GSB1POL -- Procedure to evaluate all the non-zero polynomial functions # for a single point and given order. procedure wf_gsb1pol (x, order, k1, k2, basis) double x #I data point int order #I order of polynomial, order = 1, constant double k1, k2 #I nomalizing constants, dummy in this case double basis[ARB] #O basis functions int i begin basis[1] = 1. if (order == 1) return basis[2] = x if (order == 2) return do i = 3, order basis[i] = x * basis[i-1] end # WF_GSB1LEG -- Procedure to evaluate all the non-zero Legendre functions for # a single point and given order. procedure wf_gsb1leg (x, order, k1, k2, basis) double x #I data point int order #I order of polynomial, order = 1, constant double k1, k2 #I normalizing constants double basis[ARB] #O basis functions int i double ri, xnorm begin basis[1] = 1. if (order == 1) return xnorm = (x + k1) * k2 basis[2] = xnorm if (order == 2) return do i = 3, order { ri = i basis[i] = ((2. * ri - 3.) * xnorm * basis[i-1] - (ri - 2.) * basis[i-2]) / (ri - 1.) } end # WF_GSB1CHEB -- Procedure to evaluate all the non zero Chebyshev function # for a given x and order. procedure wf_gsb1cheb (x, order, k1, k2, basis) double x #I number of data points int order #I order of polynomial, 1 is a constant double k1, k2 #I normalizing constants double basis[ARB] #O array of basis functions int i double xnorm begin basis[1] = 1. if (order == 1) return xnorm = (x + k1) * k2 basis[2] = xnorm if (order == 2) return do i = 3, order basis[i] = 2. * xnorm * basis[i-1] - basis[i-2] end sptable-1.0.pre20180612/src/mwcs/wfinit.x000066400000000000000000000121701331023215600176430ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include "mwcs.h" # WF_INIT -- Initialize the WCS function table. Everything MWCS related # having to do with a world function is contained either in this file or # in the driver source file. If the WCS must also be translated to/from # a FITS image header representation, the image header translation routine # iwewcs.x must also be modified. procedure wf_init() extern wf_smp_init(), wf_smp_tran() extern wf_tan_init(), wf_tan_fwd(), wf_tan_inv() extern wf_arc_init(), wf_arc_fwd(), wf_arc_inv() extern wf_gls_init(), wf_gls_fwd(), wf_gls_inv() extern wf_sin_init(), wf_sin_fwd(), wf_sin_inv() extern wf_msp_init(), wf_msp_fwd(), wf_msp_inv(), wf_msp_destroy() extern wf_ait_init(), wf_ait_fwd(), wf_ait_inv() extern wf_car_init(), wf_car_fwd(), wf_car_inv() extern wf_csc_init(), wf_csc_fwd(), wf_csc_inv() extern wf_mer_init(), wf_mer_fwd(), wf_mer_inv() extern wf_mol_init(), wf_mol_fwd(), wf_mol_inv() extern wf_par_init(), wf_par_fwd(), wf_par_inv() extern wf_pco_init(), wf_pco_fwd(), wf_pco_inv() extern wf_qsc_init(), wf_qsc_fwd(), wf_qsc_inv() extern wf_stg_init(), wf_stg_fwd(), wf_stg_inv() extern wf_tsc_init(), wf_tsc_fwd(), wf_tsc_inv() extern wf_zea_init(), wf_zea_fwd(), wf_zea_inv() extern wf_zpx_init(), wf_zpx_fwd(), wf_zpx_inv(), wf_zpx_destroy() extern wf_zpn_init(), wf_zpn_fwd(), wf_zpn_inv(), wf_zpn_destroy() extern wf_tnx_init(), wf_tnx_fwd(), wf_tnx_inv(), wf_tnx_destroy() extern wf_tpv_init(), wf_tpv_fwd(), wf_tpv_inv(), wf_tpv_destroy() extern wf_pc_init(), wf_pc_fwd(), wf_pc_inv(), wf_pc_destroy() bool first_time data first_time /true/ errchk wf_fnload include "mwcs.com" int locpr() begin # Only do this once. if (!first_time) return fn_nfn = 0 first_time = false # Load the function drivers. call wf_fnload ("sampled", NULL, locpr(wf_smp_init), NULL, locpr(wf_smp_tran), locpr(wf_smp_tran)) # For compatibility reasons (FN index codes) new functions should # be added at the end of the following list. call wf_fnload ("tan", F_RADEC, locpr(wf_tan_init), NULL, locpr(wf_tan_fwd), locpr(wf_tan_inv)) call wf_fnload ("arc", F_RADEC, locpr(wf_arc_init), NULL, locpr(wf_arc_fwd), locpr(wf_arc_inv)) call wf_fnload ("gls", F_RADEC, locpr(wf_gls_init), NULL, locpr(wf_gls_fwd), locpr(wf_gls_inv)) call wf_fnload ("sin", F_RADEC, locpr(wf_sin_init), NULL, locpr(wf_sin_fwd), locpr(wf_sin_inv)) # Custom IRAF WCS for images containing multiple spectra. call wf_fnload ("multispec", NULL, locpr(wf_msp_init), locpr(wf_msp_destroy), locpr(wf_msp_fwd), locpr(wf_msp_inv)) # Most of the following are from G&C (also GLS above). call wf_fnload ("ait", F_RADEC, locpr(wf_ait_init), NULL, locpr(wf_ait_fwd), locpr(wf_ait_inv)) call wf_fnload ("car", F_RADEC, locpr(wf_car_init), NULL, locpr(wf_car_fwd), locpr(wf_car_inv)) call wf_fnload ("csc", F_RADEC, locpr(wf_csc_init), NULL, locpr(wf_csc_fwd), locpr(wf_csc_inv)) call wf_fnload ("mer", F_RADEC, locpr(wf_mer_init), NULL, locpr(wf_mer_fwd), locpr(wf_mer_inv)) call wf_fnload ("mol", F_RADEC, locpr(wf_mol_init), NULL, locpr(wf_mol_fwd), locpr(wf_mol_inv)) call wf_fnload ("par", F_RADEC, locpr(wf_par_init), NULL, locpr(wf_par_fwd), locpr(wf_par_inv)) call wf_fnload ("pco", F_RADEC, locpr(wf_pco_init), NULL, locpr(wf_pco_fwd), locpr(wf_pco_inv)) call wf_fnload ("qsc", F_RADEC, locpr(wf_qsc_init), NULL, locpr(wf_qsc_fwd), locpr(wf_qsc_inv)) call wf_fnload ("stg", F_RADEC, locpr(wf_stg_init), NULL, locpr(wf_stg_fwd), locpr(wf_stg_inv)) call wf_fnload ("tsc", F_RADEC, locpr(wf_tsc_init), NULL, locpr(wf_tsc_fwd), locpr(wf_tsc_inv)) call wf_fnload ("zea", F_RADEC, locpr(wf_zea_init), NULL, locpr(wf_zea_fwd), locpr(wf_zea_inv)) # Experimental WCS for astrometric approximations. call wf_fnload ("zpx", F_RADEC, locpr(wf_zpx_init), locpr(wf_zpx_destroy), locpr(wf_zpx_fwd), locpr(wf_zpx_inv)) call wf_fnload ("zpn", F_RADEC, locpr(wf_zpn_init), locpr(wf_zpn_destroy), locpr(wf_zpn_fwd), locpr(wf_zpn_inv)) call wf_fnload ("tnx", F_RADEC, locpr(wf_tnx_init), locpr(wf_tnx_destroy), locpr(wf_tnx_fwd), locpr(wf_tnx_inv)) call wf_fnload ("tpv", F_RADEC, locpr(wf_tpv_init), locpr(wf_tpv_destroy), locpr(wf_tpv_fwd), locpr(wf_tpv_inv)) # Polynomial coupled axes. call wf_fnload ("pc", NULL, locpr(wf_pc_init), locpr(wf_pc_destroy), locpr(wf_pc_fwd), locpr(wf_pc_inv)) end # WF_FNLOAD -- Load a driver into the WCS function table. procedure wf_fnload (name, flags, init, destroy, fwd, inv) char name[ARB] #I function name int init #I initialize procedure int flags #I function type flags int destroy #I destroy procedure int fwd #I forward transform procedure int inv #I inverse transform procedure errchk syserrs include "mwcs.com" begin # Get a new driver slot. if (fn_nfn + 1 > MAX_FN) call syserrs (SYS_MWFNOVFL, name) fn_nfn = fn_nfn + 1 # Load the driver. FN_INIT(fn_nfn) = init FN_FLAGS(fn_nfn) = flags FN_DESTROY(fn_nfn) = destroy FN_FWD(fn_nfn) = fwd FN_INV(fn_nfn) = inv call strcpy (name, FN_NAME(fn_nfn), SZ_FNNAME) end sptable-1.0.pre20180612/src/mwcs/wfmer.x000066400000000000000000000342121331023215600174640ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include "mwcs.h" .help WFMER .nf ------------------------------------------------------------------------- WFMER -- WCS function driver for the cylindrical mercator projection. Driver routines: FN_INIT wf_mer_init (fc, dir) FN_DESTROY (none) FN_FWD wf_mer_fwd (fc, v1, v2) FN_INV wf_mer_inv (fc, v1, v2) .endhelp -------------------------------------------------------------------- # Driver specific fields of function call (FC) descriptor. define FC_IRA Memi[$1+FCU] # RA axis (1 or 2) define FC_IDEC Memi[$1+FCU+1] # DEC axis (1 or 2) define FC_NATRA Memd[P2D($1+FCU+2)] # RA of native pole (rads) define FC_NATDEC Memd[P2D($1+FCU+4)] # DEC of native pole (rads) define FC_LONGP Memd[P2D($1+FCU+6)] # LONGPOLE (rads) define FC_COSDEC Memd[P2D($1+FCU+8)] # cosine (NATDEC) define FC_SINDEC Memd[P2D($1+FCU+10)] # sine (NATDEC) define FC_SPHTOL Memd[P2D($1+FCU+12)] # trig tolerance define FC_RODEG Memd[P2D($1+FCU+14)] # RO (degs) define FC_RECRODEG Memd[P2D($1+FCU+16)] # 1 / RO define FC_BADCVAL Memd[P2D($1+FCU+18)] # bad coordinate value define FC_W Memd[P2D($1+FCU+20)+($2)-1] # CRVAL axis (1 and 2) # WF_MER_INIT -- Initialize the cylindical mercator forward or inverse # transform. Initialization for this transformation consists of, determining # which axis is RA / LON and which is DEC / LAT, reading in the the native # longitude and latitude of the pole in celestial coordinates LONGPOLE and # LATPOLE from the attribute list, computing the celestial longitude and # colatitude of the native pole, precomputing the Euler angles and various # intermediary functions of the reference point, reading in the projection # parameter RO from the attribute list, and precomputing the various required # intermediate quantities. If LONGPOLE is undefined then a value of 180.0 # degrees is assumed if the celestial latitude of the reference point is less # than 0, otherwise 0 degrees is assumed. If LATPOLE is undefined the # more northerly of the two possible solutions for latitude of the native # pole is chosen, otherwise the solution closest to LATPOLE is chosen. If # RO is undefined a value of 180.0 / PI is assumed. In order to determine # the axis order, the parameter "axtype={ra|dec} {xlon|xlat}" must have been # set in the attribute list for the function. The LONGPOLE, LATPOLE, and RO # parameters may be set in either or both of the axes attribute lists, but the # value in the RA axis attribute list takes precedence. procedure wf_mer_init (fc, dir) pointer fc #I pointer to FC descriptor int dir #I direction of transform int i double dec, latpole, theta0, clat0, slat0, cphip, sphip, cthe0, sthe0, x, y, z double u, v, latp1, latp2, latp, maxlat, tol pointer sp, atvalue, ct, mw, wp, wv int ctod() data tol/1.0d-10/ errchk wf_decaxis(), mw_gwattrs() begin # Allocate space for the attribute string. call smark (sp) call salloc (atvalue, SZ_LINE, TY_CHAR) # Get the required mwcs pointers. ct = FC_CT(fc) mw = CT_MW(ct) wp = FC_WCS(fc) # Determine which is the DEC axis, and hence the axis order. call wf_decaxis (fc, FC_IRA(fc), FC_IDEC(fc)) # Get the value of W for each axis, i.e. the world coordinates at # the reference point. wv = MI_DBUF(mw) + WCS_W(wp) - 1 do i = 1, 2 FC_W(fc,i) = Memd[wv+CT_AXIS(ct,FC_AXIS(fc,i))-1] # Determine the native longitude and latitude of the pole of the # celestial coordinate system corresponding to the FITS keywords # LONGPOLE and LATPOLE. LONGPOLE has no default but will be set # to 180 or 0 depending on the value of the declination of the # reference point. LATPOLE has no default but will be set depending # on the values of LONGPOLE and the reference declination. iferr { call mw_gwattrs (mw, FC_IRA(fc), "longpole", Memc[atvalue], SZ_LINE) } then { iferr { call mw_gwattrs (mw, FC_IDEC(fc), "longpole", Memc[atvalue], SZ_LINE) } then { FC_LONGP(fc) = INDEFD } else { i = 1 if (ctod (Memc[atvalue], i, FC_LONGP(fc)) <= 0) FC_LONGP(fc) = INDEFD } } else { i = 1 if (ctod (Memc[atvalue], i, FC_LONGP(fc)) <= 0) FC_LONGP(fc) = INDEFD } iferr { call mw_gwattrs (mw, FC_IRA(fc), "latpole", Memc[atvalue], SZ_LINE) } then { iferr { call mw_gwattrs (mw, FC_IDEC(fc), "latpole", Memc[atvalue], SZ_LINE) } then { latpole = INDEFD } else { i = 1 if (ctod (Memc[atvalue], i, latpole) <= 0) latpole = INDEFD } } else { i = 1 if (ctod (Memc[atvalue], i, latpole) <= 0) latpole = INDEFD } # Fetch the RO projection parameter which is the radius of the # generating sphere for the projection. If RO is absent which # is the usual case set it to 180 / PI. Search both axes for # this quantity. iferr { call mw_gwattrs (mw, FC_IRA(fc), "ro", Memc[atvalue], SZ_LINE) } then { iferr { call mw_gwattrs (mw, FC_IDEC(fc), "ro", Memc[atvalue], SZ_LINE) } then { FC_RODEG(fc) = 180.0d0 / DPI } else { i = 1 if (ctod (Memc[atvalue], i, FC_RODEG(fc)) <= 0) FC_RODEG(fc) = 180.0d0 / DPI } } else { i = 1 if (ctod (Memc[atvalue], i, FC_RODEG(fc)) <= 0) FC_RODEG(fc) = 180.0d0 / DPI } # Compute the native longitude of the celestial pole. dec = DDEGTORAD(FC_W(fc,FC_IDEC(fc))) theta0 = 0.0d0 if (IS_INDEFD(FC_LONGP(fc))) { if (dec < theta0) FC_LONGP(fc) = DPI else FC_LONGP(fc) = 0.0d0 } else FC_LONGP(fc) = DDEGTORAD(FC_LONGP(fc)) # Compute the celestial longitude and latitude of the native pole. clat0 = cos (dec) slat0 = sin (dec) cphip = cos (FC_LONGP(fc)) sphip = sin (FC_LONGP(fc)) cthe0 = cos (theta0) sthe0 = sin (theta0) x = cthe0 * cphip y = sthe0 z = sqrt (x * x + y * y) # The latitude of the native pole is determined by LATPOLE in this # case. if (z == 0.0d0) { if (slat0 != 0.0d0) call error (0, "WF_MER_INIT: Invalid projection parameters") if (IS_INDEFD(latpole)) latp = 999.0d0 else latp = DDEGTORAD(latpole) } else { if (abs (slat0 / z) > 1.0d0) call error (0, "WF_MER_INIT: Invalid projection parameters") u = atan2 (y, x) v = acos (slat0 / z) latp1 = u + v if (latp1 > DPI) latp1 = latp1 - DTWOPI else if (latp1 < -DPI) latp1 = latp1 + DTWOPI latp2 = u - v if (latp2 > DPI) latp2 = latp2 - DTWOPI else if (latp2 < -DPI) latp2 = latp2 + DTWOPI if (IS_INDEFD(latpole)) maxlat = 999.0d0 else maxlat = DDEGTORAD(latpole) if (abs (maxlat - latp1) < abs (maxlat - latp2)) { if (abs (latp1) < (DHALFPI + tol)) latp = latp1 else latp = latp2 } else { if (abs (latp2) < (DHALFPI + tol)) latp = latp2 else latp = latp1 } } FC_NATDEC(fc) = DHALFPI - latp z = cos (latp) * clat0 if (abs(z) < tol) { # Celestial pole at the reference point. if (abs(clat0) < tol) { FC_NATRA(fc) = DDEGTORAD(FC_W(fc,FC_IRA(fc))) FC_NATDEC(fc) = DHALFPI - theta0 # Celestial pole at the native north pole. } else if (latp > 0.0d0) { FC_NATRA(fc) = DDEGTORAD(FC_W(fc,FC_IRA(fc))) + FC_LONGP(fc) - DPI FC_NATDEC(fc) = 0.0d0 # Celestial pole at the native south pole. } else if (latp < 0.0d0) { FC_NATRA(fc) = DDEGTORAD(FC_W(fc,FC_IRA(fc))) - FC_LONGP(fc) FC_NATDEC(fc) = DPI } } else { x = (sthe0 - sin (latp) * slat0) / z y = sphip * cthe0 / clat0 if (x == 0.0d0 && y == 0.0d0) call error (0, "WF_MER_INIT: Invalid projection parameters") FC_NATRA(fc) = DDEGTORAD(FC_W(fc,FC_IRA(fc))) - atan2 (y,x) } if (FC_W(fc,FC_IRA(fc)) >= 0.0d0) { if (FC_NATRA(fc) < 0.0d0) FC_NATRA(fc) = FC_NATRA(fc) + DTWOPI } else { if (FC_NATRA(fc) > 0.0d0) FC_NATRA(fc) = FC_NATRA(fc) - DTWOPI } FC_COSDEC(fc) = cos (FC_NATDEC(fc)) FC_SINDEC(fc) = sin (FC_NATDEC(fc)) # Check for ill-conditioned parameters. if (abs(latp) > (DHALFPI+tol)) call error (0, "WF_MER_INIT: Invalid projection parameters") # Compute the required intermediate quantities. if (FC_RODEG(fc) == 0.0d0) call error (0, "WF_MER_INIT: Invalid projection parameters") FC_RECRODEG(fc) = 1.0d0 / FC_RODEG(fc) # Set the bad coordinate value. FC_SPHTOL(fc) = 1.0d-5 # Set the bad coordinate value. FC_BADCVAL(fc) = INDEFD # Free working space. call sfree (sp) end # WF_MER_FWD -- Forward transform (physical to world) for the mercator # projection. procedure wf_mer_fwd (fc, p, w) pointer fc #I pointer to FC descriptor double p[2] #I physical coordinates (x, y) double w[2] #O world coordinates (ra, dec) int ira, idec double x, y, phi, theta, costhe, sinthe, dphi, cosphi, sinphi, ra, dec double dlng, z begin # Get the axis numbers. ira = FC_IRA(fc) idec = FC_IDEC(fc) # Compute native spherical coordinates PHI and THETA in degrees from # the projected coordinates. This is the projection part of the # computation. x = p[ira] y = p[idec] # Compute PHI. phi = FC_RECRODEG(fc) * x # Compute THETA. theta = 2.0d0 * atan (exp (y / FC_RODEG(fc))) - DHALFPI # Compute the celestial coordinates RA and DEC from the native # coordinates PHI and THETA. This is the spherical geometry part # of the computation. costhe = cos (theta) sinthe = sin (theta) dphi = phi - FC_LONGP(fc) cosphi = cos (dphi) sinphi = sin (dphi) # Compute the RA. x = sinthe * FC_SINDEC(fc) - costhe * FC_COSDEC(fc) * cosphi if (abs (x) < FC_SPHTOL(fc)) x = -cos (theta + FC_NATDEC(fc)) + costhe * FC_COSDEC(fc) * (1.0d0 - cosphi) y = -costhe * sinphi if (x != 0.0d0 || y != 0.0d0) { dlng = atan2 (y, x) } else { dlng = dphi + DPI } ra = DRADTODEG(FC_NATRA(fc) + dlng) # Normalize the RA. if (FC_NATRA(fc) >= 0.0d0) { if (ra < 0.0d0) ra = ra + 360.0d0 } else { if (ra > 0.0d0) ra = ra - 360.0d0 } if (ra > 360.0d0) ra = ra - 360.0d0 else if (ra < -360.0d0) ra = ra + 360.0d0 # Compute the DEC. if (mod (dphi, DPI) == 0.0d0) { dec = DRADTODEG(theta + cosphi * FC_NATDEC(fc)) if (dec > 90.0d0) dec = 180.0d0 - dec if (dec < -90.0d0) dec = -180.0d0 - dec } else { z = sinthe * FC_COSDEC(fc) + costhe * FC_SINDEC(fc) * cosphi if (abs(z) > 0.99d0) { if (z >= 0.0d0) dec = DRADTODEG(acos (sqrt(x * x + y * y))) else dec = DRADTODEG(-acos (sqrt(x * x + y * y))) } else dec = DRADTODEG(asin (z)) } # Store the results. w[ira] = ra w[idec] = dec end # WF_MER_INV -- Inverse transform (world to physical) for the mercator # projection. procedure wf_mer_inv (fc, w, p) pointer fc #I pointer to FC descriptor double w[2] #I input world (RA, DEC) coordinates double p[2] #I output physical coordinates int ira, idec double ra, dec, cosdec, sindec, cosra, sinra, x, y, z, dphi, phi, theta begin # Get the axes numbers. ira = FC_IRA(fc) idec = FC_IDEC(fc) # Compute the transformation from celestial coordinates RA and # DEC to native coordinates PHI and THETA. This is the spherical # geometry part of the transformation. ra = DDEGTORAD (w[ira]) - FC_NATRA(fc) dec = DDEGTORAD (w[idec]) cosra = cos (ra) sinra = sin (ra) cosdec = cos (dec) sindec = sin (dec) # Compute PHI. x = sindec * FC_SINDEC(fc) - cosdec * FC_COSDEC(fc) * cosra if (abs(x) < FC_SPHTOL(fc)) x = -cos (dec + FC_NATDEC(fc)) + cosdec * FC_COSDEC(fc) * (1.0d0 - cosra) y = -cosdec * sinra if (x != 0.0d0 || y != 0.0d0) dphi = atan2 (y, x) else dphi = ra - DPI phi = FC_LONGP(fc) + dphi if (phi > DPI) phi = phi - DTWOPI else if (phi < -DPI) phi = phi + DTWOPI # Compute THETA. if (mod (ra, DPI) == 0.0) { theta = dec + cosra * FC_NATDEC(fc) if (theta > DHALFPI) theta = DPI - theta if (theta < -DHALFPI) theta = -DPI - theta } else { z = sindec * FC_COSDEC(fc) + cosdec * FC_SINDEC(fc) * cosra if (abs (z) > 0.99d0) { if (z >= 0.0) theta = acos (sqrt(x * x + y * y)) else theta = -acos (sqrt(x * x + y * y)) } else theta = asin (z) } # Compute the transformation from native coordinates PHI and THETA # to projected coordinates X and Y. if (theta <= -DHALFPI || theta >= DHALFPI) { p[ira] = FC_BADCVAL(fc) p[idec] = FC_BADCVAL(fc) } else { p[ira] = FC_RODEG(fc) * phi p[idec] = FC_RODEG(fc) * log (tan ((DHALFPI + theta) / 2.0d0)) } end sptable-1.0.pre20180612/src/mwcs/wfmol.x000066400000000000000000000367761331023215600175110ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include "mwcs.h" .help WFMOL .nf ------------------------------------------------------------------------- WFMOL -- WCS function driver for the Mollweide projection. Driver routines: FN_INIT wf_mol_init (fc, dir) FN_DESTROY (none) FN_FWD wf_mol_fwd (fc, v1, v2) FN_INV wf_mol_inv (fc, v1, v2) .endhelp -------------------------------------------------------------------- # Driver specific fields of function call (FC) descriptor. define FC_IRA Memi[$1+FCU] # RA axis (1 or 2) define FC_IDEC Memi[$1+FCU+1] # DEC axis (1 or 2) define FC_NATRA Memd[P2D($1+FCU+2)] # RA of native pole (rads) define FC_NATDEC Memd[P2D($1+FCU+4)] # DEC of native pole (rads) define FC_LONGP Memd[P2D($1+FCU+6)] # LONGPOLE (rads) define FC_COSDEC Memd[P2D($1+FCU+8)] # cosine (NATDEC) define FC_SINDEC Memd[P2D($1+FCU+10)] # sine (NATDEC) define FC_SPHTOL Memd[P2D($1+FCU+12)] # trig tolerance define FC_RODEG Memd[P2D($1+FCU+14)] # RO (degs) define FC_C1 Memd[P2D($1+FCU+16)] # sqrt (2) * RO define FC_C2 Memd[P2D($1+FCU+18)] # sqrt (2) * RO / 90 define FC_C3 Memd[P2D($1+FCU+20)] # 1 / (sqrt (2) * RO) define FC_C4 Memd[P2D($1+FCU+22)] # 90 / RO define FC_C5 Memd[P2D($1+FCU+24)] # 2 / PI define FC_BADCVAL Memd[P2D($1+FCU+26)] # bad coordinate value define FC_W Memd[P2D($1+FCU+28)+($2)-1] # CRVAL axis (1 and 2) # WF_MOL_INIT -- Initialize the forward or inverse Mollweide transform. # Initialization for this transformation consists of, determining which axis # is RA / LON and which is DEC / LAT, reading in the native longitude and # latitude of the pole in celestial coordinates LONGPOLE and LATPOLE from the # attribute list, computing the Euler angles and various intermediate # functions of the reference point, reading in the projection parameter RO # from the attribute list, and precomputing the various required intermediate # quantities. If LONGPOLE is undefined then a value of 180.0 degrees is assumed # if the celestial latitude of the reference point is less than 0, otherwise # 0 degrees is assumed. If LATPOLE is undefined then the most northerly of # the two possible solutions is chosen, otherwise the solution closest to # LATPOLE is chosen. If RO is undefined a # value of 180.0 / PI is assumed. # In order to determine the axis order, the parameter "axtype={ra|dec} # {xlon|xlat}" must have been set in the attribute list for the function. # The LONGPOLE, LATPOLE, and RO parameters may be set in either or both of # the axes attribute lists, but the value in the RA axis attribute list takes # precedence. procedure wf_mol_init (fc, dir) pointer fc #I pointer to FC descriptor int dir #I direction of transform int i double dec, latpole, theta0, clat0, slat0, cphip, sphip, cthe0, sthe0, x, y, z double u, v, latp1, latp2, latp, maxlat, tol pointer sp, atvalue, ct, mw, wp, wv int ctod() data tol/1.0d-10/ errchk wf_decaxis(), mw_gwattrs() begin # Allocate space for the attribute string. call smark (sp) call salloc (atvalue, SZ_LINE, TY_CHAR) # Get the required mwcs pointers. ct = FC_CT(fc) mw = CT_MW(ct) wp = FC_WCS(fc) # Determine which is the DEC axis, and hence the axis order. call wf_decaxis (fc, FC_IRA(fc), FC_IDEC(fc)) # Get the value of W for each axis, i.e. the world coordinates at # the reference point. wv = MI_DBUF(mw) + WCS_W(wp) - 1 do i = 1, 2 FC_W(fc,i) = Memd[wv+CT_AXIS(ct,FC_AXIS(fc,i))-1] # Determine the native longitude and latitude of the pole of the # celestial coordinate system corresponding to the FITS keywords # LONGPOLE and LATPOLE. LONGPOLE has no default but will be set # to 180 or 0 depending on the value of the declination of the # reference point. LATPOLE has no default but will be set depending # on the values of LONGPOLE and the reference declination. iferr { call mw_gwattrs (mw, FC_IRA(fc), "longpole", Memc[atvalue], SZ_LINE) } then { iferr { call mw_gwattrs (mw, FC_IDEC(fc), "longpole", Memc[atvalue], SZ_LINE) } then { FC_LONGP(fc) = INDEFD } else { i = 1 if (ctod (Memc[atvalue], i, FC_LONGP(fc)) <= 0) FC_LONGP(fc) = INDEFD } } else { i = 1 if (ctod (Memc[atvalue], i, FC_LONGP(fc)) <= 0) FC_LONGP(fc) = INDEFD } iferr { call mw_gwattrs (mw, FC_IRA(fc), "latpole", Memc[atvalue], SZ_LINE) } then { iferr { call mw_gwattrs (mw, FC_IDEC(fc), "latpole", Memc[atvalue], SZ_LINE) } then { latpole = INDEFD } else { i = 1 if (ctod (Memc[atvalue], i, latpole) <= 0) latpole = INDEFD } } else { i = 1 if (ctod (Memc[atvalue], i, latpole) <= 0) latpole = INDEFD } # Fetch the RO projection parameter which is the radius of the # generating sphere for the projection. If RO is absent which # is the usual case set it to 180 / PI. Search both axes for # this quantity. iferr { call mw_gwattrs (mw, FC_IRA(fc), "ro", Memc[atvalue], SZ_LINE) } then { iferr { call mw_gwattrs (mw, FC_IDEC(fc), "ro", Memc[atvalue], SZ_LINE) } then { FC_RODEG(fc) = 180.0d0 / DPI } else { i = 1 if (ctod (Memc[atvalue], i, FC_RODEG(fc)) <= 0) FC_RODEG(fc) = 180.0d0 / DPI } } else { i = 1 if (ctod (Memc[atvalue], i, FC_RODEG(fc)) <= 0) FC_RODEG(fc) = 180.0d0 / DPI } # Compute the native longitude of the celestial pole. dec = DDEGTORAD(FC_W(fc,FC_IDEC(fc))) theta0 = 0.0d0 if (IS_INDEFD(FC_LONGP(fc))) { if (dec < theta0) FC_LONGP(fc) = DPI else FC_LONGP(fc) = 0.0d0 } else FC_LONGP(fc) = DDEGTORAD(FC_LONGP(fc)) # Compute the celestial longitude and latitude of the native pole. clat0 = cos (dec) slat0 = sin (dec) cphip = cos (FC_LONGP(fc)) sphip = sin (FC_LONGP(fc)) cthe0 = cos (theta0) sthe0 = sin (theta0) x = cthe0 * cphip y = sthe0 z = sqrt (x * x + y * y) # The latitude of the native pole is determined by LATPOLE in this # case. if (z == 0.0d0) { if (slat0 != 0.0d0) call error (0, "WF_MOL_INIT: Invalid projection parameters") if (IS_INDEFD(latpole)) latp = 999.0d0 else latp = DDEGTORAD(latpole) } else { if (abs (slat0 / z) > 1.0d0) call error (0, "WF_MOL_INIT: Invalid projection parameters") u = atan2 (y, x) v = acos (slat0 / z) latp1 = u + v if (latp1 > DPI) latp1 = latp1 - DTWOPI else if (latp1 < -DPI) latp1 = latp1 + DTWOPI latp2 = u - v if (latp2 > DPI) latp2 = latp2 - DTWOPI else if (latp2 < -DPI) latp2 = latp2 + DTWOPI if (IS_INDEFD(latpole)) maxlat = 999.0d0 else maxlat = DDEGTORAD(latpole) if (abs (maxlat - latp1) < abs (maxlat - latp2)) { if (abs (latp1) < (DHALFPI + tol)) latp = latp1 else latp = latp2 } else { if (abs (latp2) < (DHALFPI + tol)) latp = latp2 else latp = latp1 } } FC_NATDEC(fc) = DHALFPI - latp z = cos (latp) * clat0 if (abs(z) < tol) { # Celestial pole at the reference point. if (abs(clat0) < tol) { FC_NATRA(fc) = DDEGTORAD(FC_W(fc,FC_IRA(fc))) FC_NATDEC(fc) = DHALFPI - theta0 # Celestial pole at the native north pole. } else if (latp > 0.0d0) { FC_NATRA(fc) = DDEGTORAD(FC_W(fc,FC_IRA(fc))) + FC_LONGP(fc) - DPI FC_NATDEC(fc) = 0.0d0 # Celestial pole at the native south pole. } else if (latp < 0.0d0) { FC_NATRA(fc) = DDEGTORAD(FC_W(fc,FC_IRA(fc))) - FC_LONGP(fc) FC_NATDEC(fc) = DPI } } else { x = (sthe0 - sin (latp) * slat0) / z y = sphip * cthe0 / clat0 if (x == 0.0d0 && y == 0.0d0) call error (0, "WF_MOL_INIT: Invalid projection parameters") FC_NATRA(fc) = DDEGTORAD(FC_W(fc,FC_IRA(fc))) - atan2 (y,x) } if (FC_W(fc,FC_IRA(fc)) >= 0.0d0) { if (FC_NATRA(fc) < 0.0d0) FC_NATRA(fc) = FC_NATRA(fc) + DTWOPI } else { if (FC_NATRA(fc) > 0.0d0) FC_NATRA(fc) = FC_NATRA(fc) - DTWOPI } FC_COSDEC(fc) = cos (FC_NATDEC(fc)) FC_SINDEC(fc) = sin (FC_NATDEC(fc)) # Check for ill-conditioned parameters. if (abs(latp) > (DHALFPI+tol)) call error (0, "WF_MOL_INIT: Invalid projection parameters") # Compute the required intermediate quantities. FC_C1(fc) = sqrt (2.0d0) * FC_RODEG(fc) FC_C2(fc) = FC_C1(fc) / 90.0d0 FC_C3(fc) = 1.0d0 / FC_C1(fc) FC_C4(fc) = 90.0d0 / FC_RODEG(fc) FC_C5(fc) = 2.0d0 / DPI # Set the bad coordinate value. FC_SPHTOL(fc) = 1.0d-5 # Set the bad coordinate value. FC_BADCVAL(fc) = INDEFD # Free working space. call sfree (sp) end # WF_MOL_FWD -- Forward transform (physical to world) for the Mollweide # projection. procedure wf_mol_fwd (fc, p, w) pointer fc #I pointer to FC descriptor double p[2] #I physical coordinates (x, y) double w[2] #O world coordinates (ra, dec) int ira, idec double x, y, y0, s, z, phi, theta, costhe, sinthe, dphi, cosphi, sinphi double tol, ra, dec, dlng data tol/1.0d-12/ begin # Get the axis numbers. ira = FC_IRA(fc) idec = FC_IDEC(fc) # Compute native spherical coordinates PHI and THETA in degrees from # the projected coordinates. This is the projection part of the # computation. x = p[ira] y = p[idec] # Compute PHI. y0 = y / FC_RODEG(fc) s = 2.0d0 - y0 * y0 if (s < tol) { if (s < -tol) { w[ira] = FC_BADCVAL(fc) w[idec] = FC_BADCVAL(fc) return } s = 0.0d0 if (abs(x) > tol) { w[ira] = FC_BADCVAL(fc) w[idec] = FC_BADCVAL(fc) return } phi = 0.0d0 } else { s = sqrt (s) phi = FC_C4(fc) * DDEGTORAD(x) / s } # Compute THETA. z = y * FC_C3(fc) if (abs(z) > 1.0d0) { if (abs(z) > (1.0d0 + tol)) { w[ira] = FC_BADCVAL(fc) w[idec] = FC_BADCVAL(fc) return } if (z >= 0.0d0) z = 1.0d0 + y0 * s / DPI else z = -1.0d0 + y0 * s / DPI } else z = asin (z) * FC_C5(fc) + y0 * s / DPI if (abs(z) > 1.0d0) { if (abs(z) > (1.0d0 + tol)) { w[ira] = FC_BADCVAL(fc) w[idec] = FC_BADCVAL(fc) return } if (z >= 0.0d0) z = 1.0d0 else z = -1.0d0 } theta = asin (z) # Compute the celestial coordinates RA and DEC from the native # coordinates PHI and THETA. This is the spherical geometry part # of the computation. costhe = cos (theta) sinthe = sin (theta) dphi = phi - FC_LONGP(fc) cosphi = cos (dphi) sinphi = sin (dphi) # Compute the RA. x = sinthe * FC_SINDEC(fc) - costhe * FC_COSDEC(fc) * cosphi if (abs (x) < FC_SPHTOL(fc)) x = -cos (theta + FC_NATDEC(fc)) + costhe * FC_COSDEC(fc) * (1.0d0 - cosphi) y = -costhe * sinphi if (x != 0.0d0 || y != 0.0d0) { dlng = atan2 (y, x) } else { dlng = dphi + DPI } ra = DRADTODEG(FC_NATRA(fc) + dlng) # Normalize the RA. if (FC_NATRA(fc) >= 0.0d0) { if (ra < 0.0d0) ra = ra + 360.0d0 } else { if (ra > 0.0d0) ra = ra - 360.0d0 } if (ra > 360.0d0) ra = ra - 360.0d0 else if (ra < -360.0d0) ra = ra + 360.0d0 # Compute the DEC. if (mod (dphi, DPI) == 0.0d0) { dec = DRADTODEG(theta + cosphi * FC_NATDEC(fc)) if (dec > 90.0d0) dec = 180.0d0 - dec if (dec < -90.0d0) dec = -180.0d0 - dec } else { z = sinthe * FC_COSDEC(fc) + costhe * FC_SINDEC(fc) * cosphi if (abs(z) > 0.99d0) { if (z >= 0.0d0) dec = DRADTODEG(acos (sqrt(x * x + y * y))) else dec = DRADTODEG(-acos (sqrt(x * x + y * y))) } else dec = DRADTODEG(asin (z)) } # Store the results. w[ira] = ra w[idec] = dec end # WF_MOL_INV -- Inverse transform (world to physical) for the Mollweide # projection. procedure wf_mol_inv (fc, w, p) pointer fc #I pointer to FC descriptor double w[2] #I input world (RA, DEC) coordinates double p[2] #I output physical coordinates int j, ira, idec double ra, dec, cosdec, sindec, cosra, sinra, x, y, phi, theta, dphi double u, v0, v1, v, resid, alpha, tol, z data tol /1.0d-13/ begin # Get the axes numbers. ira = FC_IRA(fc) idec = FC_IDEC(fc) # Compute the transformation from celestial coordinates RA and # DEC to native coordinates PHI and THETA. This is the spherical # geometry part of the transformation. ra = DDEGTORAD (w[ira]) - FC_NATRA(fc) dec = DDEGTORAD (w[idec]) cosra = cos (ra) sinra = sin (ra) cosdec = cos (dec) sindec = sin (dec) # Compute PHI. x = sindec * FC_SINDEC(fc) - cosdec * FC_COSDEC(fc) * cosra if (abs(x) < FC_SPHTOL(fc)) x = -cos (dec + FC_NATDEC(fc)) + cosdec * FC_COSDEC(fc) * (1.0d0 - cosra) y = -cosdec * sinra if (x != 0.0d0 || y != 0.0d0) dphi = atan2 (y, x) else dphi = ra - DPI phi = FC_LONGP(fc) + dphi if (phi > DPI) phi = phi - DTWOPI else if (phi < -DPI) phi = phi + DTWOPI # Compute THETA. if (mod (ra, DPI) == 0.0) { theta = dec + cosra * FC_NATDEC(fc) if (theta > DHALFPI) theta = DPI - theta if (theta < -DHALFPI) theta = -DPI - theta } else { z = sindec * FC_COSDEC(fc) + cosdec * FC_SINDEC(fc) * cosra if (abs (z) > 0.99d0) { if (z >= 0.0) theta = acos (sqrt(x * x + y * y)) else theta = -acos (sqrt(x * x + y * y)) } else theta = asin (z) } # Compute the transformation from native coordinates PHI and THETA # to projected coordinates X and Y. if (abs(theta) == DHALFPI) { p[ira] = 0.0d0 if (theta >= 0.0d0) p[idec] = FC_C1(fc) else p[idec] = -FC_C1(fc) } else if (theta == 0.0d0) { p[ira] = FC_C2(fc) * DRADTODEG(phi) p[idec] = 0.0d0 } else { u = DPI * sin (theta) v0 = -DPI v1 = DPI v = u do j = 1, 100 { resid = (v - u) + sin (v) if (resid < 0.0d0) { if (resid > -tol) break v0 = v } else { if (resid < tol) break v1 = v } v = (v0 + v1) / 2.0d0 } alpha = v / 2.0d0 p[ira] = FC_C2(fc) * DRADTODEG(phi) * cos (alpha) p[idec] = FC_C1(fc) * sin (alpha) } end sptable-1.0.pre20180612/src/mwcs/wfmspec.x000066400000000000000000000366071331023215600200220ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include "mwcs.h" .help WFMSPEC .nf ------------------------------------------------------------------------- WFMSPEC -- WCS function driver for MULTISPEC spectral format. The dispersion coordinate is along image lines and each line has independent linear or nonlinear dispersion coordinates. The dispersion coordinates are defined by specn attributes where n is the physical line number. The format of the attributes is: ap beam dtype w1 dw nw z aplow aphigh coeffs... where ap is the aperture number (unique within an image), beam is a beam number (not used by the driver), dtype is the dispersion type with values 0 = linear dispersion 1 = log linear dispersion 2 = nonlinear dispersion w1 is the wavelength of the first physical pixel, dw is the average increment per pixel between the first and last pixel, nw is the number of pixels, z is a redshift factor to be applied to the dispersion coordinates, aplow and aphigh are aperture limits defining the origin of the spectra (not used by the driver), and coeffs are the nonlinear dispersion coefficients. The nonlinear dispersion function coefficients may describe several function types; chebyshev polynomial, legendre polynomial, linear spline, cubic spline, linear interpolation in a pixel coordinate array, and linear interpolation in a sampled array. The axes and dispersion parameters are in terms of the physical image. The aperture number is used for the world coordinate of the line coordinate. Coordinates outside the valid range are mapped to nearest valid world coordinate. In application this would give a correct world coordinate graph for a general WCS blind graphics task (especially if all invalid pixels have the same value as the last valid pixel). Driver routines: FN_INIT wf_msp_init (fc, dir) FN_DESTROY wf_msp_destroy (fc) FN_FWD wf_msp_fwd (fc, v1, v2) FN_INV wf_msp_inv (fc, v1, v2) In addition the nonlinear dispersion functions use the following routines: wf_msp_coeff Convert the attribute string to a coefficient array wf_msp_eval Evaluate the function (P->W) wf_msp_evali Evaluate the inverse function (W->P) .endhelp -------------------------------------------------------------------- # Driver specific fields of function call (FC) descriptor. define FC_NAPS Memi[$1+FCU] # number of apertures define FC_APS Memi[$1+FCU+1] # pointer to indep coords define FC_DTYPE Memi[$1+FCU+2] # pointer to dispersion type define FC_CRVAL Memi[$1+FCU+3] # pointer to linear origins define FC_CDELT Memi[$1+FCU+4] # pointer to linear intervals define FC_NPTS Memi[$1+FCU+5] # pointer to number of points define FC_Z Memi[$1+FCU+6] # pointer to doppler corrections define FC_COEFF Memi[$1+FCU+7] # pointer to nonlinear coeffs define FC_X Memi[$1+FCU+8] # pointer to last phys. coord. define FC_DYDX Memi[$1+FCU+9] # pointer to last deriv. define FC_DIR Memi[$1+FCU+10] # direction of transform # Function types. define CHEBYSHEV 1 # CURFIT Chebyshev polynomial define LEGENDRE 2 # CURFIT Legendre polynomial define SPLINE3 3 # CURFIT cubic spline define SPLINE1 4 # CURFIT linear spline define PIXEL 5 # pixel coordinate array define SAMPLE 6 # sampled coordinates # Dispersion types. define LINEAR 0 # linear define LOG 1 # log linear define NONLINEAR 2 # nonlinear # Iterative inversion parameters. define NALLOC 10 # size of allocation increments define NIT 10 # max interations in determining inverse define DX 0.0001 # accuracy limit in pixels for inverse # Size limiting definitions. define DEF_SZATVAL 2048 # dynamically resized if overflow # WF_MSP_INIT -- Initialize the function call descriptor for the indicated # type of transform (forward or inverse). procedure wf_msp_init (fc, dir) pointer fc #I pointer to FC descriptor int dir #I type of transformation pointer ct, mw int sz_atval, naps, ip, i pointer sp, atkey, atval, aps, dtype, crval, cdelt, npts, z, coeff int strlen(), ctoi(), ctod() double x, dval, wf_msp_eval() errchk malloc, realloc begin # Get pointers. ct = FC_CT(fc) mw = CT_MW(ct) # Check axes. if (FC_NAXES(fc) != 2 || CT_AXIS(ct,1) != 1 || CT_AXIS(ct,2) != 2) call error (1, "WFMSPEC: Wrong axes") # Get spectrum information. call smark (sp) sz_atval = DEF_SZATVAL call malloc (atval, sz_atval, TY_CHAR) call salloc (atkey, SZ_ATNAME, TY_CHAR) for (naps=0; ; naps=naps+1) { call sprintf (Memc[atkey], SZ_ATNAME, "spec%d") call pargi (naps+1) iferr (call mw_gwattrs (mw, 2, Memc[atkey], Memc[atval], sz_atval)) break while (strlen (Memc[atval]) == sz_atval) { sz_atval = 2 * sz_atval call realloc (atval, sz_atval, TY_CHAR) call mw_gwattrs (mw, 2, Memc[atkey], Memc[atval], sz_atval) } if (naps == 0) { call malloc (aps, NALLOC, TY_INT) call malloc (dtype, NALLOC, TY_INT) call malloc (crval, NALLOC, TY_DOUBLE) call malloc (cdelt, NALLOC, TY_DOUBLE) call malloc (npts, NALLOC, TY_INT) call malloc (z, NALLOC, TY_DOUBLE) call malloc (coeff, NALLOC, TY_POINTER) } else if (mod (naps, NALLOC) == 0) { call realloc (aps, naps+NALLOC, TY_INT) call realloc (dtype, naps+NALLOC, TY_INT) call realloc (crval, naps+NALLOC, TY_DOUBLE) call realloc (cdelt, naps+NALLOC, TY_DOUBLE) call realloc (npts, naps+NALLOC, TY_INT) call realloc (z, naps+NALLOC, TY_DOUBLE) call realloc (coeff, naps+NALLOC, TY_POINTER) } # Linear dispersion function. ip = 1 if (ctoi (Memc[atval], ip, Memi[aps+naps]) <= 0) next if (ctoi (Memc[atval], ip, Memi[dtype+naps]) <= 0) next if (ctoi (Memc[atval], ip, Memi[dtype+naps]) <= 0) next if (ctod (Memc[atval], ip, Memd[crval+naps]) <= 0) next if (ctod (Memc[atval], ip, Memd[cdelt+naps]) <= 0) next if (ctoi (Memc[atval], ip, Memi[npts+naps]) <= 0) next if (ctod (Memc[atval], ip, Memd[z+naps]) <= 0) next if (ctod (Memc[atval], ip, dval) <= 0) next if (ctod (Memc[atval], ip, dval) <= 0) next Memd[z+naps] = Memd[z+naps] + 1 # Set nonlinear dispersion function. if (Memi[dtype+naps] == NONLINEAR) call wf_msp_coeff (Memc[atval+ip], Memi[coeff+naps], double (0.5), double (Memi[npts+naps]+0.5)) } if (naps <= 0) call error (2, "WFMSPEC: No aperture information") call realloc (aps, naps, TY_INT) call realloc (dtype, naps, TY_INT) call realloc (crval, naps, TY_DOUBLE) call realloc (cdelt, naps, TY_DOUBLE) call realloc (npts, naps, TY_INT) call realloc (z, naps, TY_DOUBLE) call realloc (coeff, naps, TY_POINTER) FC_NAPS(fc) = naps FC_APS(fc) = aps FC_DTYPE(fc) = dtype FC_CRVAL(fc) = crval FC_CDELT(fc) = cdelt FC_NPTS(fc) = npts FC_Z(fc) = z FC_COEFF(fc) = coeff FC_DIR(fc) = dir # Setup inverse parameters if needed. # The parameters make the interative inversion more efficient # when the inverse transformation is evaluated sequentially. if (dir == INVERSE) { call malloc (crval, naps, TY_DOUBLE) call malloc (cdelt, naps, TY_DOUBLE) do i = 0, naps-1 { if (Memi[FC_NPTS(fc)+i] == 0) next if (Memi[FC_DTYPE(fc)+i] == NONLINEAR) { coeff = Memi[FC_COEFF(fc)+i] x = Memi[FC_NPTS(fc)+i] Memd[crval+i] = x Memd[cdelt+i] = wf_msp_eval (Memd[coeff], x) - wf_msp_eval (Memd[coeff], x - 1) } } FC_X(fc) = crval FC_DYDX(fc) = cdelt } else { FC_X(fc) = NULL FC_DYDX(fc) = NULL } call mfree (atval, TY_CHAR) call sfree (sp) end # WF_MSP_DESTROY -- Free function driver descriptor. procedure wf_msp_destroy (fc) pointer fc #I pointer to FC descriptor int i begin do i = 1, FC_NAPS(fc) if (Memi[FC_DTYPE(fc)+i-1] == NONLINEAR) call mfree (Memi[FC_COEFF(fc)+i-1], TY_DOUBLE) call mfree (FC_APS(fc), TY_INT) call mfree (FC_DTYPE(fc), TY_INT) call mfree (FC_CRVAL(fc), TY_DOUBLE) call mfree (FC_CDELT(fc), TY_DOUBLE) call mfree (FC_NPTS(fc), TY_INT) call mfree (FC_Z(fc), TY_DOUBLE) call mfree (FC_COEFF(fc), TY_POINTER) call mfree (FC_X(fc), TY_DOUBLE) call mfree (FC_DYDX(fc), TY_DOUBLE) end # WF_MSP_FWD -- Evaluate P -> W (physical to world transformation). procedure wf_msp_fwd (fc, in, out) pointer fc #I pointer to FC descriptor double in[2] #I point to sample WCS at double out[2] #O value of WCS at that point int i pointer coeff double din, wf_msp_eval() begin i = nint (in[2]) - 1 if (i < 0 || i >= FC_NAPS(fc)) call error (3, "WFMSPEC: Coordinate out of bounds") if (Memi[FC_NPTS(fc)+i] == 0) call error (4, "WFMSPEC: No dispersion function") if (Memi[FC_DTYPE(fc)+i] == NONLINEAR) { coeff = Memi[FC_COEFF(fc)+i] out[2] = Memi[FC_APS(fc)+i] out[1] = wf_msp_eval (Memd[coeff], in[1]) } else { din = max (0.5D0, min (double (Memi[FC_NPTS(fc)+i]+0.5), in[1])) out[2] = Memi[FC_APS(fc)+i] out[1] = Memd[FC_CRVAL(fc)+i] + Memd[FC_CDELT(fc)+i] * (din - 1) if (Memi[FC_DTYPE(fc)+i] == LOG) out[1] = 10. ** out[1] } out[1] = out[1] / Memd[FC_Z(fc)+i] end # WF_MSP_INV -- Evaluate W -> P (world to physical transformation). procedure wf_msp_inv (fc, in, out) pointer fc #I pointer to FC descriptor double in[2] #I point to sample WCS at double out[2] #O value of WCS at that point int i pointer coeff double din, dinmin double wf_msp_evali() begin out[2] = 1 dinmin = abs (in[2] - Memi[FC_APS(fc)]) do i = 1, FC_NAPS(fc)-1 { din = abs (in[2] - Memi[FC_APS(fc)+i]) if (din < dinmin) { out[2] = i + 1 dinmin = din } } i = nint (out[2]) - 1 if (i < 0 || i >= FC_NAPS(fc)) call error (5, "WFMSPEC: Coordinate out of bounds") if (Memi[FC_NPTS(fc)+i] == 0) call error (6, "WFMSPEC: No dispersion function") din = in[1] * Memd[FC_Z(fc)+i] if (Memi[FC_DTYPE(fc)+i] == NONLINEAR) { coeff = Memi[FC_COEFF(fc)+i] out[1] = wf_msp_evali (Memd[coeff], din, Memd[FC_X(fc)+i], Memd[FC_DYDX(fc)+i]) } else { if (Memi[FC_DTYPE(fc)+i] == LOG) din = log10 (din) out[1] = (din-Memd[FC_CRVAL(fc)+i]) / Memd[FC_CDELT(fc)+i] + 1 out[1] = max (0.5D0, min (double(Memi[FC_NPTS(fc)+i]+0.5), out[1])) } end # WF_MSP_COEFF -- Initialize nonlinear coefficient array. procedure wf_msp_coeff (atval, coeff, xmin, xmax) char atval[ARB] #I attribute string pointer coeff #O coefficient array double xmin, xmax #I x limits double dval, temp int ncoeff, type, order, ip, i errchk malloc, realloc double wf_msp_eval() int ctod() begin coeff = NULL ncoeff = 5 ip = 1 while (ctod (atval, ip, dval) > 0) { if (coeff == NULL) call malloc (coeff, NALLOC, TY_DOUBLE) else if (mod (ncoeff, NALLOC) == 0) call realloc (coeff, ncoeff+NALLOC, TY_DOUBLE) Memd[coeff+ncoeff] = dval ncoeff = ncoeff + 1 } if (coeff == NULL) return # Convert range elements to a more efficient form. call realloc (coeff, ncoeff, TY_DOUBLE) Memd[coeff] = ncoeff i = 6 while (i < ncoeff) { type = nint (Memd[coeff+i+1]) order = nint (Memd[coeff+i+2]) switch (type) { case CHEBYSHEV, LEGENDRE: dval = 2 / (Memd[coeff+i+4] - Memd[coeff+i+3]) Memd[coeff+i+3] = (Memd[coeff+i+4] + Memd[coeff+i+3]) / 2 Memd[coeff+i+4] = dval i = i + 6 + order case SPLINE3: Memd[coeff+i+4] = nint (Memd[coeff+i+2]) / (Memd[coeff+i+4] - Memd[coeff+i+3]) i = i + 9 + order case SPLINE1: Memd[coeff+i+4] = nint (Memd[coeff+i+2]) / (Memd[coeff+i+4] - Memd[coeff+i+3]) i = i + 7 + order case PIXEL: i = i + 4 + order case SAMPLE: Memd[coeff+i+3] = i + 5 i = i + 5 + order } } # Set function limits. Memd[coeff+1] = xmin Memd[coeff+2] = xmax dval = wf_msp_eval (Memd[coeff], xmin) temp = wf_msp_eval (Memd[coeff], xmax) Memd[coeff+3] = min (dval, temp) Memd[coeff+4] = max (dval, temp) end # WF_MSP_EVAL -- Evaluate nonlinear function. double procedure wf_msp_eval (coeff, xin) double coeff[ARB] #I coefficients double xin #I physical coordinate for evaluation int i, j, k, ncoeff, type, order double xval, x, y, w, ysum, wsum, a, b, c begin ncoeff = nint (coeff[1]) xval = max (coeff[2], min (coeff[3], xin)) ysum = 0. wsum = 0. j = 6 while (j < ncoeff) { type = nint (coeff[j+2]) order = nint (coeff[j+3]) y = coeff[j+1] w = coeff[j] switch (type) { case CHEBYSHEV: x = (xval - coeff[j+4]) * coeff[j+5] y = y + coeff[j+6] if (order > 1) y = y + coeff[j+7] * x if (order > 2) { k = j + 8 a = 1 b = x do i = 3, order { c = 2 * x * b - a y = y + coeff[k] * c a = b b = c k = k + 1 } } j = j + 6 + order case LEGENDRE: x = (xval - coeff[j+4]) * coeff[j+5] y = y + coeff[j+6] if (order > 1) y = y + coeff[j+7] * x if (order > 2) { k = j + 8 a = 1 b = x do i = 3, order { c = ((2 * i - 3) * x * b - (i - 2) * a) / (i - 1) y = y + coeff[k] * c a = b b = c k = k + 1 } } j = j + 6 + order case SPLINE3: x = (xval - coeff[j+4]) * coeff[j+5] i = max (0, min (int (x), order-1)) k = j + 6 + i b = x - i a = 1 - b c = a * a * a y = y + c * coeff[k] c = 1 + 3 * a * (1 + a * b) y = y + c * coeff[k+1] c = 1 + 3 * b * (1 + a * b) y = y + c * coeff[k+2] c = b * b * b y = y + c * coeff[k+3] j = j + 9 + order case SPLINE1: x = (xval - coeff[j+4]) * coeff[j+5] i = max (0, min (int (x), order-1)) k = j + 6 + i b = x - i a = 1 - b y = y + a * coeff[k] + b * coeff[k+1] j = j + 7 + order case PIXEL: i = max (1, min (int (xval), order-1)) x = xval - i y = y + (1 - x) * coeff[j+3+i] + x * coeff[j+4+i] j = j + 4 + order case SAMPLE: i = nint (coeff[j+4]) for (k=j+2+order; i < k && xval > coeff[i+2]; i=i+2) ; for (k=j+5; i > k && xval < coeff[i-2]; i=i-2) ; coeff[j+4] = i x = (xval - coeff[i]) / (coeff[i+2] - coeff[i]) y = y + (1 - x) * coeff[i+1] + x * coeff[i+3] j = j + 5 + order } ysum = ysum + w * y wsum = wsum + w } ysum = ysum / wsum return (ysum) end # WF_MSP_EVALI -- Evaluate inverse of nonlinear function. double procedure wf_msp_evali (coeff, y, x, dydx) double coeff[ARB] #I function coefficients double y #I world coord to invert double x #U last physical coordinate double dydx #U last coordinate derivative int i double xval, yval, y1, dx, dy double wf_msp_eval() bool fp_equald() begin yval = max (coeff[4], min (coeff[5], y)) dx = 0. dy = 0. do i = 1, NIT { y1 = wf_msp_eval (coeff, x) if (dx > 1.) { if (x + 1 < coeff[3]) dy = wf_msp_eval (coeff, x+1.) - y1 else dy = y1 - wf_msp_eval (coeff, x-1.) } else if (dx < -1.) { if (x - 1 > coeff[2]) dy = y1 - wf_msp_eval (coeff, x-1.) else dy = wf_msp_eval (coeff, x+1.) - y1 } if (!fp_equald (dy, 0.0D0)) dydx = dy dx = (yval - y1) / dydx x = x + dx x = max (coeff[2], min (coeff[3], x)) if (abs (dx) < DX) break } if (i > NIT) { xval = (coeff[2] + coeff[3]) / 2. yval = abs (wf_msp_eval (coeff, xval) - y) dx = (coeff[3] - coeff[2]) / 18. while (dx > DX) { for (x=max (coeff[2],xval-9*dx); x<=min (coeff[3],xval+9*dx); x=x+dx) { dy = abs (wf_msp_eval (coeff, x) - y) if (dy < yval) { xval = x yval = dy } } dx = dx / 10. } x = xval if (x + 1 < coeff[3]) dy = wf_msp_eval (coeff, x+1.) - wf_msp_eval (coeff, x) else dy = wf_msp_eval (coeff, x) - wf_msp_eval (coeff, x-1.) if (!fp_equald (dy, 0.0D0)) dydx = dy } yval = int (x) x = yval + nint ((x-yval) / DX) * DX return (x) end sptable-1.0.pre20180612/src/mwcs/wfp3d.xBAK000066400000000000000000000627451331023215600177210ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include include include "mwcs.h" .help WFP3D .nf ------------------------------------------------------------------------- WFP3D -- WCS function driver for the 3D polynomial correction. These routines apply a 3D polynomial correction to the intermediate coordinates from three coupled axes. The wtype for the three axes is "p3d" and the axtypes are the CTYPE strings for the final world coordinate projection. A secondary MWCS transformation is set up using the axtype values to apply the world coordinate projection. Any of the MWCS function drivers may be used provided they do not use PV coefficients. Driver routines: FN_INIT wf_p3d_init (fc, dir) FN_DESTROY wf_p3d_destroy (fc) FN_FWD wf_p3d_fwd (fc, v1, v2) FN_INV wf_p3d_inv (fc, v1, v2) .endhelp -------------------------------------------------------------------- # Driver specific fields of function call (FC) descriptor. define FC_LEN 42 # Length of structure define FC_MW1 Memi[$1+FCU] # Secondary MWCS pointer define FC_CT1 Memi[$1+FCU+1] # Secondary CT pointer define FC_NPOLY Memi[$1+FCU+2] # Number of polynomials define FC_NCOEFFS Memi[$1+FCU+$2+2] # Number of coefficients define FC_PV Memi[$1+FCU+$2+5] # Coefficients (pointer) define FC_O1 Memi[$1+FCU+$2+8] # Order for first axis define FC_O2 Memi[$1+FCU+$2+11] # Order for second axis define FC_O3 Memi[$1+FCU+$2+14] # Order for third axis define FC_N1 Memd[P2D($1+FCU+16)+$2] # Normalization for first axis define FC_N2 Memd[P2D($1+FCU+22)+$2] # Normalization for second axis define FC_N3 Memd[P2D($1+FCU+28)+$2] # Normalization for third axis define FC_LAST Memd[P2D($1+FCU+34)+$2] # Last inverted coordinate # WF_P3D_INIT -- Initialize the 3D polynomial forward or inverse transform. procedure wf_p3d_init (fc, dir) pointer fc #I pointer to FC descriptor int dir #I direction of transform int i, j, ax, axes[3], npv, strncmp() pointer mw, ct, wp, wv, pv, mw1, ct1, mw_open(), wf_p3d_sctran_1() pointer sp, axtype, wtype, r, w, cd bool streq() begin call smark (sp) call salloc (axtype, SZ_LINE, TY_CHAR) call salloc (wtype, SZ_LINE, TY_CHAR) call salloc (r, 3, TY_DOUBLE) call salloc (w, 3, TY_DOUBLE) call salloc (cd, 9, TY_DOUBLE) # Initialize FC to zero. call aclri (FC_MW1(fc), FC_LEN) ct = FC_CT(fc) mw = CT_MW(ct) wp = FC_WCS(fc) # Open the secondary MWCS. mw1 = mw_open (NULL, 3) call mw_newsystem (mw1, "image", 3) # Set axes. Identify celestial axes to be set later. j = 0 Memc[wtype] = EOS do i = 1, 3 { ax = CT_AXIS(ct,FC_AXIS(fc,i)) ifnoerr (call mw_gwattrs (mw, ax, "axtype", Memc[axtype],SZ_LINE)) { if (strncmp (Memc[axtype], "ra--", 4) == 0 || strncmp (Memc[axtype], "dec-", 4) == 0 || strncmp (Memc[axtype+1], "lon", 3) == 0 || strncmp (Memc[axtype+1], "lat", 3) == 0) { j = j + 1 axes[j] = ax if (Memc[wtype] == EOS) call strcpy (Memc[axtype+5], Memc[wtype], 4) else if (!streq (Memc[axtype+5], Memc[wtype])) call error (1, "Unmatched celestial axes") if (Memc[axtype+2] == '-') Memc[axtype+2] = EOS else if (Memc[axtype+3] == '-') Memc[axtype+3] = EOS else Memc[axtype+4] = EOS call mw_swattrs (mw1, ax, "axtype", Memc[axtype]) } else call mw_swtype (mw1, ax, 1, Memc[axtype], "") } } # Set coupled celestial axes. if (j > 0) { if (j != 2) call error (1, "Unmatched celestial axes") call mw_swtype (mw1, axes, j, Memc[wtype], "") } # Set reference coordinate. wv = MI_DBUF(mw) + WCS_W(wp) - 1 call mw_gwtermd (mw1, Memd[r], Memd[w], Memd[cd], 3) call mw_swtermd (mw1, Memd[r], Memd[wv], Memd[cd], 3) # Set transformation. if (dir == FORWARD) ct1 = wf_p3d_sctran_1 (mw1, "physical", "world", 0) else ct1 = wf_p3d_sctran_1 (mw1, "world", "physical", 0) FC_MW1(fc) = mw1 FC_CT1(fc) = ct1 # Set polynomial coefficients. Everything in the FC # structure has been initialized to zero. Missing PV values # default to 0. do i = 1, 3 { npv = WCS_NPVC(wp,i) pv = WCS_PVC(wp,i) if (npv > 6 && pv != NULL) { pv = MI_DBUF(mw) + pv - 1 FC_O1(fc,i) = nint (Memd[pv]) FC_O2(fc,i) = nint (Memd[pv+1]) FC_O3(fc,i) = nint (Memd[pv+2]) FC_N1(fc,i) = 1 + Memd[pv+3] FC_N2(fc,i) = 1 + Memd[pv+4] FC_N3(fc,i) = 1 + Memd[pv+5] FC_NCOEFFS(fc,i) = (FC_O1(fc,i) + 1) * (FC_O2(fc,i) + 1) * (FC_O3(fc,i) + 1) if (FC_NCOEFFS(fc,i) > 0) { call calloc (FC_PV(fc,i), FC_NCOEFFS(fc,i), TY_DOUBLE) call amovd (Memd[pv+6], Memd[FC_PV(fc,i)], npv-6) FC_NPOLY(fc) = FC_NPOLY(fc) + 1 } else FC_NCOEFFS(fc,i) = 0 } } end # WF_P3D_DESTROY -- Destroy memory associated with function driver. procedure wf_p3d_destroy (fc) pointer fc #I pointer to FC descriptor int i begin do i = 1, 3 call mfree (FC_PV(fc,i), TY_DOUBLE) call wf_p3d_close_3 (FC_MW1(fc)) end # WF_P3D_FWD -- Forward transformation with polynomial correction. procedure wf_p3d_fwd (fc, p, w) pointer fc #I pointer to FC descriptor double p[3] #I physical coordinates (xi, eta) double w[3] #O world coordinates (ra, dec) double p1[3] begin # Apply polynomial correction to each axis and then the projection. if (FC_NPOLY(fc) == 0) call wf_p3d_ctran_2 (FC_CT1(fc), p, w, 3) else { call wf_p3d_a (fc, p, p1) call wf_p3d_ctran_2 (FC_CT1(fc), p1, w, 3) } end define TOL 10000 define NIT 1000 define MAXINC 10 # WF_P3D_INV -- Inverse transformation with polynomial correction. procedure wf_p3d_inv (fc, w, p) pointer fc #I pointer to FC descriptor double w[3] #I input world (RA, DEC) coordinates double p[3] #I output physical coordinates int i, ninc double tol, p1[3], p2[3], dp[3], adp[3], adplast[3], deriv[3,3], ideriv[3,3] bool fp_equald() begin if (FC_NPOLY(fc) == 0) call wf_p3d_ctran_2 (FC_CT1(fc), w, p, 3) else { tol = TOL * EPSILOND call wf_p3d_ctran_2 (FC_CT1(fc), w, p1, 3) ninc = 0 call amovkd (MAX_DOUBLE, adplast, 3) do i = 1, NIT { p[1] = FC_LAST(fc,1); p[2] = FC_LAST(fc,2); p[3] = FC_LAST(fc,3) call wf_p3d_a (fc, p, p2) #if (fp_equald (p1[1], p2[1]) && # fp_equald (p1[2], p2[2]) && # fp_equald (p1[3], p2[3])) # return dp[1] = p1[1] - p2[1]; adp[1] = abs (dp[1]) dp[2] = p1[2] - p2[2]; adp[2] = abs (dp[2]) dp[3] = p1[3] - p2[3]; adp[3] = abs (dp[3]) if (adp[1] < tol && adp[2] < tol && adp[3] < tol) return if (adp[1] <= adplast[1]) ninc = 0 else if (adp[2] <= adplast[2]) ninc = 0 else if (adp[3] <= adplast[3]) ninc = 0 else { ninc = ninc + 1 if (ninc > MAXINC) break } adplast[1] = adp[1]; adplast[2] = adp[2]; adplast[3] = adp[3] call wf_p3d_b (fc, p, deriv) call mw_invertd (deriv, ideriv, 3) call mw_vmuld (ideriv, dp, p2, 3) FC_LAST(fc,1) = p[1] + p2[1] FC_LAST(fc,2) = p[2] + p2[2] FC_LAST(fc,3) = p[3] + p2[3] } p[1] = FC_LAST(fc,1); p[2] = FC_LAST(fc,2); p[3] = FC_LAST(fc,3) call wf_p3d_a (fc, p, p2) #if (fp_equald (p1[1], p2[1]) && # fp_equald (p1[2], p2[2]) && # fp_equald (p1[3], p2[3])) # return dp[1] = p1[1] - p2[1]; adp[1] = abs (dp[1]) dp[2] = p1[2] - p2[2]; adp[2] = abs (dp[2]) dp[3] = p1[3] - p2[3]; adp[3] = abs (dp[3]) if (adp[1] < tol && adp[2] < tol && adp[3] < tol) return call error (1, "Did not converge") } end # WF_P3D_A -- Evaluate polynomials. procedure wf_p3d_a (fc, x, y) pointer fc #I pointer to FC descriptor double x[3] #I input coordinates double y[3] #O output coordinates int i, j, k, m double sum, xi, yj, zk, yjzk pointer pv begin do m = 1, 3 { if (FC_NCOEFFS(fc,m) > 0) { sum = x[m] pv = FC_PV(fc,m) do k = 0, FC_O3(fc,m) { zk = (x[3] / FC_N3(fc,m)) ** k do j = 0, FC_O2(fc,m) { yj = (x[2] / FC_N2(fc,m)) ** j yjzk = yj * zk do i = 0, FC_O1(fc,m) { xi = (x[1] / FC_N1(fc,m)) ** i sum = sum + Memd[pv] * xi * yjzk pv = pv + 1 } } } y[m] = sum } else y[m] = x[m] } end # WF_P3D_B -- Evaluate derivatives of polynomials. procedure wf_p3d_b (fc, x, y) pointer fc #I pointer to FC descriptor double x[3] #I input coordinates double y[3,3] #O output coordinates int i, j, k, m, n double sum, xi, yj, zk, yjzk pointer pv begin do m = 1, 3 { do n = 1, 3 { if (n == m) y[n,m] = 1 else y[n,m] = 0 } } do m = 1, 3 { if (FC_NCOEFFS(fc,m) > 0) { do n = 1, 3 { sum = y[n,m] pv = FC_PV(fc,m) do k = 0, FC_O3(fc,m) { if (n == 3) { if (k == 0) { pv = pv + (FC_O1(fc,m)+1) * (FC_O2(fc,m)+1) next } zk = k / FC_N3(fc,m) * (x[3] / FC_N3(fc,m)) ** (k-1) } else zk = (x[3] / FC_N3(fc,m)) ** k do j = 0, FC_O2(fc,m) { if (n == 2) { if (j == 0) { pv = pv + (FC_O1(fc,m)+1) next } yj = j / FC_N2(fc,m) * (x[2] / FC_N2(fc,m)) ** (j-1) } else yj = (x[2] / FC_N2(fc,m)) ** j yjzk = yj * zk do i = 0, FC_O1(fc,m) { if (n == 1) { if (i == 0) { pv = pv + 1 next } xi = i / FC_N1(fc,m) * (x[1] / FC_N1(fc,m)) ** (i-1) } else xi = (x[1] / FC_N1(fc,m)) ** i sum = sum + Memd[pv] * xi * yjzk pv = pv + 1 } } } y[n,m] = sum } } } end ################################################################################ # The following routines are copies of MW_SCTRAN and MW_CTRAND included # here to avoid recursion. # MW_SCTRAN -- Setup a coordinate transformation (CTRAN) descriptor. pointer procedure wf_p3d_sctran_1 (mw, system1, system2, axbits) pointer mw #I pointer to MWCS descriptor char system1[ARB] #I input coordinate system char system2[ARB] #I output coordinate system int axbits #I bitmap defining axes to be transformed bool newfunc int naxes, axis[MAX_DIM], wfno, fn, epa int i, j, k , matlen, ndata, ctlen, pdim pointer i_ltm, i_ltv, o_ltm, o_ltv, t_ltm, t_ltv, ltm, ltv pointer sp, w1, w2, ct, wf, fc, lp, ip, op, ct_r, sv_wcs pointer coerce() errchk syserr, syserrs, calloc, zcall2, mw_invertd, mw_ssystem include "mwcs.com" begin call smark (sp) # Get pointers to the input and output systems. sv_wcs = MI_WCS(mw) iferr { call mw_ssystem (mw, system1) w1 = MI_WCS(mw) call mw_ssystem (mw, system2) w2 = MI_WCS(mw) } then { MI_WCS(mw) = sv_wcs call erract (EA_ERROR) } else MI_WCS(mw) = sv_wcs # Get the physical axis list. The bitflags in AXBITS define the axes # in the logical system; run these through the axis map (if enabled) # to get the list of physical axes for which the transformation is to # be prepared. call mw_gaxlist (mw, axbits, axis, naxes) # Allocate the CTRAN descriptor. First we must figure out how # much space is required. The space required is for the base # descriptor, plus additional space for the LTM and LTV, which vary # in size depending upon the dimensionality of the transformation. # The whole thing is then doubled to provide 2 versions of the # descriptor, providing both single and double precision versions # of the LTM and LTV. Any additional storage utilized by the WCS # functions is separately allocated by the initialization routines # in the function drivers. matlen = naxes * naxes ndata = matlen + naxes ctlen = LEN_CTBASE + ndata * SZ_DOUBLE / SZ_STRUCT call calloc (ct, ctlen*2, TY_STRUCT) # Save a pointer to the CTRAN descriptor in the main MWCS descriptor, # to permit automatic deallocation at close time. do i = 1, MAX_CTRAN+1 { if (i > MAX_CTRAN) { call mfree (ct, TY_STRUCT) call syserr (SYS_MWCTOVFL) } if (MI_CTRAN(mw,i) == NULL) { MI_CTRAN(mw,i) = ct break } } CT_MW(ct) = mw CT_WCSI(ct) = w1 CT_WCSO(ct) = w2 CT_NDIM(ct) = naxes CT_R(ct) = ct + ctlen call amovi (axis, CT_AXIS(ct,1), naxes) CT_LTM(ct) = coerce (ct + LEN_CTBASE, TY_STRUCT, TY_DOUBLE) CT_LTV(ct) = CT_LTM(ct) + matlen ltm = CT_LTM(ct) ltv = CT_LTV(ct) # We also need some full-system matrix and vector buffers. pdim = min (WCS_NDIM(w1), WCS_NDIM(w2)) pdim = min (MI_NDIM(mw), pdim) i = pdim * pdim call salloc (i_ltm, i, TY_DOUBLE) call salloc (i_ltv, pdim, TY_DOUBLE) call salloc (o_ltm, i, TY_DOUBLE) call salloc (o_ltv, pdim, TY_DOUBLE) call salloc (t_ltm, i, TY_DOUBLE) call salloc (t_ltv, pdim, TY_DOUBLE) # Compute the transformation. A transformation between any two # world systems W1 and W2 consists of the transformation W1->P # from W1 to the physical system, followed by a transformation # P->W2 to the second world system. The linear portions of these # two transformations can be combined to produce a single linear # transformation, and if no WCS function calls are involved at # either end, the entire transformation reduces to a single linear # transformation defined by LTM and LTV. Note that as far as we # are concerned here, the special world systems "logical" and # "physical" are just like other world systems, except that both are # always linear systems. The linear term for the logical system is # the MWCS Lterm; for the physical system it is the identity matrix. # Set up the transformation W1->P. First we must determine if there # are any WCS function calls. We do this by going ahead and compiling # the "in" function calls in the CTRAN descriptor. do i = 1, naxes { wfno = WCS_AXCLASS(w1,axis[i]) # Skip to next axis if no WCS function is assigned to this axis. if (wfno == 0) next # Has function call for this axis already been compiled? newfunc = true do j = 1, CT_NCALLI(ct) { fc = CT_FCI(ct,j) do k = 1, FC_NAXES(fc) if (FC_AXIS(fc,k) == i) newfunc = false } # Compile a function call for the inverse transformation. if (newfunc) { CT_NCALLI(ct) = CT_NCALLI(ct) + 1 if (CT_NCALLI(ct) > MAX_CALL) call syserrs (SYS_MWFCOVFL, system1) fc = CT_FCI(ct,CT_NCALLI(ct)) wf = WCS_FUNC(w1,wfno) fn = WF_FN(wf) FC_CT(fc) = ct FC_WCS(fc) = w1 FC_WF(fc) = wf FC_FCN(fc) = FN_INV(fn) FC_NAXES(fc) = WF_NAXES(wf) # Store CTRAN-relative list of axes in function call # descriptor. Verify that all the axes needed for the # function call are included in the transformation. # This requirement can theoretically be relaxed in # some cases but this is not supported in MWCS. do j = 1, WF_NAXES(wf) { for (k=1; k <= naxes; k=k+1) if (axis[k] == WF_AXIS(wf,j)) { FC_AXIS(fc,j) = k break } if (k > naxes) call syserrs (SYS_MWMISSAX, system1) } # Call the function driver to perform any driver dependent # initialization. epa = FN_INIT(fn) if (epa != NULL) call zcall2 (epa, fc, INVERSE) } } # Prepare the linear part of the input transformation W1->P. # This is LTM=inv(CD), and for axis I, LTV[i]=(R[i]-inv(CD)*W) # if no function call, or LTV[i]=R[i] if there is a function # assigned to axis I which already deals with the W[i]. All # this is done in the full dimension of the internal system for # now; extraction of the portion of the full system affecting # the CTRAN axes is done later to permit verification of the # legality of the reduction step required. # Invert CD matrix. if (WCS_CD(w1) == NULL) call mw_mkidmd (Memd[i_ltm], pdim) else call mw_invertd (D(mw,WCS_CD(w1)), Memd[i_ltm], pdim) # If no function calls for an axis and W is set, LTV=(R-inv(CD)*W). if (WCS_W(w1) != NULL) { call amovd (D(mw,WCS_W(w1)), Memd[i_ltv], pdim) do i = 1, CT_NCALLI(ct) { fc = CT_FCI(ct,i) do j = 1, FC_NAXES(fc) { k = axis[FC_AXIS(fc,j)] Memd[i_ltv+k-1] = 0. } } call mw_vmuld (Memd[i_ltm], Memd[i_ltv], Memd[t_ltv], pdim) if (WCS_R(w1) == NULL) call anegd (Memd[t_ltv], Memd[i_ltv], pdim) else call asubd (D(mw,WCS_R(w1)), Memd[t_ltv], Memd[i_ltv], pdim) } else { if (WCS_R(w1) == NULL) call aclrd (Memd[i_ltv], pdim) else call amovd (D(mw,WCS_R(w1)), Memd[i_ltv], pdim) } # Now prepare the output side of the transformation, from P->W2. # Like the input half, this consists of a linear term and a list # of zero or more function calls. # Compile the "out" function calls in the CTRAN descriptor. do i = 1, naxes { wfno = WCS_AXCLASS(w2,axis[i]) # Skip to next axis if no WCS function is assigned to this axis. if (wfno == 0) next # Has function call for this axis already been compiled? newfunc = true do j = 1, CT_NCALLO(ct) { fc = CT_FCO(ct,j) do k = 1, FC_NAXES(fc) if (FC_AXIS(fc,k) == i) newfunc = false } # Compile a function call for the forward transformation. if (newfunc) { CT_NCALLO(ct) = CT_NCALLO(ct) + 1 if (CT_NCALLO(ct) > MAX_CALL) call syserrs (SYS_MWFCOVFL, system2) fc = CT_FCO(ct,CT_NCALLO(ct)) wf = WCS_FUNC(w2,wfno) fn = WF_FN(wf) FC_CT(fc) = ct FC_WCS(fc) = w2 FC_WF(fc) = wf FC_FCN(fc) = FN_FWD(fn) FC_NAXES(fc) = WF_NAXES(wf) # Store CTRAN-relative list of axes in function call # descriptor. Verify that all the axes needed for the # function call are included in the transformation. do j = 1, WF_NAXES(wf) { for (k=1; k <= naxes; k=k+1) if (axis[k] == WF_AXIS(wf,j)) { FC_AXIS(fc,j) = k break } if (k > naxes) call syserrs (SYS_MWMISSAX, system2) } # Call the function driver to perform any driver dependent # initialization. epa = FN_INIT(fn) if (epa != NULL) call zcall2 (epa, fc, FORWARD) } } # Prepare the linear part of the input transformation P->W2. # This is LTM=CD, and for axis I, LTV[i]=(W-CD*R) if no function # call, or LTV[i]=(-CD*R) if there is a function assigned to axis # I which already deals with the W[i]. # Copy CD matrix to LTM. if (WCS_CD(w2) == NULL) call mw_mkidmd (Memd[o_ltm], pdim) else call amovd (D(mw,WCS_CD(w2)), Memd[o_ltm], pdim*pdim) # Copy -R to t_ltv. if (WCS_R(w2) == NULL) call aclrd (Memd[t_ltv], pdim) else call amulkd (D(mw,WCS_R(w2)), -1.0D0, Memd[t_ltv], pdim) # Compute -CD*R in LTV. call mw_vmuld (Memd[o_ltm], Memd[t_ltv], Memd[o_ltv], pdim) # If no function calls for an axis and W is set, LTV=(W-CD*R). if (WCS_W(w2) != NULL) { call amovd (D(mw,WCS_W(w2)), Memd[t_ltv], pdim) call aaddd (Memd[t_ltv], Memd[o_ltv], Memd[o_ltv], pdim) do i = 1, CT_NCALLO(ct) { fc = CT_FCO(ct,i) do j = 1, FC_NAXES(fc) { k = axis[FC_AXIS(fc,j)] # undo +W[k] lp = o_ltv + k - 1 Memd[lp] = Memd[lp] - Memd[t_ltv+k-1] } } } # Now combine the linear terms of the input and output transformations # to produce the linear portion of the full transformation. call mw_mmuld (Memd[o_ltm], Memd[i_ltm], Memd[t_ltm], pdim) call mw_vmuld (Memd[o_ltm], Memd[i_ltv], Memd[t_ltv], pdim) call aaddd (Memd[o_ltv], Memd[t_ltv], Memd[t_ltv], pdim) # Extract the rows of the full linear transformation which are used # for the axes involved in the transformation we are compiling. # In the process we must examine the off-diagonal elements of the # matrix to verify that the system does not include any dependencies # upon axes other than those included in the transformation we are # compiling. (This restriction prohibits dimensional reduction via # an image section which results in loss of a rotated axis). do i = 1, naxes { # Get matrix line pointers for axis[i]. ip = t_ltm + (axis[i]-1) * pdim op = ltm + (i-1) * naxes do j = 1, pdim { # Is column J used by transform? for (k=1; k <= naxes; k=k+1) if (axis[k] == j) break # If column J is not used in the transform but is not zero, # then transform I is dependent upon physical axis J and # we cannot do the transform. If column J is used in the # transform, copy the value to the final output matrix LTM # discarding unused columns as we go. if (k > naxes) { # Check for dependency on axis outside transform. if (abs(Memd[ip+j-1]) > EPSILOND*100.0D0) call syserr (SYS_MWROTDEP) } else { # Add matrix element to final LTM. Memd[op+k-1] = Memd[ip+j-1] } } # Copy the LTV vector element. Memd[ltv+i-1] = Memd[t_ltv+axis[i]-1] } # Determine the transformation type. This is LNR for a purely # linear transformation with no rotational (off-diagonal) terms, # LRO for a purely linear transform with rotational terms, and # GEN for everything else. if (CT_NCALLI(ct) > 0 || CT_NCALLO(ct) > 0) CT_TYPE(ct) = GEN else { CT_TYPE(ct) = LNR do j = 1, naxes do i = 1, naxes if (i != j) { lp = ltm + (j-1)*naxes + i-1 if (abs(Memd[lp]) > EPSILOND*100.0D0) { CT_TYPE(ct) = LRO break } } } # Prepare the single precision part of the transform. call amovi (Memi[CT_D(ct)], Memi[CT_R(ct)], ctlen) ct_r = CT_R(ct) CT_LTM(ct_r) = coerce (ct_r + LEN_CTBASE, TY_STRUCT, TY_REAL) CT_LTV(ct_r) = CT_LTM(ct_r) + matlen call achtdr (Memd[CT_LTM(ct)], Memr[CT_LTM(ct_r)], matlen) call achtdr (Memd[CT_LTV(ct)], Memr[CT_LTV(ct_r)], naxes) call sfree (sp) return (ct) end # MW_CTRAN -- Transform a single N-dimensional point, using the optimized # transformation set up by a prior call to MW_SCTRAN. procedure wf_p3d_ctran_2 (a_ct, p1, p2, ndim) pointer a_ct #I pointer to CTRAN descriptor double p1[ndim] #I coordinates of point in input system double p2[ndim] #O coordinates of point in output system int ndim #I dimensionality of point int naxes, i, j pointer ct, fc, ltm, ltv, d_ct double v1[MAX_DIM], v2[MAX_DIM], iv[MAX_DIM], ov[MAX_DIM] errchk zcall3 begin # Get real or double version of descriptor. ct = CT_D(a_ct) ltm = CT_LTM(ct) ltv = CT_LTV(ct) # Specially optimized cases. if (CT_TYPE(ct) == LNR) { # Simple linear, nonrotated transformation. do i = 1, ndim p2[i] = Memd[ltm+(i-1)*(ndim+1)] * p1[i] + Memd[ltv+i-1] return } else if (CT_TYPE(ct) == LRO) { # Simple linear, rotated transformation. call mw_ltrand (p1, p2, Memd[ltm], Memd[ltv], ndim) return } # If we get here the transformation involves a call to one or more # WCS functions. In this general case, the transformation consists # of zero or more calls to WCS functions to transform the input # world coordinates to the linear input system, followed by a general # linear transformation to the linear output system, followed by zero # or more calls to WCS functions to do the forward transformation # to generate the final output world coordinates. The WCS function # calls are always evaluated in double precision. # Make zero or more WCS function calls for the different axes of the # input system (inverse transform). call achtdd (p1, iv, ndim) do j = 1, CT_NCALLI(ct) { # Get pointer to function call descriptor. fc = CT_FCI(ct,j) naxes = FC_NAXES(fc) # Extract the coordinate vector for the function call. do i = 1, naxes v1[i] = p1[FC_AXIS(fc,i)] # Call the WCS function. call zcall3 (FC_FCN(fc), fc, v1, v2) # Edit the vector IV, replacing the entries associated with # the WCS function by the transformed values. do i = 1, naxes iv[FC_AXIS(fc,i)] = v2[i] } # Apply the general linear transformation. We may as well do this in # double since we already have to use double for the function calls. d_ct = CT_D(a_ct) call mw_ltrand (iv, ov, Memd[CT_LTM(d_ct)], Memd[CT_LTV(d_ct)], ndim) # Make zero or more WCS function calls for the different axes of the # output system (forward transform to final world system). call achtdd (ov, p2, ndim) do j = 1, CT_NCALLO(ct) { # Get pointer to function call descriptor. fc = CT_FCO(ct,j) naxes = FC_NAXES(fc) # Extract the coordinate vector for the function call. do i = 1, naxes v1[i] = ov[FC_AXIS(fc,i)] # Call the WCS function. call zcall3 (FC_FCN(fc), fc, v1, v2) # Edit the final output vector, replacing the entries for the # function axes by their transformed values. do i = 1, naxes p2[FC_AXIS(fc,i)] = v2[i] } end # MW_CLOSE -- Close a MWCS descriptor and deallocate all resources used # by the descriptor. Any CTRAN descriptors which have been opened on # the MWCS are automatically closed if not already manually closed by # the application. procedure wf_p3d_close_3 (mw) pointer mw #U pointer to MWCS descriptor int i pointer ct begin # Free any still allocated CTRAN descriptors. do i = 1, MAX_CTRAN { ct = MI_CTRAN(mw,i) if (ct != NULL) iferr (call wf_p3d_ctfree_4 (ct)) call erract (EA_WARN) } # Free the string and data buffers. if (MI_SBUF(mw) != NULL) call mfree (MI_SBUF(mw), TY_CHAR) if (MI_DBUF(mw) != NULL) call mfree (MI_DBUF(mw), TY_DOUBLE) # Free the main descriptor. call mfree (mw, TY_STRUCT) end # MW_CTFREE -- Free a CTRAN (coordinate transformation) descriptor. We keep # track of all allocated CTRAN descriptors in the parent MWCS descriptor, and # NULL the saved entry for a descriptor when it is freed, thus guaranteeing # that a descriptor will be freed only once. procedure wf_p3d_ctfree_4 (ct) pointer ct #U pointer to CTRAN descriptor int fn, i, j pointer mw, fc include "mwcs.com" begin if (ct != NULL) { mw = CT_MW(ct) if (mw != NULL) do i = 1, MAX_CTRAN if (MI_CTRAN(mw,i) == ct) { # Free private storage for any input WCS functions. do j = 1, CT_NCALLI(ct) { fc = CT_FCI(ct,j) fn = WF_FN(FC_WF(fc)) if (FN_DESTROY(fn) != NULL) call zcall1 (FN_DESTROY(fn), fc) } # Free private storage for any output WCS functions. do j = 1, CT_NCALLO(ct) { fc = CT_FCO(ct,j) fn = WF_FN(FC_WF(fc)) if (FN_DESTROY(fn) != NULL) call zcall1 (FN_DESTROY(fn), fc) } # Free the main CTRAN descriptor. call mfree (ct, TY_STRUCT) MI_CTRAN(mw,i) = NULL break } } end sptable-1.0.pre20180612/src/mwcs/wfpar.x000066400000000000000000000347121331023215600174700ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include "mwcs.h" .help WFPAR .nf ------------------------------------------------------------------------- WFPAR -- WCS function driver for the Craster or parabolic projection. Driver routines: FN_INIT wf_par_init (fc, dir) FN_DESTROY (none) FN_FWD wf_par_fwd (fc, v1, v2) FN_INV wf_par_inv (fc, v1, v2) .endhelp -------------------------------------------------------------------- # Driver specific fields of function call (FC) descriptor. define FC_IRA Memi[$1+FCU] # RA axis (1 or 2) define FC_IDEC Memi[$1+FCU+1] # DEC axis (1 or 2) define FC_NATRA Memd[P2D($1+FCU+2)] # RA of native pole (rads) define FC_NATDEC Memd[P2D($1+FCU+4)] # DEC of native pole (rads) define FC_LONGP Memd[P2D($1+FCU+6)] # LONGPOLE (rads) define FC_COSDEC Memd[P2D($1+FCU+8)] # cosine (NATDEC) define FC_SINDEC Memd[P2D($1+FCU+10)] # sine (NATDEC) define FC_SPHTOL Memd[P2D($1+FCU+12)] # trig tolerance define FC_RODEG Memd[P2D($1+FCU+14)] # RO (degs) define FC_RECRODEG Memd[P2D($1+FCU+16)] # 1 / RO (degs) define FC_PIRODEG Memd[P2D($1+FCU+18)] # PI * RO (degs) define FC_RECPIRODEG Memd[P2D($1+FCU+20)] # 1 / (PI * RO) (degs) define FC_BADCVAL Memd[P2D($1+FCU+22)] # bad coordinate value define FC_W Memd[P2D($1+FCU+24)+($2)-1] # CRVAL axis (1 and 2) # WF_PAR_INIT -- Initialize the forward or inverse Craster or parabolic # transform. Initialization for this transformation consists of, # determining which axis is RA / LON and which is DEC / LAT, reading in the # native longitude and latitude of the pole in celestial coordinates LONGPOLE # and LATPOLE from the attribute list, computing the celestial longitude and # colatitude of the native pole, precomputing the Euler angles and associated # intermediary functions of the reference point, reading in the projection # parameter RO from the attribute list, and precomputing the various required # intermediate quantities. If LONGPOLE is undefined then a value of 180.0 # degrees is assumed if the celestial latitude of the reference point is less # than 0, otherwise 0 degrees is assumed. If LATPOLE is undefined then the # most northerly of the two possible solutions is chosen, otherwise the # solution closest to LATPOLE is chosen. If RO is undefined a value of 180.0 / # PI is assumed. In order to determine the axis order, the parameter # "axtype={ra|dec} {xlon|xlat}" must have been set in the attribute list for # the function. The LONGPOLE, LATPOLE, and RO parameters may be set in either # or both of the axes attribute lists, but the value in the RA axis attribute # list takes precedence. procedure wf_par_init (fc, dir) pointer fc #I pointer to FC descriptor int dir #I direction of transform int i double dec, latpole, theta0, clat0, slat0, cphip, sphip, cthe0, sthe0, x, y, z double u, v, latp1, latp2, latp, maxlat, tol pointer sp, atvalue, ct, mw, wp, wv int ctod() data tol/1.0d-10/ errchk wf_decaxis(), mw_gwattrs() begin # Allocate space for the attribute string. call smark (sp) call salloc (atvalue, SZ_LINE, TY_CHAR) # Get the required mwcs pointers. ct = FC_CT(fc) mw = CT_MW(ct) wp = FC_WCS(fc) # Determine which is the DEC axis, and hence the axis order. call wf_decaxis (fc, FC_IRA(fc), FC_IDEC(fc)) # Get the value of W for each axis, i.e. the world coordinates at # the reference point. wv = MI_DBUF(mw) + WCS_W(wp) - 1 do i = 1, 2 FC_W(fc,i) = Memd[wv+CT_AXIS(ct,FC_AXIS(fc,i))-1] # Determine the native longitude and latitude of the pole of the # celestial coordinate system corresponding to the FITS keywords # LONGPOLE and LATPOLE. LONGPOLE has no default but will be set # to 180 or 0 depending on the value of the declination of the # reference point. LATPOLE has no default but will be set depending # on the values of LONGPOLE and the reference declination. iferr { call mw_gwattrs (mw, FC_IRA(fc), "longpole", Memc[atvalue], SZ_LINE) } then { iferr { call mw_gwattrs (mw, FC_IDEC(fc), "longpole", Memc[atvalue], SZ_LINE) } then { FC_LONGP(fc) = INDEFD } else { i = 1 if (ctod (Memc[atvalue], i, FC_LONGP(fc)) <= 0) FC_LONGP(fc) = INDEFD } } else { i = 1 if (ctod (Memc[atvalue], i, FC_LONGP(fc)) <= 0) FC_LONGP(fc) = INDEFD } iferr { call mw_gwattrs (mw, FC_IRA(fc), "latpole", Memc[atvalue], SZ_LINE) } then { iferr { call mw_gwattrs (mw, FC_IDEC(fc), "latpole", Memc[atvalue], SZ_LINE) } then { latpole = INDEFD } else { i = 1 if (ctod (Memc[atvalue], i, latpole) <= 0) latpole = INDEFD } } else { i = 1 if (ctod (Memc[atvalue], i, latpole) <= 0) latpole = INDEFD } # Fetch the RO projection parameter which is the radius of the # generating sphere for the projection. If RO is absent which # is the usual case set it to 180 / PI. Search both axes for # this quantity. iferr { call mw_gwattrs (mw, FC_IRA(fc), "ro", Memc[atvalue], SZ_LINE) } then { iferr { call mw_gwattrs (mw, FC_IDEC(fc), "ro", Memc[atvalue], SZ_LINE) } then { FC_RODEG(fc) = 180.0d0 / DPI } else { i = 1 if (ctod (Memc[atvalue], i, FC_RODEG(fc)) <= 0) FC_RODEG(fc) = 180.0d0 / DPI } } else { i = 1 if (ctod (Memc[atvalue], i, FC_RODEG(fc)) <= 0) FC_RODEG(fc) = 180.0d0 / DPI } # Compute the native longitude of the celestial pole. dec = DDEGTORAD(FC_W(fc,FC_IDEC(fc))) theta0 = 0.0d0 if (IS_INDEFD(FC_LONGP(fc))) { if (dec < theta0) FC_LONGP(fc) = DPI else FC_LONGP(fc) = 0.0d0 } else FC_LONGP(fc) = DDEGTORAD(FC_LONGP(fc)) # Compute the celestial longitude and latitude of the native pole. clat0 = cos (dec) slat0 = sin (dec) cphip = cos (FC_LONGP(fc)) sphip = sin (FC_LONGP(fc)) cthe0 = cos (theta0) sthe0 = sin (theta0) x = cthe0 * cphip y = sthe0 z = sqrt (x * x + y * y) # The latitude of the native pole is determined by LATPOLE in this # case. if (z == 0.0d0) { if (slat0 != 0.0d0) call error (0, "WF_PAR_INIT: Invalid projection parameters") if (IS_INDEFD(latpole)) latp = 999.0d0 else latp = DDEGTORAD(latpole) } else { if (abs (slat0 / z) > 1.0d0) call error (0, "WF_PAR_INIT: Invalid projection parameters") u = atan2 (y, x) v = acos (slat0 / z) latp1 = u + v if (latp1 > DPI) latp1 = latp1 - DTWOPI else if (latp1 < -DPI) latp1 = latp1 + DTWOPI latp2 = u - v if (latp2 > DPI) latp2 = latp2 - DTWOPI else if (latp2 < -DPI) latp2 = latp2 + DTWOPI if (IS_INDEFD(latpole)) maxlat = 999.0d0 else maxlat = DDEGTORAD(latpole) if (abs (maxlat - latp1) < abs (maxlat - latp2)) { if (abs (latp1) < (DHALFPI + tol)) latp = latp1 else latp = latp2 } else { if (abs (latp2) < (DHALFPI + tol)) latp = latp2 else latp = latp1 } } FC_NATDEC(fc) = DHALFPI - latp z = cos (latp) * clat0 if (abs(z) < tol) { # Celestial pole at the reference point. if (abs(clat0) < tol) { FC_NATRA(fc) = DDEGTORAD(FC_W(fc,FC_IRA(fc))) FC_NATDEC(fc) = DHALFPI - theta0 # Celestial pole at the native north pole. } else if (latp > 0.0d0) { FC_NATRA(fc) = DDEGTORAD(FC_W(fc,FC_IRA(fc))) + FC_LONGP(fc) - DPI FC_NATDEC(fc) = 0.0d0 # Celestial pole at the native south pole. } else if (latp < 0.0d0) { FC_NATRA(fc) = DDEGTORAD(FC_W(fc,FC_IRA(fc))) - FC_LONGP(fc) FC_NATDEC(fc) = DPI } } else { x = (sthe0 - sin (latp) * slat0) / z y = sphip * cthe0 / clat0 if (x == 0.0d0 && y == 0.0d0) call error (0, "WF_PAR_INIT: Invalid projection parameters") FC_NATRA(fc) = DDEGTORAD(FC_W(fc,FC_IRA(fc))) - atan2 (y,x) } if (FC_W(fc,FC_IRA(fc)) >= 0.0d0) { if (FC_NATRA(fc) < 0.0d0) FC_NATRA(fc) = FC_NATRA(fc) + DTWOPI } else { if (FC_NATRA(fc) > 0.0d0) FC_NATRA(fc) = FC_NATRA(fc) - DTWOPI } FC_COSDEC(fc) = cos (FC_NATDEC(fc)) FC_SINDEC(fc) = sin (FC_NATDEC(fc)) # Check for ill-conditioned parameters. if (abs(latp) > (DHALFPI+tol)) call error (0, "WF_PAR_INIT: Invalid projection parameters") # Compute the required intermediate quantities. FC_RECRODEG(fc) = 1.0d0 / FC_RODEG(fc) FC_PIRODEG(fc) = DPI * FC_RODEG(fc) FC_RECPIRODEG(fc) = 1.0d0 / FC_PIRODEG(fc) # Set the bad coordinate value. FC_SPHTOL(fc) = 1.0d-5 # Set the bad coordinate value. FC_BADCVAL(fc) = INDEFD # Free working space. call sfree (sp) end # WF_PAR_FWD -- Forward transform (physical to world) for the Craster or # parabolic projection. procedure wf_par_fwd (fc, p, w) pointer fc #I pointer to FC descriptor double p[2] #I physical coordinates (x, y) double w[2] #O world coordinates (ra, dec) int ira, idec double x, y, s, t, phi, theta, costhe, sinthe, dphi, cosphi, sinphi double ra, dec, dlng, z begin # Get the axis numbers. ira = FC_IRA(fc) idec = FC_IDEC(fc) # Compute native spherical coordinates PHI and THETA in degrees from # the projected coordinates. This is the projection part of the # computation. x = p[ira] y = p[idec] # Compute PHI. s = y * FC_RECPIRODEG(fc) if (s > 1.0d0 || s < -1.0d0) { w[ira] = FC_BADCVAL(fc) w[idec] = FC_BADCVAL(fc) return } t = 1.0d0 - 4.0d0 * s * s if (t == 0.0d0) { if (x == 0.0d0) { phi = 0.0d0 } else { w[ira] = FC_BADCVAL(fc) w[idec] = FC_BADCVAL(fc) return } } else phi = FC_RECRODEG(fc) * x / t # Compute THETA. theta = 3.0d0 * asin (s) # Compute the celestial coordinates RA and DEC from the native # coordinates PHI and THETA. This is the spherical geometry part # of the computation. costhe = cos (theta) sinthe = sin (theta) dphi = phi - FC_LONGP(fc) cosphi = cos (dphi) sinphi = sin (dphi) # Compute the RA. x = sinthe * FC_SINDEC(fc) - costhe * FC_COSDEC(fc) * cosphi if (abs (x) < FC_SPHTOL(fc)) x = -cos (theta + FC_NATDEC(fc)) + costhe * FC_COSDEC(fc) * (1.0d0 - cosphi) y = -costhe * sinphi if (x != 0.0d0 || y != 0.0d0) { dlng = atan2 (y, x) } else { dlng = dphi + DPI } ra = DRADTODEG(FC_NATRA(fc) + dlng) # Normalize the RA. if (FC_NATRA(fc) >= 0.0d0) { if (ra < 0.0d0) ra = ra + 360.0d0 } else { if (ra > 0.0d0) ra = ra - 360.0d0 } if (ra > 360.0d0) ra = ra - 360.0d0 else if (ra < -360.0d0) ra = ra + 360.0d0 # Compute the DEC. if (mod (dphi, DPI) == 0.0d0) { dec = DRADTODEG(theta + cosphi * FC_NATDEC(fc)) if (dec > 90.0d0) dec = 180.0d0 - dec if (dec < -90.0d0) dec = -180.0d0 - dec } else { z = sinthe * FC_COSDEC(fc) + costhe * FC_SINDEC(fc) * cosphi if (abs(z) > 0.99d0) { if (z >= 0.0d0) dec = DRADTODEG(acos (sqrt(x * x + y * y))) else dec = DRADTODEG(-acos (sqrt(x * x + y * y))) } else dec = DRADTODEG(asin (z)) } # Store the results. w[ira] = ra w[idec] = dec end # WF_PAR_INV -- Inverse transform (world to physical) for the Craster # or parabolic projection. procedure wf_par_inv (fc, w, p) pointer fc #I pointer to FC descriptor double w[2] #I input world (RA, DEC) coordinates double p[2] #I output physical coordinates int ira, idec double ra, dec, cosdec, sindec, cosra, sinra, x, y, phi, theta, s, dphi, z begin # Get the axes numbers. ira = FC_IRA(fc) idec = FC_IDEC(fc) # Compute the transformation from celestial coordinates RA and # DEC to native coordinates PHI and THETA. This is the spherical # geometry part of the transformation. ra = DDEGTORAD (w[ira]) - FC_NATRA(fc) dec = DDEGTORAD (w[idec]) cosra = cos (ra) sinra = sin (ra) cosdec = cos (dec) sindec = sin (dec) # Compute PHI. x = sindec * FC_SINDEC(fc) - cosdec * FC_COSDEC(fc) * cosra if (abs(x) < FC_SPHTOL(fc)) x = -cos (dec + FC_NATDEC(fc)) + cosdec * FC_COSDEC(fc) * (1.0d0 - cosra) y = -cosdec * sinra if (x != 0.0d0 || y != 0.0d0) dphi = atan2 (y, x) else dphi = ra - DPI phi = FC_LONGP(fc) + dphi if (phi > DPI) phi = phi - DTWOPI else if (phi < -DPI) phi = phi + DTWOPI # Compute THETA. if (mod (ra, DPI) == 0.0) { theta = dec + cosra * FC_NATDEC(fc) if (theta > DHALFPI) theta = DPI - theta if (theta < -DHALFPI) theta = -DPI - theta } else { z = sindec * FC_COSDEC(fc) + cosdec * FC_SINDEC(fc) * cosra if (abs (z) > 0.99d0) { if (z >= 0.0) theta = acos (sqrt(x * x + y * y)) else theta = -acos (sqrt(x * x + y * y)) } else theta = asin (z) } # Compute the transformation from native coordinates PHI and THETA # to projected coordinates X and Y. s = sin (theta / 3.0d0) p[ira] = FC_RODEG(fc) * phi * (1.0d0 - 4.0 * s * s) p[idec] = FC_PIRODEG(fc) * s end sptable-1.0.pre20180612/src/mwcs/wfpc.x000066400000000000000000000722171331023215600173120ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include include include "mwcs.h" .help WFPC .nf ------------------------------------------------------------------------- WFPC -- WCS function driver for polynomial corrections. These routines apply a polynomial correction to the intermediate coordinates from up to three coupled axes plus a radial variable. The wtype for the axes is "pc" and the axtypes are the CTYPE strings for the final world coordinate projection. A secondary MWCS transformation is set up using the axtype values to apply the world coordinate projection. Any of the MWCS function drivers may be used. Driver routines: FN_INIT wf_pc_init (fc, dir) FN_DESTROY wf_pc_destroy (fc) FN_FWD wf_pc_fwd (fc, v1, v2) FN_INV wf_pc_inv (fc, v1, v2) .endhelp -------------------------------------------------------------------- define NAXMAX 3 # Max axes define NDIMMAX 4 # Max poly dimension # Driver specific fields of function call (FC) descriptor. define FC_MW1 Memi[$1+FCU] # Secondary MWCS pointer define FC_CT1 Memi[$1+FCU+1] # Secondary CT pointer define FC_NAX Memi[$1+FCU+2] # Number of axes define FC_NDIM Memi[$1+FCU+3] # Polynomial dimensionality define FC_NPOLY Memi[$1+FCU+4] # Number of defined polynomials define FC_LAST Memd[P2D($1+FCU+6)+$2-1] # Last inverted coordinate define FC_P Memi[$1+FCU+6+2*NAXMAX+$2-1] # Polynomial structures # Polynomial structure. define P_LEN (2*$1+4*NAXMAX+NDIMMAX) # Length of structure define P_N Memd[P2D($1)+$2-1] # Normalizations define P_R Memd[P2D($1+2*NAXMAX)+$2-1] # Radius coefficients define P_O Memi[$1+4*NAXMAX+$2-1] # Orders define P_C P2D($1+4*NAXMAX+NDIMMAX) # Coefficients # WF_PC_INIT -- Initialize forward/inverse transform with polynomial correction. procedure wf_pc_init (fc, dir) pointer fc #I pointer to FC descriptor int dir #I direction of transform int i, j, k, nax, ndim, ax, axes[NAXMAX], npc, strncmp() pointer mw, ct, wp, wv, pc, mw1, ct1, p, ptr, mw_open(), wf_pc_sctran() pointer sp, axtype, wtype, r, w, cd bool streq() begin call smark (sp) call salloc (axtype, SZ_LINE, TY_CHAR) call salloc (wtype, SZ_LINE, TY_CHAR) call salloc (r, NAXMAX, TY_DOUBLE) call salloc (w, NAXMAX, TY_DOUBLE) call salloc (cd, 9, TY_DOUBLE) ct = FC_CT(fc) mw = CT_MW(ct) wp = FC_WCS(fc) nax = WCS_NDIM(wp) if (nax > NAXMAX) call error (1, "WCS dimensionality is too large") # Open the secondary MWCS. mw1 = mw_open (NULL, nax) call mw_newsystem (mw1, "image", nax) # Set axes. Identify celestial axes to be set later. j = 0 Memc[wtype] = EOS do i = 1, nax { ax = CT_AXIS(ct,FC_AXIS(fc,i)) ifnoerr (call mw_gwattrs (mw, ax, "axtype", Memc[axtype],SZ_LINE)) { if (strncmp (Memc[axtype], "ra--", 4) == 0 || strncmp (Memc[axtype], "dec-", 4) == 0 || strncmp (Memc[axtype+1], "lon", 3) == 0 || strncmp (Memc[axtype+1], "lat", 3) == 0) { j = j + 1 axes[j] = ax if (Memc[wtype] == EOS) call strcpy (Memc[axtype+5], Memc[wtype], 4) else if (!streq (Memc[axtype+5], Memc[wtype])) call error (1, "Unmatched celestial axes") if (Memc[axtype+2] == '-') Memc[axtype+2] = EOS else if (Memc[axtype+3] == '-') Memc[axtype+3] = EOS else Memc[axtype+4] = EOS call mw_swattrs (mw1, ax, "axtype", Memc[axtype]) } else call mw_swtype (mw1, ax, 1, Memc[axtype], "") } } # Set coupled celestial axes. if (j > 0) { if (j != 2) call error (1, "Unmatched celestial axes") call mw_swtype (mw1, axes, j, Memc[wtype], "") } # Set reference coordinate. wv = MI_DBUF(mw) + WCS_W(wp) - 1 call mw_gwtermd (mw1, Memd[r], Memd[w], Memd[cd], nax) call mw_swtermd (mw1, Memd[r], Memd[wv], Memd[cd], nax) # Set transformation. if (dir == FORWARD) ct1 = wf_pc_sctran (mw1, "physical", "world", 0) else ct1 = wf_pc_sctran (mw1, "world", "physical", 0) FC_NAX(fc) = nax FC_MW1(fc) = mw1 FC_CT1(fc) = ct1 # Set polynomial structures. The polynomial structure is NULL if # there are no coefficients. The number of non-null polynomial # structures is recorded for later efficiency. ndim = nax + 1 FC_NDIM(fc) = ndim FC_NPOLY(fc) = 0 do i = 1, nax { FC_P(fc,i) = NULL FC_LAST(fc,i) = 0D0 npc = WCS_NPC(wp,i) pc = WCS_PC(wp,i) if (npc > ndim+2*nax && pc != NULL) { pc = MI_DBUF(mw) + pc - 1 # Compute number of coefficients including default zeros. k = 1 ptr = pc do j = 1, ndim { k = k * (1 + nint (Memd[ptr])) ptr = ptr + 1 } # Allocate and set polynomial structure. if (k > 0) { call calloc (FC_P(fc,i), P_LEN(k), TY_STRUCT) FC_NPOLY(fc) = FC_NPOLY(fc) + 1 p = FC_P(fc,i) ptr = pc do j = 1, ndim { P_O(p,j) = nint (Memd[ptr]) ptr = ptr + 1 } do j = 1, nax { P_N(p,j) = 1D0 + Memd[ptr] ptr = ptr + 1 } do j = 1, nax { P_R(p,j) = Memd[ptr] ptr = ptr + 1 } call amovd (Memd[ptr], Memd[P_C(p)], npc-(ptr-pc)) FC_P(fc,i) = p } } } end # WF_PC_DESTROY -- Destroy memory associated with function driver. procedure wf_pc_destroy (fc) pointer fc #I pointer to FC descriptor int i begin do i = 1, FC_NAX(fc) call mfree (FC_P(fc,i), TY_STRUCT) if (FC_MW1(fc) != NULL) call wf_pc_close (FC_MW1(fc)) end # WF_PC_FWD -- Forward transformation with polynomial correction. procedure wf_pc_fwd (fc, p, w) pointer fc #I pointer to FC descriptor double p[ARB] #I physical coordinates double w[ARB] #O world coordinates double p1[NAXMAX] begin # Apply polynomial correction to each axis and then the projection. if (FC_NPOLY(fc) == 0) call wf_pc_ctran (FC_CT1(fc), p, w, FC_NAX(fc)) else { call wf_pc_eval (fc, p, p1) call wf_pc_ctran (FC_CT1(fc), p1, w, FC_NAX(fc)) } end define TOL 10000 define NIT 1000 define MAXINC 10 # WF_PC_INV -- Inverse transformation with polynomial correction. procedure wf_pc_inv (fc, w, p) pointer fc #I pointer to FC descriptor double w[ARB] #I input world coordinates double p[ARB] #I output physical coordinates bool done int i, j, nax, ninc double tol, p1[NAXMAX], p2[NAXMAX], dp[NAXMAX] double adp[NAXMAX], adplast[NAXMAX] double deriv[NAXMAX,NAXMAX], ideriv[NAXMAX,NAXMAX] begin if (FC_NPOLY(fc) == 0) call wf_pc_ctran (FC_CT1(fc), w, p, FC_NAX(fc)) else { nax = FC_NAX(fc) call wf_pc_ctran (FC_CT1(fc), w, p1, nax) ninc = -1 tol = TOL * EPSILOND call amovkd (MAX_DOUBLE, adplast, nax) do i = 1, NIT { do j = 1, nax p[j] = FC_LAST(fc,j) call wf_pc_eval (fc, p, p2) done = true do j = 1, nax { dp[j] = p1[j] - p2[j] adp[j] = abs (dp[j]) if (adp[j] > tol) done = false if (adp[j] <= adplast[j]) ninc = -1 } if (done) return ninc = ninc + 1 if (ninc > MAXINC) break do j = 1, nax adplast[j] = adp[j] call wf_pc_deriv (fc, p, deriv) call mw_invertd (deriv, ideriv, nax) call mw_vmuld (ideriv, dp, p2, nax) do j = 1, nax FC_LAST(fc,j) = p[j] + p2[j] } do j = 1, nax p[j] = FC_LAST(fc,j) call wf_pc_eval (fc, p, p2) done = true do j = 1, nax { dp[j] = p1[j] - p2[j] adp[j] = abs (dp[j]) if (adp[j] > tol) done = false } if (done) return call error (1, "Did not converge") } end # WF_PC_EVAL -- Evaluate polynomials. procedure wf_pc_eval (fc, x, y) pointer fc #I pointer to FC descriptor double x[ARB] #I input coordinates double y[ARB] #O output coordinates int i, j, k, m, q, nax, ndim double r[NDIMMAX], rq, sum, xi, yj, zk pointer p, c begin nax = FC_NAX(fc) ndim = FC_NDIM(fc) do m = 1, nax { p = FC_P(fc,m) if (P_O(p,ndim) > 0) { sum = 0 do i = 1, nax sum = sum + (P_R(p,i) * x[i] / P_N(p,i)) ** 2 r[m] = sqrt (sum) } } if (nax == 1) { do m = 1, nax { p = FC_P(fc,m) if (p != NULL) { c = P_C(p) sum = x[m] do q = 0, P_O(p,ndim) { rq = r[m] ** q do i = 0, P_O(p,1) { xi = (x[1] / P_N(p,1)) ** i sum = sum + Memd[c] * xi * rq c = c + 1 } } y[m] = sum } else y[m] = x[m] } } else if (nax == 2) { do m = 1, nax { p = FC_P(fc,m) if (p != NULL) { c = P_C(p) sum = x[m] do q = 0, P_O(p,ndim) { rq = r[m] ** q do j = 0, P_O(p,2) { yj = rq * (x[2] / P_N(p,2)) ** j do i = 0, P_O(p,1) { xi = (x[1] / P_N(p,1)) ** i sum = sum + Memd[c] * xi * yj c = c + 1 } } } y[m] = sum } else y[m] = x[m] } } else { do m = 1, nax { p = FC_P(fc,m) if (p != NULL) { c = P_C(p) sum = x[m] do q = 0, P_O(p,ndim) { rq = r[m] ** q do k = 0, P_O(p,3) { zk = rq * (x[3] / P_N(p,2)) ** k do j = 0, P_O(p,2) { yj = zk * (x[2] / P_N(p,2)) ** j do i = 0, P_O(p,1) { xi = (x[1] / P_N(p,1)) ** i sum = sum + Memd[c] * xi * yj c = c + 1 } } } } y[m] = sum } else y[m] = x[m] } } end # WF_PC_DERIV -- Evaluate derivatives of polynomials. procedure wf_pc_deriv (fc, x, y) pointer fc #I pointer to FC descriptor double x[ARB] #I input coordinates double y[ARB] #O output derivatives int i, j, k, l, m, n, q, nax, ndim double r[NAXMAX], rq, drq, sum, xi, yj, zk pointer p, c begin nax = FC_NAX(fc) ndim = FC_NDIM(fc) do m = 1, nax { p = FC_P(fc,m) if (P_O(p,ndim) > 0) { sum = 0 do i = 1, nax sum = sum + (P_R(p,i) * x[i] / P_N(p,i)) ** 2 r[m] = sqrt (sum) } } if (nax == 1) { y[1] = 1 p = FC_P(fc,1) if (p != NULL) { sum = y[1] c = P_C(p) + 1 do q = 0, P_O(p,ndim) { if (q == 0) { rq = 1 drq = 0 } else if (r[m] == 0.) break else { rq = r[m] ** q xi = P_R(p,1) * x[1] / P_N(p,1) drq = q * r[m] ** (q-2) * P_R(p,1) * xi } do i = 0, P_O(p,1) { if (i == 0) { if (q == 0) { c = c + 1 next } xi = drq } else { xi = x[1] / P_N(p,1) xi = drq * xi ** i + rq * i / P_N(p,1) * xi ** (i-1) } sum = sum + Memd[c] * xi c = c + 1 } } y[1] = sum } } else if (nax == 2) { y[1] = 1; y[2] = 0 y[3] = 0; y[4] = 1 do m = 1, nax { p = FC_P(fc,m) if (p != NULL) { l = nax * (m - 1) do n = 1, nax { l = l + 1 sum = y[l] c = P_C(p) do q = 0, P_O(p,ndim) { if (q == 0) { rq = 1 drq = 0 } else if (r[m] == 0.) break else { rq = r[m] ** q xi = P_R(p,n) * x[n] / P_N(p,n) drq = q * r[m] ** (q-2) * P_R(p,n) * xi } do j = 0, P_O(p,2) { if (n == 2) { if (j == 0) { if (q == 0) { c = c + (P_O(p,1)+1) next } yj = drq } else { yj = x[2] / P_N(p,2) yj = drq * yj ** j + rq * j / P_N(p,2) * yj ** (j-1) } } else yj = (x[2] / P_N(p,2)) ** j do i = 0, P_O(p,1) { if (n == 1) { if (i == 0) { if (q == 0) { c = c + 1 next } xi = drq } else { xi = x[1] / P_N(p,1) xi = drq * xi ** i + rq * i / P_N(p,1) * xi ** (i-1) } } else xi = (x[1] / P_N(p,1)) ** i sum = sum + Memd[c] * xi * yj c = c + 1 } } } y[l] = sum } } } } else { y[1] = 1; y[2] = 0; y[3] = 0 y[4] = 0; y[5] = 1; y[6] = 0 y[7] = 0; y[8] = 0; y[9] = 1 do m = 1, nax { p = FC_P(fc,m) if (p != NULL) { l = nax * (m - 1) do n = 1, nax { l = l + 1 sum = y[l] c = P_C(p) do q = 0, P_O(p,ndim) { if (q == 0) { rq = 1 drq = 0 } else if (r[m] == 0.) break else { rq = r[m] ** q xi = P_R(p,n) * x[n] / P_N(p,n) drq = q * r[m] ** (q-2) * P_R(p,n) * xi } do k = 0, P_O(p,3) { if (n == 3) { if (k == 0) { if (q == 0) { c = c + (P_O(p,1)+1) * (P_O(p,2)+1) next } zk = drq } else { zk = x[3] / P_N(p,3) zk = drq * zk ** k + rq * k / P_N(p,3) * zk ** (k-1) } } else zk = (x[3] / P_N(p,3)) ** k do j = 0, P_O(p,2) { if (n == 2) { if (j == 0) { if (q == 0) { c = c + (P_O(p,1)+1) next } yj = drq } else { yj = x[2] / P_N(p,2) yj = drq * yj ** j + rq * j / P_N(p,2) * yj ** (j-1) } } else yj = (x[2] / P_N(p,2)) ** j yj = yj * zk do i = 0, P_O(p,1) { if (n == 1) { if (i == 0) { if (q == 0) { c = c + 1 next } xi = drq } else { xi = x[1] / P_N(p,1) xi = drq * xi ** i + rq * i/P_N(p,1) * xi**(i-1) } } else xi = (x[1] / P_N(p,1)) ** i sum = sum + Memd[c] * xi * yj c = c + 1 } } } } y[l] = sum } } } } end ################################################################################ # The following routines are copies of MW_SCTRAN and MW_CTRAND included # here to avoid recursion. # MW_SCTRAN -- Setup a coordinate transformation (CTRAN) descriptor. pointer procedure wf_pc_sctran (mw, system1, system2, axbits) pointer mw #I pointer to MWCS descriptor char system1[ARB] #I input coordinate system char system2[ARB] #I output coordinate system int axbits #I bitmap defining axes to be transformed bool newfunc int naxes, axis[MAX_DIM], wfno, fn, epa int i, j, k , matlen, ndata, ctlen, pdim pointer i_ltm, i_ltv, o_ltm, o_ltv, t_ltm, t_ltv, ltm, ltv pointer sp, w1, w2, ct, wf, fc, lp, ip, op, ct_r, sv_wcs pointer coerce() errchk syserr, syserrs, calloc, zcall2, mw_invertd, mw_ssystem include "mwcs.com" begin call smark (sp) # Get pointers to the input and output systems. sv_wcs = MI_WCS(mw) iferr { call mw_ssystem (mw, system1) w1 = MI_WCS(mw) call mw_ssystem (mw, system2) w2 = MI_WCS(mw) } then { MI_WCS(mw) = sv_wcs call erract (EA_ERROR) } else MI_WCS(mw) = sv_wcs # Get the physical axis list. The bitflags in AXBITS define the axes # in the logical system; run these through the axis map (if enabled) # to get the list of physical axes for which the transformation is to # be prepared. call mw_gaxlist (mw, axbits, axis, naxes) # Allocate the CTRAN descriptor. First we must figure out how # much space is required. The space required is for the base # descriptor, plus additional space for the LTM and LTV, which vary # in size depending upon the dimensionality of the transformation. # The whole thing is then doubled to provide 2 versions of the # descriptor, providing both single and double precision versions # of the LTM and LTV. Any additional storage utilized by the WCS # functions is separately allocated by the initialization routines # in the function drivers. matlen = naxes * naxes ndata = matlen + naxes ctlen = LEN_CTBASE + ndata * SZ_DOUBLE / SZ_STRUCT call calloc (ct, ctlen*2, TY_STRUCT) # Save a pointer to the CTRAN descriptor in the main MWCS descriptor, # to permit automatic deallocation at close time. do i = 1, MAX_CTRAN+1 { if (i > MAX_CTRAN) { call mfree (ct, TY_STRUCT) call syserr (SYS_MWCTOVFL) } if (MI_CTRAN(mw,i) == NULL) { MI_CTRAN(mw,i) = ct break } } CT_MW(ct) = mw CT_WCSI(ct) = w1 CT_WCSO(ct) = w2 CT_NDIM(ct) = naxes CT_R(ct) = ct + ctlen call amovi (axis, CT_AXIS(ct,1), naxes) CT_LTM(ct) = coerce (ct + LEN_CTBASE, TY_STRUCT, TY_DOUBLE) CT_LTV(ct) = CT_LTM(ct) + matlen ltm = CT_LTM(ct) ltv = CT_LTV(ct) # We also need some full-system matrix and vector buffers. pdim = min (WCS_NDIM(w1), WCS_NDIM(w2)) pdim = min (MI_NDIM(mw), pdim) i = pdim * pdim call salloc (i_ltm, i, TY_DOUBLE) call salloc (i_ltv, pdim, TY_DOUBLE) call salloc (o_ltm, i, TY_DOUBLE) call salloc (o_ltv, pdim, TY_DOUBLE) call salloc (t_ltm, i, TY_DOUBLE) call salloc (t_ltv, pdim, TY_DOUBLE) # Compute the transformation. A transformation between any two # world systems W1 and W2 consists of the transformation W1->P # from W1 to the physical system, followed by a transformation # P->W2 to the second world system. The linear portions of these # two transformations can be combined to produce a single linear # transformation, and if no WCS function calls are involved at # either end, the entire transformation reduces to a single linear # transformation defined by LTM and LTV. Note that as far as we # are concerned here, the special world systems "logical" and # "physical" are just like other world systems, except that both are # always linear systems. The linear term for the logical system is # the MWCS Lterm; for the physical system it is the identity matrix. # Set up the transformation W1->P. First we must determine if there # are any WCS function calls. We do this by going ahead and compiling # the "in" function calls in the CTRAN descriptor. do i = 1, naxes { wfno = WCS_AXCLASS(w1,axis[i]) # Skip to next axis if no WCS function is assigned to this axis. if (wfno == 0) next # Has function call for this axis already been compiled? newfunc = true do j = 1, CT_NCALLI(ct) { fc = CT_FCI(ct,j) do k = 1, FC_NAXES(fc) if (FC_AXIS(fc,k) == i) newfunc = false } # Compile a function call for the inverse transformation. if (newfunc) { CT_NCALLI(ct) = CT_NCALLI(ct) + 1 if (CT_NCALLI(ct) > MAX_CALL) call syserrs (SYS_MWFCOVFL, system1) fc = CT_FCI(ct,CT_NCALLI(ct)) wf = WCS_FUNC(w1,wfno) fn = WF_FN(wf) FC_CT(fc) = ct FC_WCS(fc) = w1 FC_WF(fc) = wf FC_FCN(fc) = FN_INV(fn) FC_NAXES(fc) = WF_NAXES(wf) # Store CTRAN-relative list of axes in function call # descriptor. Verify that all the axes needed for the # function call are included in the transformation. # This requirement can theoretically be relaxed in # some cases but this is not supported in MWCS. do j = 1, WF_NAXES(wf) { for (k=1; k <= naxes; k=k+1) if (axis[k] == WF_AXIS(wf,j)) { FC_AXIS(fc,j) = k break } if (k > naxes) call syserrs (SYS_MWMISSAX, system1) } # Call the function driver to perform any driver dependent # initialization. epa = FN_INIT(fn) if (epa != NULL) call zcall2 (epa, fc, INVERSE) } } # Prepare the linear part of the input transformation W1->P. # This is LTM=inv(CD), and for axis I, LTV[i]=(R[i]-inv(CD)*W) # if no function call, or LTV[i]=R[i] if there is a function # assigned to axis I which already deals with the W[i]. All # this is done in the full dimension of the internal system for # now; extraction of the portion of the full system affecting # the CTRAN axes is done later to permit verification of the # legality of the reduction step required. # Invert CD matrix. if (WCS_CD(w1) == NULL) call mw_mkidmd (Memd[i_ltm], pdim) else call mw_invertd (D(mw,WCS_CD(w1)), Memd[i_ltm], pdim) # If no function calls for an axis and W is set, LTV=(R-inv(CD)*W). if (WCS_W(w1) != NULL) { call amovd (D(mw,WCS_W(w1)), Memd[i_ltv], pdim) do i = 1, CT_NCALLI(ct) { fc = CT_FCI(ct,i) do j = 1, FC_NAXES(fc) { k = axis[FC_AXIS(fc,j)] Memd[i_ltv+k-1] = 0. } } call mw_vmuld (Memd[i_ltm], Memd[i_ltv], Memd[t_ltv], pdim) if (WCS_R(w1) == NULL) call anegd (Memd[t_ltv], Memd[i_ltv], pdim) else call asubd (D(mw,WCS_R(w1)), Memd[t_ltv], Memd[i_ltv], pdim) } else { if (WCS_R(w1) == NULL) call aclrd (Memd[i_ltv], pdim) else call amovd (D(mw,WCS_R(w1)), Memd[i_ltv], pdim) } # Now prepare the output side of the transformation, from P->W2. # Like the input half, this consists of a linear term and a list # of zero or more function calls. # Compile the "out" function calls in the CTRAN descriptor. do i = 1, naxes { wfno = WCS_AXCLASS(w2,axis[i]) # Skip to next axis if no WCS function is assigned to this axis. if (wfno == 0) next # Has function call for this axis already been compiled? newfunc = true do j = 1, CT_NCALLO(ct) { fc = CT_FCO(ct,j) do k = 1, FC_NAXES(fc) if (FC_AXIS(fc,k) == i) newfunc = false } # Compile a function call for the forward transformation. if (newfunc) { CT_NCALLO(ct) = CT_NCALLO(ct) + 1 if (CT_NCALLO(ct) > MAX_CALL) call syserrs (SYS_MWFCOVFL, system2) fc = CT_FCO(ct,CT_NCALLO(ct)) wf = WCS_FUNC(w2,wfno) fn = WF_FN(wf) FC_CT(fc) = ct FC_WCS(fc) = w2 FC_WF(fc) = wf FC_FCN(fc) = FN_FWD(fn) FC_NAXES(fc) = WF_NAXES(wf) # Store CTRAN-relative list of axes in function call # descriptor. Verify that all the axes needed for the # function call are included in the transformation. do j = 1, WF_NAXES(wf) { for (k=1; k <= naxes; k=k+1) if (axis[k] == WF_AXIS(wf,j)) { FC_AXIS(fc,j) = k break } if (k > naxes) call syserrs (SYS_MWMISSAX, system2) } # Call the function driver to perform any driver dependent # initialization. epa = FN_INIT(fn) if (epa != NULL) call zcall2 (epa, fc, FORWARD) } } # Prepare the linear part of the input transformation P->W2. # This is LTM=CD, and for axis I, LTV[i]=(W-CD*R) if no function # call, or LTV[i]=(-CD*R) if there is a function assigned to axis # I which already deals with the W[i]. # Copy CD matrix to LTM. if (WCS_CD(w2) == NULL) call mw_mkidmd (Memd[o_ltm], pdim) else call amovd (D(mw,WCS_CD(w2)), Memd[o_ltm], pdim*pdim) # Copy -R to t_ltv. if (WCS_R(w2) == NULL) call aclrd (Memd[t_ltv], pdim) else call amulkd (D(mw,WCS_R(w2)), -1.0D0, Memd[t_ltv], pdim) # Compute -CD*R in LTV. call mw_vmuld (Memd[o_ltm], Memd[t_ltv], Memd[o_ltv], pdim) # If no function calls for an axis and W is set, LTV=(W-CD*R). if (WCS_W(w2) != NULL) { call amovd (D(mw,WCS_W(w2)), Memd[t_ltv], pdim) call aaddd (Memd[t_ltv], Memd[o_ltv], Memd[o_ltv], pdim) do i = 1, CT_NCALLO(ct) { fc = CT_FCO(ct,i) do j = 1, FC_NAXES(fc) { k = axis[FC_AXIS(fc,j)] # undo +W[k] lp = o_ltv + k - 1 Memd[lp] = Memd[lp] - Memd[t_ltv+k-1] } } } # Now combine the linear terms of the input and output transformations # to produce the linear portion of the full transformation. call mw_mmuld (Memd[o_ltm], Memd[i_ltm], Memd[t_ltm], pdim) call mw_vmuld (Memd[o_ltm], Memd[i_ltv], Memd[t_ltv], pdim) call aaddd (Memd[o_ltv], Memd[t_ltv], Memd[t_ltv], pdim) # Extract the rows of the full linear transformation which are used # for the axes involved in the transformation we are compiling. # In the process we must examine the off-diagonal elements of the # matrix to verify that the system does not include any dependencies # upon axes other than those included in the transformation we are # compiling. (This restriction prohibits dimensional reduction via # an image section which results in loss of a rotated axis). do i = 1, naxes { # Get matrix line pointers for axis[i]. ip = t_ltm + (axis[i]-1) * pdim op = ltm + (i-1) * naxes do j = 1, pdim { # Is column J used by transform? for (k=1; k <= naxes; k=k+1) if (axis[k] == j) break # If column J is not used in the transform but is not zero, # then transform I is dependent upon physical axis J and # we cannot do the transform. If column J is used in the # transform, copy the value to the final output matrix LTM # discarding unused columns as we go. if (k > naxes) { # Check for dependency on axis outside transform. if (abs(Memd[ip+j-1]) > EPSILOND*100.0D0) call syserr (SYS_MWROTDEP) } else { # Add matrix element to final LTM. Memd[op+k-1] = Memd[ip+j-1] } } # Copy the LTV vector element. Memd[ltv+i-1] = Memd[t_ltv+axis[i]-1] } # Determine the transformation type. This is LNR for a purely # linear transformation with no rotational (off-diagonal) terms, # LRO for a purely linear transform with rotational terms, and # GEN for everything else. if (CT_NCALLI(ct) > 0 || CT_NCALLO(ct) > 0) CT_TYPE(ct) = GEN else { CT_TYPE(ct) = LNR do j = 1, naxes do i = 1, naxes if (i != j) { lp = ltm + (j-1)*naxes + i-1 if (abs(Memd[lp]) > EPSILOND*100.0D0) { CT_TYPE(ct) = LRO break } } } # Prepare the single precision part of the transform. call amovi (Memi[CT_D(ct)], Memi[CT_R(ct)], ctlen) ct_r = CT_R(ct) CT_LTM(ct_r) = coerce (ct_r + LEN_CTBASE, TY_STRUCT, TY_REAL) CT_LTV(ct_r) = CT_LTM(ct_r) + matlen call achtdr (Memd[CT_LTM(ct)], Memr[CT_LTM(ct_r)], matlen) call achtdr (Memd[CT_LTV(ct)], Memr[CT_LTV(ct_r)], naxes) call sfree (sp) return (ct) end # MW_CTRAN -- Transform a single N-dimensional point, using the optimized # transformation set up by a prior call to MW_SCTRAN. procedure wf_pc_ctran (a_ct, p1, p2, ndim) pointer a_ct #I pointer to CTRAN descriptor double p1[ndim] #I coordinates of point in input system double p2[ndim] #O coordinates of point in output system int ndim #I dimensionality of point int naxes, i, j pointer ct, fc, ltm, ltv, d_ct double v1[MAX_DIM], v2[MAX_DIM], iv[MAX_DIM], ov[MAX_DIM] errchk zcall3 begin # Get real or double version of descriptor. ct = CT_D(a_ct) ltm = CT_LTM(ct) ltv = CT_LTV(ct) # Specially optimized cases. if (CT_TYPE(ct) == LNR) { # Simple linear, nonrotated transformation. do i = 1, ndim p2[i] = Memd[ltm+(i-1)*(ndim+1)] * p1[i] + Memd[ltv+i-1] return } else if (CT_TYPE(ct) == LRO) { # Simple linear, rotated transformation. call mw_ltrand (p1, p2, Memd[ltm], Memd[ltv], ndim) return } # If we get here the transformation involves a call to one or more # WCS functions. In this general case, the transformation consists # of zero or more calls to WCS functions to transform the input # world coordinates to the linear input system, followed by a general # linear transformation to the linear output system, followed by zero # or more calls to WCS functions to do the forward transformation # to generate the final output world coordinates. The WCS function # calls are always evaluated in double precision. # Make zero or more WCS function calls for the different axes of the # input system (inverse transform). call achtdd (p1, iv, ndim) do j = 1, CT_NCALLI(ct) { # Get pointer to function call descriptor. fc = CT_FCI(ct,j) naxes = FC_NAXES(fc) # Extract the coordinate vector for the function call. do i = 1, naxes v1[i] = p1[FC_AXIS(fc,i)] # Call the WCS function. call zcall3 (FC_FCN(fc), fc, v1, v2) # Edit the vector IV, replacing the entries associated with # the WCS function by the transformed values. do i = 1, naxes iv[FC_AXIS(fc,i)] = v2[i] } # Apply the general linear transformation. We may as well do this in # double since we already have to use double for the function calls. d_ct = CT_D(a_ct) call mw_ltrand (iv, ov, Memd[CT_LTM(d_ct)], Memd[CT_LTV(d_ct)], ndim) # Make zero or more WCS function calls for the different axes of the # output system (forward transform to final world system). call achtdd (ov, p2, ndim) do j = 1, CT_NCALLO(ct) { # Get pointer to function call descriptor. fc = CT_FCO(ct,j) naxes = FC_NAXES(fc) # Extract the coordinate vector for the function call. do i = 1, naxes v1[i] = ov[FC_AXIS(fc,i)] # Call the WCS function. call zcall3 (FC_FCN(fc), fc, v1, v2) # Edit the final output vector, replacing the entries for the # function axes by their transformed values. do i = 1, naxes p2[FC_AXIS(fc,i)] = v2[i] } end # MW_CLOSE -- Close a MWCS descriptor and deallocate all resources used # by the descriptor. Any CTRAN descriptors which have been opened on # the MWCS are automatically closed if not already manually closed by # the application. procedure wf_pc_close (mw) pointer mw #U pointer to MWCS descriptor int i pointer ct begin # Free any still allocated CTRAN descriptors. do i = 1, MAX_CTRAN { ct = MI_CTRAN(mw,i) if (ct != NULL) iferr (call wf_pc_freect (ct)) call erract (EA_WARN) } # Free the string and data buffers. if (MI_SBUF(mw) != NULL) call mfree (MI_SBUF(mw), TY_CHAR) if (MI_DBUF(mw) != NULL) call mfree (MI_DBUF(mw), TY_DOUBLE) # Free the main descriptor. call mfree (mw, TY_STRUCT) end # MW_CTFREE -- Free a CTRAN (coordinate transformation) descriptor. We keep # track of all allocated CTRAN descriptors in the parent MWCS descriptor, and # NULL the saved entry for a descriptor when it is freed, thus guaranteeing # that a descriptor will be freed only once. procedure wf_pc_freect (ct) pointer ct #U pointer to CTRAN descriptor int fn, i, j pointer mw, fc include "mwcs.com" begin if (ct != NULL) { mw = CT_MW(ct) if (mw != NULL) do i = 1, MAX_CTRAN if (MI_CTRAN(mw,i) == ct) { # Free private storage for any input WCS functions. do j = 1, CT_NCALLI(ct) { fc = CT_FCI(ct,j) fn = WF_FN(FC_WF(fc)) if (FN_DESTROY(fn) != NULL) call zcall1 (FN_DESTROY(fn), fc) } # Free private storage for any output WCS functions. do j = 1, CT_NCALLO(ct) { fc = CT_FCO(ct,j) fn = WF_FN(FC_WF(fc)) if (FN_DESTROY(fn) != NULL) call zcall1 (FN_DESTROY(fn), fc) } # Free the main CTRAN descriptor. call mfree (ct, TY_STRUCT) MI_CTRAN(mw,i) = NULL break } } end sptable-1.0.pre20180612/src/mwcs/wfpc.xBAK000066400000000000000000000656561331023215600176410ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include include include "mwcs.h" .help WFPC .nf ------------------------------------------------------------------------- WFPC -- WCS function driver for polynomial corrections. These routines apply a polynomial correction to the intermediate coordinates from up to three coupled axes. The wtype for the axes is "pc" and the axtypes are the CTYPE strings for the final world coordinate projection. A secondary MWCS transformation is set up using the axtype values to apply the world coordinate projection. Any of the MWCS function drivers may be used provided they do not use PV coefficients. Driver routines: FN_INIT wf_pc_init (fc, dir) FN_DESTROY wf_pc_destroy (fc) FN_FWD wf_pc_fwd (fc, v1, v2) FN_INV wf_pc_inv (fc, v1, v2) .endhelp -------------------------------------------------------------------- define NDIMMAX 3 # Max dimension # Driver specific fields of function call (FC) descriptor. define FC_LEN 4+3*NDIMMAX # Length of structure define FC_MW1 Memi[$1+FCU] # Secondary MWCS pointer define FC_CT1 Memi[$1+FCU+1] # Secondary CT pointer define FC_NDIM Memi[$1+FCU+2] # Dimensionality define FC_NPOLY Memi[$1+FCU+3] # Number of defined polynomials define FC_LAST Memd[P2D($1+FCU+4)+$2-1] # Last inverted coordinate define FC_P Memi[$1+FCU+4+2*NDIMMAX+$2-1] # Polynomial structures # Polynomial structure. define P_LEN ($1+3*NDIMMAX) # Length of structure define P_N Memd[P2D($1)+$2-1] # Normalizations define P_O Memi[$1+2*NDIMMAX+$2-1] # Orders define P_C P2D($1+3*NDIMMAX) # Coefficients # WF_PC_INIT -- Initialize forward or inverse transform with poly correction. procedure wf_pc_init (fc, dir) pointer fc #I pointer to FC descriptor int dir #I direction of transform int i, j, k, ndim, ax, axes[NDIMMAX], npv, strncmp() pointer mw, ct, wp, wv, pv, mw1, ct1, p, ptr, mw_open(), wf_pc_sctran() pointer sp, axtype, wtype, r, w, cd bool streq() begin call smark (sp) call salloc (axtype, SZ_LINE, TY_CHAR) call salloc (wtype, SZ_LINE, TY_CHAR) call salloc (r, NDIMMAX, TY_DOUBLE) call salloc (w, NDIMMAX, TY_DOUBLE) call salloc (cd, 9, TY_DOUBLE) ct = FC_CT(fc) mw = CT_MW(ct) wp = FC_WCS(fc) ndim = WCS_NDIM(wp) if (ndim > NDIMMAX) call error (1, "WCS dimensionality is too large") # Open the secondary MWCS. mw1 = mw_open (NULL, ndim) call mw_newsystem (mw1, "image", ndim) # Set axes. Identify celestial axes to be set later. j = 0 Memc[wtype] = EOS do i = 1, ndim { ax = CT_AXIS(ct,FC_AXIS(fc,i)) ifnoerr (call mw_gwattrs (mw, ax, "axtype", Memc[axtype],SZ_LINE)) { if (strncmp (Memc[axtype], "ra--", 4) == 0 || strncmp (Memc[axtype], "dec-", 4) == 0 || strncmp (Memc[axtype+1], "lon", 3) == 0 || strncmp (Memc[axtype+1], "lat", 3) == 0) { j = j + 1 axes[j] = ax if (Memc[wtype] == EOS) call strcpy (Memc[axtype+5], Memc[wtype], 4) else if (!streq (Memc[axtype+5], Memc[wtype])) call error (1, "Unmatched celestial axes") if (Memc[axtype+2] == '-') Memc[axtype+2] = EOS else if (Memc[axtype+3] == '-') Memc[axtype+3] = EOS else Memc[axtype+4] = EOS call mw_swattrs (mw1, ax, "axtype", Memc[axtype]) } else call mw_swtype (mw1, ax, 1, Memc[axtype], "") } } # Set coupled celestial axes. if (j > 0) { if (j != 2) call error (1, "Unmatched celestial axes") call mw_swtype (mw1, axes, j, Memc[wtype], "") } # Set reference coordinate. wv = MI_DBUF(mw) + WCS_W(wp) - 1 call mw_gwtermd (mw1, Memd[r], Memd[w], Memd[cd], ndim) call mw_swtermd (mw1, Memd[r], Memd[wv], Memd[cd], ndim) # Set transformation. if (dir == FORWARD) ct1 = wf_pc_sctran (mw1, "physical", "world", 0) else ct1 = wf_pc_sctran (mw1, "world", "physical", 0) FC_NDIM(fc) = ndim FC_MW1(fc) = mw1 FC_CT1(fc) = ct1 # Set polynomial structures. The polynomial structure is NULL if # there are no coefficients. The number of non-null polynomial # structures is recorded for later efficiency. FC_NPOLY(fc) = 0 do i = 1, ndim { FC_P(fc,i) = NULL FC_LAST(fc,i) = 0D0 npv = WCS_NPVC(wp,i) pv = WCS_PVC(wp,i) if (npv > 2*ndim+1 && pv != NULL) { pv = MI_DBUF(mw) + pv - 1 # Compute number of coefficients including default zeros. k = 1 ptr = pv + 1 do j = 1, ndim { k = k * (1 + nint (Memd[ptr])) ptr = ptr + 1 } # Allocate and set polynomial structure. if (k > 0) { call calloc (FC_P(fc,i), P_LEN(k), TY_STRUCT) FC_NPOLY(fc) = FC_NPOLY(fc) + 1 p = FC_P(fc,i) ptr = pv + 1 do j = 1, ndim { P_O(p,j) = nint (Memd[ptr]) ptr = ptr + 1 } do j = 1, ndim { P_N(p,j) = 1D0 + Memd[ptr] ptr = ptr + 1 } call amovd (Memd[ptr], Memd[P_C(p)], npv-(ptr-pv)) FC_P(fc,i) = p } } } end # WF_PC_DESTROY -- Destroy memory associated with function driver. procedure wf_pc_destroy (fc) pointer fc #I pointer to FC descriptor int i begin do i = 1, FC_NDIM(fc) call mfree (FC_P(fc,i), TY_STRUCT) call wf_pc_close (FC_MW1(fc)) end # WF_PC_FWD -- Forward transformation with polynomial correction. procedure wf_pc_fwd (fc, p, w) pointer fc #I pointer to FC descriptor double p[ARB] #I physical coordinates (xi, eta) double w[ARB] #O world coordinates (ra, dec) double p1[NDIMMAX] begin # Apply polynomial correction to each axis and then the projection. if (FC_NPOLY(fc) == 0) call wf_pc_ctran (FC_CT1(fc), p, w, FC_NDIM(fc)) else { call wf_pc_eval (fc, p, p1) call wf_pc_ctran (FC_CT1(fc), p1, w, FC_NDIM(fc)) } end define TOL 10000 define NIT 1000 define MAXINC 10 # WF_PC_INV -- Inverse transformation with polynomial correction. procedure wf_pc_inv (fc, w, p) pointer fc #I pointer to FC descriptor double w[ARB] #I input world (RA, DEC) coordinates double p[ARB] #I output physical coordinates bool done int i, j, ndim, ninc double tol, p1[NDIMMAX], p2[NDIMMAX], dp[NDIMMAX] double adp[NDIMMAX], adplast[NDIMMAX] double deriv[NDIMMAX,NDIMMAX], ideriv[NDIMMAX,NDIMMAX] begin if (FC_NPOLY(fc) == 0) call wf_pc_ctran (FC_CT1(fc), w, p, FC_NDIM(fc)) else { ndim = FC_NDIM(fc) call wf_pc_ctran (FC_CT1(fc), w, p1, ndim) ninc = -1 tol = TOL * EPSILOND call amovkd (MAX_DOUBLE, adplast, ndim) do i = 1, NIT { do j = 1, ndim p[j] = FC_LAST(fc,j) call wf_pc_eval (fc, p, p2) done = true do j = 1, ndim { dp[j] = p1[j] - p2[j] adp[j] = abs (dp[j]) if (adp[j] > tol) done = false if (adp[j] <= adplast[j]) ninc = -1 } if (done) return ninc = ninc + 1 if (ninc > MAXINC) break do j = 1, ndim adplast[j] = adp[j] call wf_pc_deriv (fc, p, deriv) call mw_invertd (deriv, ideriv, ndim) call mw_vmuld (ideriv, dp, p2, ndim) do j = 1, ndim FC_LAST(fc,j) = p[j] + p2[j] } do j = 1, ndim p[j] = FC_LAST(fc,j) call wf_pc_eval (fc, p, p2) done = true do j = 1, ndim { dp[j] = p1[j] - p2[j] adp[j] = abs (dp[j]) if (adp[j] > tol) done = false } if (done) return call error (1, "Did not converge") } end # WF_PC_EVAL -- Evaluate polynomials. procedure wf_pc_eval (fc, x, y) pointer fc #I pointer to FC descriptor double x[ARB] #I input coordinates double y[ARB] #O output coordinates int i, j, k, m double sum, xi, yj, zk, yjzk pointer p, c begin if (FC_NDIM(fc) == 1) { do m = 1, 1 { p = FC_P(fc,m) if (p != NULL) { c = P_C(p) sum = x[m] do i = 0, P_O(p,1) { xi = (x[1] / P_N(p,1)) ** i sum = sum + Memd[c] * xi c = c + 1 } y[m] = sum } else y[m] = x[m] } } else if (FC_NDIM(fc) == 2) { do m = 1, 2 { p = FC_P(fc,m) if (p != NULL) { c = P_C(p) sum = x[m] do j = 0, P_O(p,2) { yj = (x[2] / P_N(p,2)) ** j do i = 0, P_O(p,1) { xi = (x[1] / P_N(p,1)) ** i sum = sum + Memd[c] * xi * yj c = c + 1 } } y[m] = sum } else y[m] = x[m] } } else { do m = 1, 3 { p = FC_P(fc,m) if (p != NULL) { c = P_C(p) sum = x[m] do k = 0, P_O(p,3) { zk = (x[3] / P_N(p,3)) ** k do j = 0, P_O(p,2) { yj = (x[2] / P_N(p,2)) ** j yjzk = yj * zk do i = 0, P_O(p,1) { xi = (x[1] / P_N(p,1)) ** i sum = sum + Memd[c] * xi * yjzk c = c + 1 } } } y[m] = sum } else y[m] = x[m] } } end # WF_PC_DERIV -- Evaluate derivatives of polynomials. procedure wf_pc_deriv (fc, x, y) pointer fc #I pointer to FC descriptor double x[ARB] #I input coordinates double y[ARB] #O output derivatives int i, j, k, l, m, n, ndim double sum, xi, yj, zk, yjzk pointer p, c begin ndim = FC_NDIM(fc) if (ndim == 1) { y[1] = 1 p = FC_P(fc,1) if (p != NULL) { sum = y[1] c = P_C(p) + 1 do i = 1, P_O(p,1) { xi = i / P_N(p,1) * (x[1] / P_N(p,1)) ** (i-1) sum = sum + Memd[c] * xi c = c + 1 } y[1] = sum } } else if (ndim == 2) { y[1] = 1; y[2] = 0 y[3] = 0; y[4] = 1 do m = 1, 2 { p = FC_P(fc,m) if (p != NULL) { l = 2 * (m - 1) do n = 1, 2 { l = l + 1 sum = y[l] c = P_C(p) do j = 0, P_O(p,2) { if (n == 2) { if (j == 0) { c = c + (P_O(p,1)+1) next } yj = j / P_N(p,2) * (x[2] / P_N(p,2)) ** (j-1) } else yj = (x[2] / P_N(p,2)) ** j do i = 0, P_O(p,1) { if (n == 1) { if (i == 0) { c = c + 1 next } xi = i / P_N(p,1) * (x[1] / P_N(p,1)) ** (i-1) } else xi = (x[1] / P_N(p,1)) ** i sum = sum + Memd[c] * xi * yj c = c + 1 } } y[l] = sum } } } } else { y[1] = 1; y[2] = 0; y[3] = 0 y[4] = 0; y[5] = 1; y[6] = 0 y[7] = 0; y[8] = 0; y[9] = 1 do m = 1, 3 { p = FC_P(fc,m) if (p != NULL) { l = 3 * (m - 1) do n = 1, 3 { l = l + 1 sum = y[l] c = P_C(p) do k = 0, P_O(p,3) { if (n == 3) { if (k == 0) { c = c + (P_O(p,1)+1) * (P_O(p,2)+1) next } zk = k / P_N(p,3) * (x[3] / P_N(p,3)) ** (k-1) } else zk = (x[3] / P_N(p,3)) ** k do j = 0, P_O(p,2) { if (n == 2) { if (j == 0) { c = c + (P_O(p,1)+1) next } yj = j / P_N(p,2) * (x[2] / P_N(p,2)) ** (j-1) } else yj = (x[2] / P_N(p,2)) ** j yjzk = yj * zk do i = 0, P_O(p,1) { if (n == 1) { if (i == 0) { c = c + 1 next } xi = i / P_N(p,1) * (x[1] / P_N(p,1)) ** (i-1) } else xi = (x[1] / P_N(p,1)) ** i sum = sum + Memd[c] * xi * yjzk c = c + 1 } } } y[l] = sum } } } } end ################################################################################ # The following routines are copies of MW_SCTRAN and MW_CTRAND included # here to avoid recursion. # MW_SCTRAN -- Setup a coordinate transformation (CTRAN) descriptor. pointer procedure wf_pc_sctran (mw, system1, system2, axbits) pointer mw #I pointer to MWCS descriptor char system1[ARB] #I input coordinate system char system2[ARB] #I output coordinate system int axbits #I bitmap defining axes to be transformed bool newfunc int naxes, axis[MAX_DIM], wfno, fn, epa int i, j, k , matlen, ndata, ctlen, pdim pointer i_ltm, i_ltv, o_ltm, o_ltv, t_ltm, t_ltv, ltm, ltv pointer sp, w1, w2, ct, wf, fc, lp, ip, op, ct_r, sv_wcs pointer coerce() errchk syserr, syserrs, calloc, zcall2, mw_invertd, mw_ssystem include "mwcs.com" begin call smark (sp) # Get pointers to the input and output systems. sv_wcs = MI_WCS(mw) iferr { call mw_ssystem (mw, system1) w1 = MI_WCS(mw) call mw_ssystem (mw, system2) w2 = MI_WCS(mw) } then { MI_WCS(mw) = sv_wcs call erract (EA_ERROR) } else MI_WCS(mw) = sv_wcs # Get the physical axis list. The bitflags in AXBITS define the axes # in the logical system; run these through the axis map (if enabled) # to get the list of physical axes for which the transformation is to # be prepared. call mw_gaxlist (mw, axbits, axis, naxes) # Allocate the CTRAN descriptor. First we must figure out how # much space is required. The space required is for the base # descriptor, plus additional space for the LTM and LTV, which vary # in size depending upon the dimensionality of the transformation. # The whole thing is then doubled to provide 2 versions of the # descriptor, providing both single and double precision versions # of the LTM and LTV. Any additional storage utilized by the WCS # functions is separately allocated by the initialization routines # in the function drivers. matlen = naxes * naxes ndata = matlen + naxes ctlen = LEN_CTBASE + ndata * SZ_DOUBLE / SZ_STRUCT call calloc (ct, ctlen*2, TY_STRUCT) # Save a pointer to the CTRAN descriptor in the main MWCS descriptor, # to permit automatic deallocation at close time. do i = 1, MAX_CTRAN+1 { if (i > MAX_CTRAN) { call mfree (ct, TY_STRUCT) call syserr (SYS_MWCTOVFL) } if (MI_CTRAN(mw,i) == NULL) { MI_CTRAN(mw,i) = ct break } } CT_MW(ct) = mw CT_WCSI(ct) = w1 CT_WCSO(ct) = w2 CT_NDIM(ct) = naxes CT_R(ct) = ct + ctlen call amovi (axis, CT_AXIS(ct,1), naxes) CT_LTM(ct) = coerce (ct + LEN_CTBASE, TY_STRUCT, TY_DOUBLE) CT_LTV(ct) = CT_LTM(ct) + matlen ltm = CT_LTM(ct) ltv = CT_LTV(ct) # We also need some full-system matrix and vector buffers. pdim = min (WCS_NDIM(w1), WCS_NDIM(w2)) pdim = min (MI_NDIM(mw), pdim) i = pdim * pdim call salloc (i_ltm, i, TY_DOUBLE) call salloc (i_ltv, pdim, TY_DOUBLE) call salloc (o_ltm, i, TY_DOUBLE) call salloc (o_ltv, pdim, TY_DOUBLE) call salloc (t_ltm, i, TY_DOUBLE) call salloc (t_ltv, pdim, TY_DOUBLE) # Compute the transformation. A transformation between any two # world systems W1 and W2 consists of the transformation W1->P # from W1 to the physical system, followed by a transformation # P->W2 to the second world system. The linear portions of these # two transformations can be combined to produce a single linear # transformation, and if no WCS function calls are involved at # either end, the entire transformation reduces to a single linear # transformation defined by LTM and LTV. Note that as far as we # are concerned here, the special world systems "logical" and # "physical" are just like other world systems, except that both are # always linear systems. The linear term for the logical system is # the MWCS Lterm; for the physical system it is the identity matrix. # Set up the transformation W1->P. First we must determine if there # are any WCS function calls. We do this by going ahead and compiling # the "in" function calls in the CTRAN descriptor. do i = 1, naxes { wfno = WCS_AXCLASS(w1,axis[i]) # Skip to next axis if no WCS function is assigned to this axis. if (wfno == 0) next # Has function call for this axis already been compiled? newfunc = true do j = 1, CT_NCALLI(ct) { fc = CT_FCI(ct,j) do k = 1, FC_NAXES(fc) if (FC_AXIS(fc,k) == i) newfunc = false } # Compile a function call for the inverse transformation. if (newfunc) { CT_NCALLI(ct) = CT_NCALLI(ct) + 1 if (CT_NCALLI(ct) > MAX_CALL) call syserrs (SYS_MWFCOVFL, system1) fc = CT_FCI(ct,CT_NCALLI(ct)) wf = WCS_FUNC(w1,wfno) fn = WF_FN(wf) FC_CT(fc) = ct FC_WCS(fc) = w1 FC_WF(fc) = wf FC_FCN(fc) = FN_INV(fn) FC_NAXES(fc) = WF_NAXES(wf) # Store CTRAN-relative list of axes in function call # descriptor. Verify that all the axes needed for the # function call are included in the transformation. # This requirement can theoretically be relaxed in # some cases but this is not supported in MWCS. do j = 1, WF_NAXES(wf) { for (k=1; k <= naxes; k=k+1) if (axis[k] == WF_AXIS(wf,j)) { FC_AXIS(fc,j) = k break } if (k > naxes) call syserrs (SYS_MWMISSAX, system1) } # Call the function driver to perform any driver dependent # initialization. epa = FN_INIT(fn) if (epa != NULL) call zcall2 (epa, fc, INVERSE) } } # Prepare the linear part of the input transformation W1->P. # This is LTM=inv(CD), and for axis I, LTV[i]=(R[i]-inv(CD)*W) # if no function call, or LTV[i]=R[i] if there is a function # assigned to axis I which already deals with the W[i]. All # this is done in the full dimension of the internal system for # now; extraction of the portion of the full system affecting # the CTRAN axes is done later to permit verification of the # legality of the reduction step required. # Invert CD matrix. if (WCS_CD(w1) == NULL) call mw_mkidmd (Memd[i_ltm], pdim) else call mw_invertd (D(mw,WCS_CD(w1)), Memd[i_ltm], pdim) # If no function calls for an axis and W is set, LTV=(R-inv(CD)*W). if (WCS_W(w1) != NULL) { call amovd (D(mw,WCS_W(w1)), Memd[i_ltv], pdim) do i = 1, CT_NCALLI(ct) { fc = CT_FCI(ct,i) do j = 1, FC_NAXES(fc) { k = axis[FC_AXIS(fc,j)] Memd[i_ltv+k-1] = 0. } } call mw_vmuld (Memd[i_ltm], Memd[i_ltv], Memd[t_ltv], pdim) if (WCS_R(w1) == NULL) call anegd (Memd[t_ltv], Memd[i_ltv], pdim) else call asubd (D(mw,WCS_R(w1)), Memd[t_ltv], Memd[i_ltv], pdim) } else { if (WCS_R(w1) == NULL) call aclrd (Memd[i_ltv], pdim) else call amovd (D(mw,WCS_R(w1)), Memd[i_ltv], pdim) } # Now prepare the output side of the transformation, from P->W2. # Like the input half, this consists of a linear term and a list # of zero or more function calls. # Compile the "out" function calls in the CTRAN descriptor. do i = 1, naxes { wfno = WCS_AXCLASS(w2,axis[i]) # Skip to next axis if no WCS function is assigned to this axis. if (wfno == 0) next # Has function call for this axis already been compiled? newfunc = true do j = 1, CT_NCALLO(ct) { fc = CT_FCO(ct,j) do k = 1, FC_NAXES(fc) if (FC_AXIS(fc,k) == i) newfunc = false } # Compile a function call for the forward transformation. if (newfunc) { CT_NCALLO(ct) = CT_NCALLO(ct) + 1 if (CT_NCALLO(ct) > MAX_CALL) call syserrs (SYS_MWFCOVFL, system2) fc = CT_FCO(ct,CT_NCALLO(ct)) wf = WCS_FUNC(w2,wfno) fn = WF_FN(wf) FC_CT(fc) = ct FC_WCS(fc) = w2 FC_WF(fc) = wf FC_FCN(fc) = FN_FWD(fn) FC_NAXES(fc) = WF_NAXES(wf) # Store CTRAN-relative list of axes in function call # descriptor. Verify that all the axes needed for the # function call are included in the transformation. do j = 1, WF_NAXES(wf) { for (k=1; k <= naxes; k=k+1) if (axis[k] == WF_AXIS(wf,j)) { FC_AXIS(fc,j) = k break } if (k > naxes) call syserrs (SYS_MWMISSAX, system2) } # Call the function driver to perform any driver dependent # initialization. epa = FN_INIT(fn) if (epa != NULL) call zcall2 (epa, fc, FORWARD) } } # Prepare the linear part of the input transformation P->W2. # This is LTM=CD, and for axis I, LTV[i]=(W-CD*R) if no function # call, or LTV[i]=(-CD*R) if there is a function assigned to axis # I which already deals with the W[i]. # Copy CD matrix to LTM. if (WCS_CD(w2) == NULL) call mw_mkidmd (Memd[o_ltm], pdim) else call amovd (D(mw,WCS_CD(w2)), Memd[o_ltm], pdim*pdim) # Copy -R to t_ltv. if (WCS_R(w2) == NULL) call aclrd (Memd[t_ltv], pdim) else call amulkd (D(mw,WCS_R(w2)), -1.0D0, Memd[t_ltv], pdim) # Compute -CD*R in LTV. call mw_vmuld (Memd[o_ltm], Memd[t_ltv], Memd[o_ltv], pdim) # If no function calls for an axis and W is set, LTV=(W-CD*R). if (WCS_W(w2) != NULL) { call amovd (D(mw,WCS_W(w2)), Memd[t_ltv], pdim) call aaddd (Memd[t_ltv], Memd[o_ltv], Memd[o_ltv], pdim) do i = 1, CT_NCALLO(ct) { fc = CT_FCO(ct,i) do j = 1, FC_NAXES(fc) { k = axis[FC_AXIS(fc,j)] # undo +W[k] lp = o_ltv + k - 1 Memd[lp] = Memd[lp] - Memd[t_ltv+k-1] } } } # Now combine the linear terms of the input and output transformations # to produce the linear portion of the full transformation. call mw_mmuld (Memd[o_ltm], Memd[i_ltm], Memd[t_ltm], pdim) call mw_vmuld (Memd[o_ltm], Memd[i_ltv], Memd[t_ltv], pdim) call aaddd (Memd[o_ltv], Memd[t_ltv], Memd[t_ltv], pdim) # Extract the rows of the full linear transformation which are used # for the axes involved in the transformation we are compiling. # In the process we must examine the off-diagonal elements of the # matrix to verify that the system does not include any dependencies # upon axes other than those included in the transformation we are # compiling. (This restriction prohibits dimensional reduction via # an image section which results in loss of a rotated axis). do i = 1, naxes { # Get matrix line pointers for axis[i]. ip = t_ltm + (axis[i]-1) * pdim op = ltm + (i-1) * naxes do j = 1, pdim { # Is column J used by transform? for (k=1; k <= naxes; k=k+1) if (axis[k] == j) break # If column J is not used in the transform but is not zero, # then transform I is dependent upon physical axis J and # we cannot do the transform. If column J is used in the # transform, copy the value to the final output matrix LTM # discarding unused columns as we go. if (k > naxes) { # Check for dependency on axis outside transform. if (abs(Memd[ip+j-1]) > EPSILOND*100.0D0) call syserr (SYS_MWROTDEP) } else { # Add matrix element to final LTM. Memd[op+k-1] = Memd[ip+j-1] } } # Copy the LTV vector element. Memd[ltv+i-1] = Memd[t_ltv+axis[i]-1] } # Determine the transformation type. This is LNR for a purely # linear transformation with no rotational (off-diagonal) terms, # LRO for a purely linear transform with rotational terms, and # GEN for everything else. if (CT_NCALLI(ct) > 0 || CT_NCALLO(ct) > 0) CT_TYPE(ct) = GEN else { CT_TYPE(ct) = LNR do j = 1, naxes do i = 1, naxes if (i != j) { lp = ltm + (j-1)*naxes + i-1 if (abs(Memd[lp]) > EPSILOND*100.0D0) { CT_TYPE(ct) = LRO break } } } # Prepare the single precision part of the transform. call amovi (Memi[CT_D(ct)], Memi[CT_R(ct)], ctlen) ct_r = CT_R(ct) CT_LTM(ct_r) = coerce (ct_r + LEN_CTBASE, TY_STRUCT, TY_REAL) CT_LTV(ct_r) = CT_LTM(ct_r) + matlen call achtdr (Memd[CT_LTM(ct)], Memr[CT_LTM(ct_r)], matlen) call achtdr (Memd[CT_LTV(ct)], Memr[CT_LTV(ct_r)], naxes) call sfree (sp) return (ct) end # MW_CTRAN -- Transform a single N-dimensional point, using the optimized # transformation set up by a prior call to MW_SCTRAN. procedure wf_pc_ctran (a_ct, p1, p2, ndim) pointer a_ct #I pointer to CTRAN descriptor double p1[ndim] #I coordinates of point in input system double p2[ndim] #O coordinates of point in output system int ndim #I dimensionality of point int naxes, i, j pointer ct, fc, ltm, ltv, d_ct double v1[MAX_DIM], v2[MAX_DIM], iv[MAX_DIM], ov[MAX_DIM] errchk zcall3 begin # Get real or double version of descriptor. ct = CT_D(a_ct) ltm = CT_LTM(ct) ltv = CT_LTV(ct) # Specially optimized cases. if (CT_TYPE(ct) == LNR) { # Simple linear, nonrotated transformation. do i = 1, ndim p2[i] = Memd[ltm+(i-1)*(ndim+1)] * p1[i] + Memd[ltv+i-1] return } else if (CT_TYPE(ct) == LRO) { # Simple linear, rotated transformation. call mw_ltrand (p1, p2, Memd[ltm], Memd[ltv], ndim) return } # If we get here the transformation involves a call to one or more # WCS functions. In this general case, the transformation consists # of zero or more calls to WCS functions to transform the input # world coordinates to the linear input system, followed by a general # linear transformation to the linear output system, followed by zero # or more calls to WCS functions to do the forward transformation # to generate the final output world coordinates. The WCS function # calls are always evaluated in double precision. # Make zero or more WCS function calls for the different axes of the # input system (inverse transform). call achtdd (p1, iv, ndim) do j = 1, CT_NCALLI(ct) { # Get pointer to function call descriptor. fc = CT_FCI(ct,j) naxes = FC_NAXES(fc) # Extract the coordinate vector for the function call. do i = 1, naxes v1[i] = p1[FC_AXIS(fc,i)] # Call the WCS function. call zcall3 (FC_FCN(fc), fc, v1, v2) # Edit the vector IV, replacing the entries associated with # the WCS function by the transformed values. do i = 1, naxes iv[FC_AXIS(fc,i)] = v2[i] } # Apply the general linear transformation. We may as well do this in # double since we already have to use double for the function calls. d_ct = CT_D(a_ct) call mw_ltrand (iv, ov, Memd[CT_LTM(d_ct)], Memd[CT_LTV(d_ct)], ndim) # Make zero or more WCS function calls for the different axes of the # output system (forward transform to final world system). call achtdd (ov, p2, ndim) do j = 1, CT_NCALLO(ct) { # Get pointer to function call descriptor. fc = CT_FCO(ct,j) naxes = FC_NAXES(fc) # Extract the coordinate vector for the function call. do i = 1, naxes v1[i] = ov[FC_AXIS(fc,i)] # Call the WCS function. call zcall3 (FC_FCN(fc), fc, v1, v2) # Edit the final output vector, replacing the entries for the # function axes by their transformed values. do i = 1, naxes p2[FC_AXIS(fc,i)] = v2[i] } end # MW_CLOSE -- Close a MWCS descriptor and deallocate all resources used # by the descriptor. Any CTRAN descriptors which have been opened on # the MWCS are automatically closed if not already manually closed by # the application. procedure wf_pc_close (mw) pointer mw #U pointer to MWCS descriptor int i pointer ct begin # Free any still allocated CTRAN descriptors. do i = 1, MAX_CTRAN { ct = MI_CTRAN(mw,i) if (ct != NULL) iferr (call wf_pc_freect (ct)) call erract (EA_WARN) } # Free the string and data buffers. if (MI_SBUF(mw) != NULL) call mfree (MI_SBUF(mw), TY_CHAR) if (MI_DBUF(mw) != NULL) call mfree (MI_DBUF(mw), TY_DOUBLE) # Free the main descriptor. call mfree (mw, TY_STRUCT) end # MW_CTFREE -- Free a CTRAN (coordinate transformation) descriptor. We keep # track of all allocated CTRAN descriptors in the parent MWCS descriptor, and # NULL the saved entry for a descriptor when it is freed, thus guaranteeing # that a descriptor will be freed only once. procedure wf_pc_freect (ct) pointer ct #U pointer to CTRAN descriptor int fn, i, j pointer mw, fc include "mwcs.com" begin if (ct != NULL) { mw = CT_MW(ct) if (mw != NULL) do i = 1, MAX_CTRAN if (MI_CTRAN(mw,i) == ct) { # Free private storage for any input WCS functions. do j = 1, CT_NCALLI(ct) { fc = CT_FCI(ct,j) fn = WF_FN(FC_WF(fc)) if (FN_DESTROY(fn) != NULL) call zcall1 (FN_DESTROY(fn), fc) } # Free private storage for any output WCS functions. do j = 1, CT_NCALLO(ct) { fc = CT_FCO(ct,j) fn = WF_FN(FC_WF(fc)) if (FN_DESTROY(fn) != NULL) call zcall1 (FN_DESTROY(fn), fc) } # Free the main CTRAN descriptor. call mfree (ct, TY_STRUCT) MI_CTRAN(mw,i) = NULL break } } end sptable-1.0.pre20180612/src/mwcs/wfpco.x000066400000000000000000000371111331023215600174630ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include "mwcs.h" .help WFPCO .nf ------------------------------------------------------------------------- WFPCO -- WCS function driver for the polyconic projection. Driver routines: FN_INIT wf_pco_init (fc, dir) FN_DESTROY (none) FN_FWD wf_pco_fwd (fc, v1, v2) FN_INV wf_pco_inv (fc, v1, v2) .endhelp -------------------------------------------------------------------- # Driver specific fields of function call (FC) descriptor. define FC_IRA Memi[$1+FCU] # RA axis (1 or 2) define FC_IDEC Memi[$1+FCU+1] # DEC axis (1 or 2) define FC_NATRA Memd[P2D($1+FCU+2)] # RA of native pole (rads) define FC_NATDEC Memd[P2D($1+FCU+4)] # DEC of native pole (rads) define FC_LONGP Memd[P2D($1+FCU+6)] # LONGPOLE (rads) define FC_COSDEC Memd[P2D($1+FCU+8)] # cosine (NATDEC) define FC_SINDEC Memd[P2D($1+FCU+10)] # sine (NATDEC) define FC_SPHTOL Memd[P2D($1+FCU+12)] # trig tolerance define FC_RODEG Memd[P2D($1+FCU+14)] # RO (degs) define FC_RORAD Memd[P2D($1+FCU+16)] # RO (rads) define FC_RECRORAD Memd[P2D($1+FCU+18)] # 1 / RO (rads) define FC_2RODEG Memd[P2D($1+FCU+20)] # 2 * RO define FC_BADCVAL Memd[P2D($1+FCU+22)] # bad coordinate value define FC_W Memd[P2D($1+FCU+24)+($2)-1] # CRVAL axis (1 and 2) # WF_PCO_INIT -- Initialize the polyconic forward or inverse # transform. Initialization for this transformation consists of, determining # which axis is RA / LON and which is DEC / LAT, reading in the the native # longitude and latitude of the pole in celestial coordinates LONGPOLE and # LATPOLE from the attribute list, computing the celestial longitude and # colatitude of the native pole, precomputing the Euler anges and various # intermediary functions of the reference point, and reading in the # projection parameter RO from the attribute list. If LONGPOLE is undefined # then a value of 180.0 degrees is assumed if the native latitude of the # reference point is less than 0, otherwise 0 is assumed. If LATPOLE is # undefined then the most northerly of the two possible solutions for the # latitude of the native pole is chosen, otherwise the solution closest to # LATPOLE is chosen. If RO is undefined a value of 180.0 / PI is assumed. # In order to determine the axis order, the parameter "axtype={ra|dec} # {xlon|xlat}" must have been set in the attribute list for the function. # The LONGPOLE, LATPOLE and RO parameters may be set in either or both of the # axes attribute lists, but the value in the RA axis attribute list takes # precedence. procedure wf_pco_init (fc, dir) pointer fc #I pointer to FC descriptor int dir #I direction of transform int i double dec, latpole, theta0, clat0, slat0, cphip, sphip, cthe0, sthe0, x, y, z double u, v, latp1, latp2, latp, maxlat, tol pointer sp, atvalue, ct, mw, wp, wv int ctod() data tol/1.0d-10/ errchk wf_decaxis(), mw_gwattrs() begin # Allocate space for the attribute string. call smark (sp) call salloc (atvalue, SZ_LINE, TY_CHAR) # Get the required mwcs pointers. ct = FC_CT(fc) mw = CT_MW(ct) wp = FC_WCS(fc) # Determine which is the DEC axis, and hence the axis order. call wf_decaxis (fc, FC_IRA(fc), FC_IDEC(fc)) # Get the value of W for each axis, i.e. the world coordinates at # the reference point. wv = MI_DBUF(mw) + WCS_W(wp) - 1 do i = 1, 2 FC_W(fc,i) = Memd[wv+CT_AXIS(ct,FC_AXIS(fc,i))-1] # Determine the native longitude and latitude of the pole of the # celestial coordinate system corresponding to the FITS keywords # LONGPOLE and LATPOLE. LONGPOLE has no default but will be set # to 180 or 0 depending on the value of the declination of the # reference point. LATPOLE has no default but will be set depending # on the values of LONGPOLE and the reference declination. iferr { call mw_gwattrs (mw, FC_IRA(fc), "longpole", Memc[atvalue], SZ_LINE) } then { iferr { call mw_gwattrs (mw, FC_IDEC(fc), "longpole", Memc[atvalue], SZ_LINE) } then { FC_LONGP(fc) = INDEFD } else { i = 1 if (ctod (Memc[atvalue], i, FC_LONGP(fc)) <= 0) FC_LONGP(fc) = INDEFD } } else { i = 1 if (ctod (Memc[atvalue], i, FC_LONGP(fc)) <= 0) FC_LONGP(fc) = INDEFD } iferr { call mw_gwattrs (mw, FC_IRA(fc), "latpole", Memc[atvalue], SZ_LINE) } then { iferr { call mw_gwattrs (mw, FC_IDEC(fc), "latpole", Memc[atvalue], SZ_LINE) } then { latpole = INDEFD } else { i = 1 if (ctod (Memc[atvalue], i, latpole) <= 0) latpole = INDEFD } } else { i = 1 if (ctod (Memc[atvalue], i, latpole) <= 0) latpole = INDEFD } # Fetch the RO projection parameter which is the radius of the # generating sphere for the projection. If RO is absent which # is the usual case set it to 180 / PI. Search both axes for # this quantity. iferr { call mw_gwattrs (mw, FC_IRA(fc), "ro", Memc[atvalue], SZ_LINE) } then { iferr { call mw_gwattrs (mw, FC_IDEC(fc), "ro", Memc[atvalue], SZ_LINE) } then { FC_RODEG(fc) = 180.0d0 / DPI } else { i = 1 if (ctod (Memc[atvalue], i, FC_RODEG(fc)) <= 0) FC_RODEG(fc) = 180.0d0 / DPI } } else { i = 1 if (ctod (Memc[atvalue], i, FC_RODEG(fc)) <= 0) FC_RODEG(fc) = 180.0d0 / DPI } # Compute the native longitude of the celestial pole. dec = DDEGTORAD(FC_W(fc,FC_IDEC(fc))) theta0 = 0.0d0 if (IS_INDEFD(FC_LONGP(fc))) { if (dec < theta0) FC_LONGP(fc) = DPI else FC_LONGP(fc) = 0.0d0 } else FC_LONGP(fc) = DDEGTORAD(FC_LONGP(fc)) # Compute the celestial longitude and latitude of the native pole. clat0 = cos (dec) slat0 = sin (dec) cphip = cos (FC_LONGP(fc)) sphip = sin (FC_LONGP(fc)) cthe0 = cos (theta0) sthe0 = sin (theta0) x = cthe0 * cphip y = sthe0 z = sqrt (x * x + y * y) # The latitude of the native pole is determined by LATPOLE in this # case. if (z == 0.0d0) { if (slat0 != 0.0d0) call error (0, "WF_PCO_INIT: Invalid projection parameters") if (IS_INDEFD(latpole)) latp = 999.0d0 else latp = DDEGTORAD(latpole) } else { if (abs (slat0 / z) > 1.0d0) call error (0, "WF_PCO_INIT: Invalid projection parameters") u = atan2 (y, x) v = acos (slat0 / z) latp1 = u + v if (latp1 > DPI) latp1 = latp1 - DTWOPI else if (latp1 < -DPI) latp1 = latp1 + DTWOPI latp2 = u - v if (latp2 > DPI) latp2 = latp2 - DTWOPI else if (latp2 < -DPI) latp2 = latp2 + DTWOPI if (IS_INDEFD(latpole)) maxlat = 999.0d0 else maxlat = DDEGTORAD(latpole) if (abs (maxlat - latp1) < abs (maxlat - latp2)) { if (abs (latp1) < (DHALFPI + tol)) latp = latp1 else latp = latp2 } else { if (abs (latp2) < (DHALFPI + tol)) latp = latp2 else latp = latp1 } } FC_NATDEC(fc) = DHALFPI - latp z = cos (latp) * clat0 if (abs(z) < tol) { # Celestial pole at the reference point. if (abs(clat0) < tol) { FC_NATRA(fc) = DDEGTORAD(FC_W(fc,FC_IRA(fc))) FC_NATDEC(fc) = DHALFPI - theta0 # Celestial pole at the native north pole. } else if (latp > 0.0d0) { FC_NATRA(fc) = DDEGTORAD(FC_W(fc,FC_IRA(fc))) + FC_LONGP(fc) - DPI FC_NATDEC(fc) = 0.0d0 # Celestial pole at the native south pole. } else if (latp < 0.0d0) { FC_NATRA(fc) = DDEGTORAD(FC_W(fc,FC_IRA(fc))) - FC_LONGP(fc) FC_NATDEC(fc) = DPI } } else { x = (sthe0 - sin (latp) * slat0) / z y = sphip * cthe0 / clat0 if (x == 0.0d0 && y == 0.0d0) call error (0, "WF_PCO_INIT: Invalid projection parameters") FC_NATRA(fc) = DDEGTORAD(FC_W(fc,FC_IRA(fc))) - atan2 (y,x) } if (FC_W(fc,FC_IRA(fc)) >= 0.0d0) { if (FC_NATRA(fc) < 0.0d0) FC_NATRA(fc) = FC_NATRA(fc) + DTWOPI } else { if (FC_NATRA(fc) > 0.0d0) FC_NATRA(fc) = FC_NATRA(fc) - DTWOPI } FC_COSDEC(fc) = cos (FC_NATDEC(fc)) FC_SINDEC(fc) = sin (FC_NATDEC(fc)) # Check for ill-conditioned parameters. if (abs(latp) > (DHALFPI+tol)) call error (0, "WF_PCO_INIT: Invalid projection parameters") # Compute the required intermediate quantities. FC_RORAD(fc) = DDEGTORAD(FC_RODEG(fc)) FC_RECRORAD(fc) = 1.0d0 / FC_RORAD(fc) FC_2RODEG(fc) = 2.0d0 * FC_RODEG(fc) # Set the bad coordinate value. FC_SPHTOL(fc) = 1.0d-5 # Set the bad coordinate value. FC_BADCVAL(fc) = INDEFD # Free working space. call sfree (sp) end # WF_PCO_FWD -- Forward transform (physical to world) for the polyconic # projection. procedure wf_pco_fwd (fc, p, w) pointer fc #I pointer to FC descriptor double p[2] #I physical coordinates (x, y) double w[2] #O world coordinates (ra, dec) int ira, idec, j double x, y, z, phi, theta, costhe, sinthe, dphi, cosphi, sinphi double ra, dec, wconst, tol, thepos, theneg, xx, ymthe, fpos, fneg, lambda double tanthe, f, dlng double xp, yp data tol / 1.0d-12/ begin # Get the axis numbers. ira = FC_IRA(fc) idec = FC_IDEC(fc) # Compute native spherical coordinates PHI and THETA in degrees from # the projected coordinates. This is the projection part of the # computation. x = p[ira] y = p[idec] # Compute PHI and THETA. wconst = abs (y * FC_RECRORAD(fc)) if (wconst < tol) { phi = x * FC_RECRORAD(fc) theta = 0.0d0 } else if (abs (wconst - 90.0d0) < tol) { phi = 0.0d0 if (y >= 0.0d0) theta = DHALFPI else theta = -DHALFPI } else { if (y > 0.0d0) thepos = 90.0d0 else thepos = -90.0d0 theneg = 0.0d0 xx = x * x ymthe = y - FC_RORAD(fc) * thepos fpos = xx + ymthe * ymthe fneg = -999.0d0 do j = 1, 64 { # Compute the required interval. if (fneg < -100.0d0) theta = (thepos + theneg) / 2.0d0 else { lambda = fpos / (fpos - fneg) if (lambda < 0.1d0) lambda = 0.1d0 else if (lambda > 0.9d0) lambda = 0.9d0 theta = thepos - lambda * (thepos - theneg) } # Compute the residue. ymthe = y - FC_RORAD(fc) * theta tanthe = tan (DDEGTORAD(theta)) f = xx + ymthe * (ymthe - FC_2RODEG(fc) / tanthe) # Check for convergence. if (abs(f) < tol) break if (abs (thepos - theneg) < tol) break # Redefine the interval if (f > 0.0d0) { thepos = theta fpos = f } else { theneg = theta fneg = f } } theta = DDEGTORAD(theta) xp = FC_RODEG(fc) - ymthe * tanthe yp = x * tanthe if (xp == 0.0d0 && yp == 0.0d0) phi = 0.0d0 else phi = atan2 (yp, xp) / sin (theta) } # Compute the celestial coordinates RA and DEC from the native # coordinates PHI and THETA. This is the spherical geometry part # of the computation. costhe = cos (theta) sinthe = sin (theta) dphi = phi - FC_LONGP(fc) cosphi = cos (dphi) sinphi = sin (dphi) # Compute the RA. x = sinthe * FC_SINDEC(fc) - costhe * FC_COSDEC(fc) * cosphi if (abs (x) < FC_SPHTOL(fc)) x = -cos (theta + FC_NATDEC(fc)) + costhe * FC_COSDEC(fc) * (1.0d0 - cosphi) y = -costhe * sinphi if (x != 0.0d0 || y != 0.0d0) { dlng = atan2 (y, x) } else { dlng = dphi + DPI } ra = DRADTODEG(FC_NATRA(fc) + dlng) # Normalize the RA. if (FC_NATRA(fc) >= 0.0d0) { if (ra < 0.0d0) ra = ra + 360.0d0 } else { if (ra > 0.0d0) ra = ra - 360.0d0 } if (ra > 360.0d0) ra = ra - 360.0d0 else if (ra < -360.0d0) ra = ra + 360.0d0 # Compute the DEC. if (mod (dphi, DPI) == 0.0d0) { dec = DRADTODEG(theta + cosphi * FC_NATDEC(fc)) if (dec > 90.0d0) dec = 180.0d0 - dec if (dec < -90.0d0) dec = -180.0d0 - dec } else { z = sinthe * FC_COSDEC(fc) + costhe * FC_SINDEC(fc) * cosphi if (abs(z) > 0.99d0) { if (z >= 0.0d0) dec = DRADTODEG(acos (sqrt(x * x + y * y))) else dec = DRADTODEG(-acos (sqrt(x * x + y * y))) } else dec = DRADTODEG(asin (z)) } # Store the results. w[ira] = ra w[idec] = dec end # WF_PCO_INV -- Inverse transform (world to physical) for the polyconic # projection. procedure wf_pco_inv (fc, w, p) pointer fc #I pointer to FC descriptor double w[2] #I input world (RA, DEC) coordinates double p[2] #I output physical coordinates int ira, idec double ra, dec, cosdec, sindec, cosra, sinra, x, y, phi, theta, costhe double a, sinthe, cotthe, dphi, z begin # Get the axes numbers. ira = FC_IRA(fc) idec = FC_IDEC(fc) # Compute the transformation from celestial coordinates RA and # DEC to native coordinates PHI and THETA. This is the spherical # geometry part of the transformation. ra = DDEGTORAD (w[ira]) - FC_NATRA(fc) dec = DDEGTORAD (w[idec]) cosra = cos (ra) sinra = sin (ra) cosdec = cos (dec) sindec = sin (dec) # Compute PHI. x = sindec * FC_SINDEC(fc) - cosdec * FC_COSDEC(fc) * cosra if (abs(x) < FC_SPHTOL(fc)) x = -cos (dec + FC_NATDEC(fc)) + cosdec * FC_COSDEC(fc) * (1.0d0 - cosra) y = -cosdec * sinra if (x != 0.0d0 || y != 0.0d0) dphi = atan2 (y, x) else dphi = ra - DPI phi = FC_LONGP(fc) + dphi if (phi > DPI) phi = phi - DTWOPI else if (phi < -DPI) phi = phi + DTWOPI # Compute THETA. if (mod (ra, DPI) == 0.0) { theta = dec + cosra * FC_NATDEC(fc) if (theta > DHALFPI) theta = DPI - theta if (theta < -DHALFPI) theta = -DPI - theta } else { z = sindec * FC_COSDEC(fc) + cosdec * FC_SINDEC(fc) * cosra if (abs (z) > 0.99d0) { if (z >= 0.0) theta = acos (sqrt(x * x + y * y)) else theta = -acos (sqrt(x * x + y * y)) } else theta = asin (z) } # Compute the transformation from native coordinates PHI and THETA # to projected coordinates X and Y. costhe = cos (theta) sinthe = sin (theta) a = phi * sinthe if (sinthe == 0.0d0) { p[ira] = FC_RODEG(fc) * phi p[idec] = 0.0d0 } else { cotthe = costhe / sinthe p[ira] = FC_RODEG(fc) * cotthe * sin (a) p[idec] = FC_RODEG(fc) * (cotthe * (1.0d0 - cos(a)) + theta) } end sptable-1.0.pre20180612/src/mwcs/wfqsc.x000066400000000000000000000474561331023215600175050ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include "mwcs.h" .help WFQSC .nf ------------------------------------------------------------------------- WFQSC -- WCS function driver for quadrilateralized spherical cube projection. Driver routines: FN_INIT wf_qsc_init (fc, dir) FN_DESTROY (none) FN_FWD wf_qsc_fwd (fc, v1, v2) FN_INV wf_qsc_inv (fc, v1, v2) .endhelp -------------------------------------------------------------------- # Driver specific fields of function call (FC) descriptor. define FC_IRA Memi[$1+FCU] # RA axis (1 or 2) define FC_IDEC Memi[$1+FCU+1] # DEC axis (1 or 2) define FC_NATRA Memd[P2D($1+FCU+2)] # RA of native pole (rads) define FC_NATDEC Memd[P2D($1+FCU+4)] # DEC of native pole (rads) define FC_LONGP Memd[P2D($1+FCU+6)] # LONGPOLE (rads) define FC_COSDEC Memd[P2D($1+FCU+8)] # cosine (NATDEC) define FC_SINDEC Memd[P2D($1+FCU+10)] # sine (NATDEC) define FC_SPHTOL Memd[P2D($1+FCU+12)] # trig tolerance define FC_RODEG Memd[P2D($1+FCU+14)] # RO (degs) define FC_C1 Memd[P2D($1+FCU+16)] # RO * (PI / 4) define FC_C2 Memd[P2D($1+FCU+18)] # (4 / PI) / RO define FC_BADCVAL Memd[P2D($1+FCU+20)] # bad coordinate value define FC_W Memd[P2D($1+FCU+22)+($2)-1] # CRVAL axis (1 and 2) # WF_QSC_INIT -- Initialize the forward or inverse quarilateralized spherical # cube projection transform. Initialization for this transformation consists # of, determining which axis is RA / LON and which is DEC / LAT, reading in # the native longitude and latitude of the pole in celestial coordinates # LONGPOLE and LATPOLE from the attribute list, computing the celestial # longitude and colatitude of the native pole, precomputing the Euler angles # and various intermediary functions of the reference point, reading in the # projection parameter RO from the attribute list, and precomputing the various # required intermediate quantities. If LONGPOLE is undefined then a value of # 180.0 degrees is assumed if the celestial latitude is less than 0, otherwise # 0 degrees is assumed. If LATPOLE is undefined the most northerly of the two # possible solutions is chosen, otherwise the solution closest to LATPOLE is # chosen. If RO is undefined a value of 180.0 / PI is assumed. In order to # determine the axis order, the parameter "axtype={ra|dec} {xlon|xlat}" must # have been set in the attribute list for the function. The LONGPOLE, LATPOLE, # and RO parameters may be set in either or both of the axes attribute lists, # but the value in the RA axis attribute list takes precedence. procedure wf_qsc_init (fc, dir) pointer fc #I pointer to FC descriptor int dir #I direction of transform int i double dec, latpole, theta0, clat0, slat0, cphip, sphip, cthe0, sthe0, x, y, z double u, v, latp1, latp2, latp, maxlat, tol pointer sp, atvalue, ct, mw, wp, wv int ctod() data tol/1.0d-10/ errchk wf_decaxis(), mw_gwattrs() begin # Allocate space for the attribute string. call smark (sp) call salloc (atvalue, SZ_LINE, TY_CHAR) # Get the required mwcs pointers. ct = FC_CT(fc) mw = CT_MW(ct) wp = FC_WCS(fc) # Determine which is the DEC axis, and hence the axis order. call wf_decaxis (fc, FC_IRA(fc), FC_IDEC(fc)) # Get the value of W for each axis, i.e. the world coordinates at # the reference point. wv = MI_DBUF(mw) + WCS_W(wp) - 1 do i = 1, 2 FC_W(fc,i) = Memd[wv+CT_AXIS(ct,FC_AXIS(fc,i))-1] # Determine the native longitude and latitude of the pole of the # celestial coordinate system corresponding to the FITS keywords # LONGPOLE and LATPOLE. LONGPOLE has no default but will be set # to 180 or 0 depending on the value of the declination of the # reference point. LATPOLE has no default but will be set depending # on the values of LONGPOLE and the reference declination. iferr { call mw_gwattrs (mw, FC_IRA(fc), "longpole", Memc[atvalue], SZ_LINE) } then { iferr { call mw_gwattrs (mw, FC_IDEC(fc), "longpole", Memc[atvalue], SZ_LINE) } then { FC_LONGP(fc) = INDEFD } else { i = 1 if (ctod (Memc[atvalue], i, FC_LONGP(fc)) <= 0) FC_LONGP(fc) = INDEFD } } else { i = 1 if (ctod (Memc[atvalue], i, FC_LONGP(fc)) <= 0) FC_LONGP(fc) = INDEFD } iferr { call mw_gwattrs (mw, FC_IRA(fc), "latpole", Memc[atvalue], SZ_LINE) } then { iferr { call mw_gwattrs (mw, FC_IDEC(fc), "latpole", Memc[atvalue], SZ_LINE) } then { latpole = INDEFD } else { i = 1 if (ctod (Memc[atvalue], i, latpole) <= 0) latpole = INDEFD } } else { i = 1 if (ctod (Memc[atvalue], i, latpole) <= 0) latpole = INDEFD } # Fetch the RO projection parameter which is the radius of the # generating sphere for the projection. If RO is absent which # is the usual case set it to 180 / PI. Search both axes for # this quantity. iferr { call mw_gwattrs (mw, FC_IRA(fc), "ro", Memc[atvalue], SZ_LINE) } then { iferr { call mw_gwattrs (mw, FC_IDEC(fc), "ro", Memc[atvalue], SZ_LINE) } then { FC_RODEG(fc) = 180.0d0 / DPI } else { i = 1 if (ctod (Memc[atvalue], i, FC_RODEG(fc)) <= 0) FC_RODEG(fc) = 180.0d0 / DPI } } else { i = 1 if (ctod (Memc[atvalue], i, FC_RODEG(fc)) <= 0) FC_RODEG(fc) = 180.0d0 / DPI } # Compute the native longitude of the celestial pole. dec = DDEGTORAD(FC_W(fc,FC_IDEC(fc))) theta0 = 0.0d0 if (IS_INDEFD(FC_LONGP(fc))) { if (dec < theta0) FC_LONGP(fc) = DPI else FC_LONGP(fc) = 0.0d0 } else FC_LONGP(fc) = DDEGTORAD(FC_LONGP(fc)) # Compute the celestial longitude and latitude of the native pole. clat0 = cos (dec) slat0 = sin (dec) cphip = cos (FC_LONGP(fc)) sphip = sin (FC_LONGP(fc)) cthe0 = cos (theta0) sthe0 = sin (theta0) x = cthe0 * cphip y = sthe0 z = sqrt (x * x + y * y) # The latitude of the native pole is determined by LATPOLE in this # case. if (z == 0.0d0) { if (slat0 != 0.0d0) call error (0, "WF_QSC_INIT: Invalid projection parameters") if (IS_INDEFD(latpole)) latp = 999.0d0 else latp = DDEGTORAD(latpole) } else { if (abs (slat0 / z) > 1.0d0) call error (0, "WF_QSC_INIT: Invalid projection parameters") u = atan2 (y, x) v = acos (slat0 / z) latp1 = u + v if (latp1 > DPI) latp1 = latp1 - DTWOPI else if (latp1 < -DPI) latp1 = latp1 + DTWOPI latp2 = u - v if (latp2 > DPI) latp2 = latp2 - DTWOPI else if (latp2 < -DPI) latp2 = latp2 + DTWOPI if (IS_INDEFD(latpole)) maxlat = 999.0d0 else maxlat = DDEGTORAD(latpole) if (abs (maxlat - latp1) < abs (maxlat - latp2)) { if (abs (latp1) < (DHALFPI + tol)) latp = latp1 else latp = latp2 } else { if (abs (latp2) < (DHALFPI + tol)) latp = latp2 else latp = latp1 } } FC_NATDEC(fc) = DHALFPI - latp z = cos (latp) * clat0 if (abs(z) < tol) { # Celestial pole at the reference point. if (abs(clat0) < tol) { FC_NATRA(fc) = DDEGTORAD(FC_W(fc,FC_IRA(fc))) FC_NATDEC(fc) = DHALFPI - theta0 # Celestial pole at the native north pole. } else if (latp > 0.0d0) { FC_NATRA(fc) = DDEGTORAD(FC_W(fc,FC_IRA(fc))) + FC_LONGP(fc) - DPI FC_NATDEC(fc) = 0.0d0 # Celestial pole at the native south pole. } else if (latp < 0.0d0) { FC_NATRA(fc) = DDEGTORAD(FC_W(fc,FC_IRA(fc))) - FC_LONGP(fc) FC_NATDEC(fc) = DPI } } else { x = (sthe0 - sin (latp) * slat0) / z y = sphip * cthe0 / clat0 if (x == 0.0d0 && y == 0.0d0) call error (0, "WF_QSC_INIT: Invalid projection parameters") FC_NATRA(fc) = DDEGTORAD(FC_W(fc,FC_IRA(fc))) - atan2 (y,x) } if (FC_W(fc,FC_IRA(fc)) >= 0.0d0) { if (FC_NATRA(fc) < 0.0d0) FC_NATRA(fc) = FC_NATRA(fc) + DTWOPI } else { if (FC_NATRA(fc) > 0.0d0) FC_NATRA(fc) = FC_NATRA(fc) - DTWOPI } FC_COSDEC(fc) = cos (FC_NATDEC(fc)) FC_SINDEC(fc) = sin (FC_NATDEC(fc)) # Check for ill-conditioned parameters. if (abs(latp) > (DHALFPI+tol)) call error (0, "WF_QCS_INIT: Invalid projection parameters") # Compute the required intermediate quantities. FC_C1(fc) = FC_RODEG(fc) * (DPI / 4.0d0) FC_C2(fc) = 1.0d0 / FC_C1(fc) # Set the bad coordinate value. FC_SPHTOL(fc) = 1.0d-5 # Set the bad coordinate value. FC_BADCVAL(fc) = INDEFD # Free working space. call sfree (sp) end # WF_QSC_FWD -- Forward transform (physical to world) for the quarilateralized # spherical projection. procedure wf_qsc_fwd (fc, p, w) pointer fc #I pointer to FC descriptor double p[2] #I physical coordinates (x, y) double w[2] #O world coordinates (ra, dec) int ira, idec, face, direct double l, m, n, phi, theta, costhe, sinthe, dphi, cosphi, sinphi, x, y, z double xf, yf, rho, chi, psi, tol, wconst, ra, dec, dlng, rhu data tol /1.0d-12/ begin # Get the axis numbers. ira = FC_IRA(fc) idec = FC_IDEC(fc) # Compute native spherical coordinates PHI and THETA in degrees from # the projected coordinates. This is the projection part of the # computation. xf = p[ira] * FC_C2(fc) yf = p[idec] * FC_C2(fc) if (xf > 5.0d0) { face = 4 xf = xf - 6.0d0 } else if (xf > 3.0d0) { face = 3 xf = xf - 4.0d0 } else if (xf > 1.0d0) { face = 2 xf = xf - 2.0d0 } else if (yf > 1.0d0) { face = 0 yf = yf - 2.0d0 } else if (yf < -1.0d0) { face = 5 yf = yf + 2.0d0 } else { face = 1 } if (abs(xf) > abs(yf)) direct = YES else direct = NO if (direct == YES) { if (xf == 0.0d0) { psi = 0.0d0 chi = 1.0d0 rho = 1.0d0 rhu = 0.0d0 } else { wconst = DDEGTORAD(15.0d0 * yf / xf) psi = sin (wconst) / (cos (wconst) - 1.0d0 / DSQRTOF2) chi = 1.0d0 + psi * psi rhu = xf * xf * (1.0d0 - 1.0d0 / sqrt (1.0d0 + chi)) rho = 1.0d0 - rhu } } else { if (yf == 0.0d0) { psi = 0.0d0 chi = 1.0d0 rho = 1.0d0 rhu = 0.0d0 } else { wconst = DDEGTORAD(15.0d0 * xf / yf) psi = sin (wconst) / (cos (wconst) - 1.0d0 / DSQRTOF2) chi = 1.0d0 + psi * psi rhu = yf * yf * (1.0d0 - 1.0d0 / sqrt (1.0d0 + chi)) rho = 1.0d0 - rhu } } if (rho < -1.0d0) { if (rho < (-1.0d0 - tol)) { w[ira] = FC_BADCVAL(fc) w[idec] = FC_BADCVAL(fc) return } rho = -1.0d0 rhu = 2.0d0 wconst = 0.0d0 } else { wconst = sqrt (rhu * (2.0d0 - rhu) / chi) } switch (face) { case 0: n = rho if (direct == YES) { l = wconst if (xf < 0.0d0) l = -l m = -l * psi } else { m = wconst if (yf > 0.0d0) m = -m l = -m * psi } case 1: m = rho if (direct == YES) { l = wconst if (xf < 0.0d0) l = -l n = l * psi } else { n = wconst if (yf < 0.0d0) n = -n l = n * psi } case 2: l = rho if (direct == YES) { m = wconst if (xf > 0.0d0) m = -m n = -m * psi } else { n = wconst if (yf < 0.0d0) n = -n m = -n * psi } case 3: m = -rho if (direct == YES) { l = wconst if (xf > 0.0d0) l = -l n = -l * psi } else { n = wconst if (yf < 0.0d0) n = -n l = -n * psi } case 4: l = -rho if (direct == YES) { m = wconst if (xf < 0.0d0) m = -m n = m * psi } else { n = wconst if (yf < 0.0d0) n = -n m = n * psi } case 5: n = -rho if (direct == YES) { l = wconst if (xf < 0.0d0) l = -l m = l * psi } else { m = wconst if (yf < 0.0d0) m = -m l = m * psi } } # Compute PHI. if (l == 0.0d0 && m == 0.0d0) phi = 0.0d0 else phi = atan2 (l, m) # Compute THETA. theta = asin(n) # Compute the celestial coordinates RA and DEC from the native # coordinates PHI and THETA. This is the spherical geometry part # of the computation. costhe = cos (theta) sinthe = sin (theta) dphi = phi - FC_LONGP(fc) cosphi = cos (dphi) sinphi = sin (dphi) # Compute the RA. x = sinthe * FC_SINDEC(fc) - costhe * FC_COSDEC(fc) * cosphi if (abs (x) < FC_SPHTOL(fc)) x = -cos (theta + FC_NATDEC(fc)) + costhe * FC_COSDEC(fc) * (1.0d0 - cosphi) y = -costhe * sinphi if (x != 0.0d0 || y != 0.0d0) { dlng = atan2 (y, x) } else { dlng = dphi + DPI } ra = DRADTODEG(FC_NATRA(fc) + dlng) # Normalize the RA. if (FC_NATRA(fc) >= 0.0d0) { if (ra < 0.0d0) ra = ra + 360.0d0 } else { if (ra > 0.0d0) ra = ra - 360.0d0 } if (ra > 360.0d0) ra = ra - 360.0d0 else if (ra < -360.0d0) ra = ra + 360.0d0 # Compute the DEC. if (mod (dphi, DPI) == 0.0d0) { dec = DRADTODEG(theta + cosphi * FC_NATDEC(fc)) if (dec > 90.0d0) dec = 180.0d0 - dec if (dec < -90.0d0) dec = -180.0d0 - dec } else { z = sinthe * FC_COSDEC(fc) + costhe * FC_SINDEC(fc) * cosphi if (abs(z) > 0.99d0) { if (z >= 0.0d0) dec = DRADTODEG(acos (sqrt(x * x + y * y))) else dec = DRADTODEG(-acos (sqrt(x * x + y * y))) } else dec = DRADTODEG(asin (z)) } # Store the results. w[ira] = ra w[idec] = dec end # WF_QSC_INV -- Inverse transform (world to physical) for the quadilateralized # spherical projection. procedure wf_qsc_inv (fc, w, p) pointer fc #I pointer to FC descriptor double w[2] #I input world (RA, DEC) coordinates double p[2] #I output physical coordinates int ira, idec, face double ra, dec, cosdec, sindec, cosra, sinra, x, y, z, phi, theta, dphi double costhe, eta, l, m, n, rho, xi, tol, x0, y0, psi, chi, xf, yf double pconst, t, rhu data tol /1.0d-12/ begin # Get the axes numbers. ira = FC_IRA(fc) idec = FC_IDEC(fc) # Compute the transformation from celestial coordinates RA and # DEC to native coordinates PHI and THETA. This is the spherical # geometry part of the transformation. ra = DDEGTORAD (w[ira]) - FC_NATRA(fc) dec = DDEGTORAD (w[idec]) cosra = cos (ra) sinra = sin (ra) cosdec = cos (dec) sindec = sin (dec) # Compute PHI. x = sindec * FC_SINDEC(fc) - cosdec * FC_COSDEC(fc) * cosra if (abs(x) < FC_SPHTOL(fc)) x = -cos (dec + FC_NATDEC(fc)) + cosdec * FC_COSDEC(fc) * (1.0d0 - cosra) y = -cosdec * sinra if (x != 0.0d0 || y != 0.0d0) dphi = atan2 (y, x) else dphi = ra - DPI phi = FC_LONGP(fc) + dphi if (phi > DPI) phi = phi - DTWOPI else if (phi < -DPI) phi = phi + DTWOPI # Compute THETA. if (mod (ra, DPI) == 0.0) { theta = dec + cosra * FC_NATDEC(fc) if (theta > DHALFPI) theta = DPI - theta if (theta < -DHALFPI) theta = -DPI - theta } else { z = sindec * FC_COSDEC(fc) + cosdec * FC_SINDEC(fc) * cosra if (abs (z) > 0.99d0) { if (z >= 0.0) theta = acos (sqrt(x * x + y * y)) else theta = -acos (sqrt(x * x + y * y)) } else theta = asin (z) } # Compute the transformation from native coordinates PHI and THETA # to projected coordinates X and Y. if (abs(theta) == DHALFPI) { p[ira] = 0.0d0 if (theta >= 0.0d0) p[idec] = 2.0d0 * FC_C1(fc) else p[idec] = -2.0d0 * FC_C1(fc) return } costhe = cos (theta) l = costhe * sin (phi) m = costhe * cos (phi) n = sin (theta) face = 0 rho = n if (m > rho) { face = 1 rho = m } if (l > rho) { face = 2 rho = l } if (-m > rho) { face = 3 rho = -m } if (-l > rho) { face = 4 rho = -l } if (-n > rho) { face = 5 rho = -n } rhu = 1.0d0 - rho switch (face) { case 0: xi = l eta = -m if (rhu < 1.0d-8) { t = (DHALFPI - theta) rhu = t * t / 2.0d0 } x0 = 0.0d0 y0 = 2.0d0 case 1: xi = l eta = n if (rhu < 1.0d-8) { t = theta pconst = mod (phi, DTWOPI) if (pconst < -DPI) pconst = pconst + DTWOPI if (pconst > DPI) pconst = pconst - DTWOPI rhu = (pconst * pconst + t * t) / 2.0d0 } x0 = 0.0d0 y0 = 0.0d0 case 2: xi = -m eta = n if (rhu < 1.0d-8) { t = theta pconst = mod (phi, DTWOPI) if (pconst < -DPI) pconst = pconst + DTWOPI pconst = (DHALFPI - pconst) rhu = (pconst * pconst + t * t) / 2.0d0 } x0 = 2.0d0 y0 = 0.0d0 case 3: xi = -l eta = n if (rhu < 1.0d-8) { t = theta pconst = mod (phi, DTWOPI) if (pconst < 0.0d0) pconst = pconst + DTWOPI pconst = (DPI - pconst) rhu = (pconst * pconst + t * t) / 2.0d0 } x0 = 4.0d0 y0 = 0.0d0 case 4: xi = m eta = n if (rhu < 1.0d-8) { t = theta pconst = mod (phi, DTWOPI) if (pconst > DPI) pconst = pconst - DTWOPI pconst = (DHALFPI + pconst) rhu = (pconst * pconst + t * t) / 2.0d0 } x0 = 6.0d0 y0 = 0.0d0 case 5: xi = l eta = m if (rhu < 1.0d-8) { t = (DHALFPI + theta) rhu = t * t / 2.0d0 } x0 = 0.0d0 y0 = -2.0d0 } if (xi == 0.0d0 && eta == 0.0d0) { xf = 0.0d0 yf = 0.0d0 } else if (-xi >= abs(eta)) { psi = eta / xi chi = 1.0d0 + psi * psi xf = -sqrt (rhu / (1.0d0 - 1.0d0 / sqrt (1.0d0 + chi))) yf = (xf / 15.0d0) * DRADTODEG ((atan (psi) - asin (psi / sqrt (chi + chi)))) } else if (xi >= abs(eta)) { psi = eta / xi chi = 1.0d0 + psi * psi xf = sqrt (rhu / (1.0d0 - 1.0d0 / sqrt (1.0d0 + chi))) yf = (xf / 15.0d0) * DRADTODEG ((atan (psi) - asin (psi / sqrt (chi + chi)))) } else if (-eta > abs (xi)) { psi = xi / eta chi = 1.0d0 + psi * psi yf = -sqrt (rhu / (1.0d0 - 1.0d0 / sqrt (1.0d0 + chi))) xf = (yf / 15.0d0) * DRADTODEG ((atan (psi) - asin (psi / sqrt (chi + chi)))) } else if (eta > abs (xi)) { psi = xi / eta chi = 1.0d0 + psi * psi yf = sqrt (rhu / (1.0d0 - 1.0d0 / sqrt (1.0d0 + chi))) xf = (yf / 15.0d0) * DRADTODEG ((atan (psi) - asin (psi / sqrt (chi + chi)))) } if (abs(xf) > 1.0d0) { if (abs(xf) > (1.0d0 + tol)) { p[ira] = FC_BADCVAL(fc) p[idec] = FC_BADCVAL(fc) return } if (xf >= 0.0d0) xf = 1.0d0 else xf = -1.0d0 } if (abs(yf) > 1.0d0) { if (abs(yf) > (1.0d0 + tol)) { p[ira] = FC_BADCVAL(fc) p[idec] = FC_BADCVAL(fc) return } if (yf >= 0.0d0) yf = 1.0d0 else yf = -1.0d0 } p[ira] = FC_C1(fc) * (x0 + xf) p[idec] = FC_C1(fc) * (y0 + yf) end sptable-1.0.pre20180612/src/mwcs/wfsamp.x000066400000000000000000000131721331023215600176430ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include "mwcs.h" .help WFSAMP .nf ------------------------------------------------------------------------- WFSAMP -- WCS function driver for the one dimensional sampled wcs function. For this driver, the function P<->W (physical to/from world) is defined by a sampled WCS curve. Driver routines: FN_INIT wf_smp_init (fc, dir) FN_DESTROY (none) FN_FWD wf_smp_ctran (fc, v1, v2) FN_INV (same) In this initial implementation, only linear interpolation of the sampled curve is provided, but the driver is easily extended to provide additional interpolators. NOTE that this entire driver assumes that the sampled function is monotonic. .endhelp -------------------------------------------------------------------- # Driver specific fields of function call (FC) descriptor. define FC_NPTS Memi[$1+FCU] # number of points in curve define FC_LOC Memi[$1+FCU+1] # location in IN vector define FC_V1 Memi[$1+FCU+2] # pointer to IN vector define FC_V2 Memi[$1+FCU+3] # pointer to OUT vector define FC_W Memd[P2D($1+FCU+4)] # W value (CRVAL) define FC_DIR Memi[$1+FCU+6] # direction of transform # WF_SMP_INIT -- Initialize the function call descriptor for the indicated # type of transform (forward or inverse). procedure wf_smp_init (fc, dir) pointer fc #I pointer to FC descriptor int dir #I type of transformation int axis, npts pointer wp, mw, sp, emsg, pv, wv begin # Enforce the current restriction to 1-dim sampled functions. if (FC_NAXES(fc) != 1) call error (1, "Sampled wcs functions must be 1-dimensional") wp = FC_WCS(fc) mw = CT_MW(FC_CT(fc)) axis = CT_AXIS(FC_CT(fc),1) # Get pointers to the input and output sample vectors. For our # purposes there is no difference between the forward and inverse # transform; we just swap the vectors for the inverse transform. # The use of direct pointers here assumes that the DBUF is not # reallocated while the CTRAN is being used. npts = WCS_NPTS(wp,axis) pv = WCS_PV(wp,axis) wv = WCS_WV(wp,axis) # Verify that we have a sampled WCS for this axis. if (npts <= 0 || pv == NULL || wv == NULL) { call smark (sp) call salloc (emsg, SZ_LINE, TY_CHAR) call sprintf (Memc[emsg], SZ_LINE, "No sampled wcs entered for axis %d") call pargi (axis) call error (2, Memc[emsg]) call sfree (sp) } if (dir == FORWARD) { FC_V1(fc) = MI_DBUF(mw) + pv - 1 FC_V2(fc) = MI_DBUF(mw) + wv - 1 } else { FC_V1(fc) = MI_DBUF(mw) + wv - 1 FC_V2(fc) = MI_DBUF(mw) + pv - 1 } FC_NPTS(fc) = npts if (WCS_W(wp) == NULL) FC_W(fc) = 0.0 else FC_W(fc) = D(mw,WCS_W(wp)+axis-1) FC_LOC(fc) = 1 FC_DIR(fc) = dir end # WF_SMP_CTRAN -- Given the coordinates of a point X in the input curve, # locate the sample interval containing the point, and return the coordinate # of the same point in the output curve using simple linear interpolation # (currently) to evaluate the WCS function value. procedure wf_smp_ctran (fc, x, y) pointer fc #I pointer to FC descriptor double x #I point to sample WCS at double y #O value of WCS at that point int index, i, step double frac pointer ip, op, i1, i2 int wf_smp_binsearch() define sample_ 91 define oor_ 92 begin # Check for out of bounds and set step. i1 = FC_V1(fc) i2 = i1 + FC_NPTS(fc) - 1 if (Memd[i1] <= Memd[i2]) { if (x < Memd[i1]) { y = Memd[i1] return } if (x > Memd[i2]) { y = Memd[i2] return } step = 1 } else { if (x < Memd[i2]) { y = Memd[i2] return } if (x > Memd[i1]) { y = Memd[i1] return } step = -1 } # Check the endpoints and the last inverval to optimize the case of # repeated samplings of the same region of the curve. if (x == Memd[i1]) ip = i1 - min (0, step) else if (x == Memd[i2]) ip = i2 - max (0, step) else ip = FC_LOC(fc) + i1 - 1 if (Memd[ip] <= x && x <= Memd[ip+step]) goto sample_ # Next check several intervals to either side. if (x < Memd[ip]) { do i = 1, 5 { ip = ip - step if (Memd[ip] <= x) goto sample_ } } else { do i = 1, 5 { if (Memd[ip+step] >= x) goto sample_ ip = ip + step } } # Give up and do a full binary search! index = wf_smp_binsearch (x, Memd[i1], FC_NPTS(fc)) if (index == 0) call error (2, "Failed to find value in sampled WCS curve") else ip = i1 + index - 1 # Having found the proper interval, compute the function value by # interpolating the output vector. sample_ op = FC_V2(fc) + ip-i1 frac = (x - Memd[ip]) / (Memd[ip+step] - Memd[ip]) y = (Memd[op+step] - Memd[op]) * frac + Memd[op] # Save last location. FC_LOC(fc) = ip - i1 + 1 end # WF_SMP_BINSEARCH -- Perform a binary search of a sorted array for the # interval containing the given point. int procedure wf_smp_binsearch (x, v, npts) double x #I point we want interval for double v[ARB] #I array to be searched int npts #I number of points in array int low, high, pos, i begin low = 1 high = max (1, npts) # Cut range of search in half until interval is found, or until range # vanishes (high - low <= 1). if (v[1] < v[npts]) { do i = 1, npts { pos = min ((high - low) / 2 + low, npts-1) if (pos == low) return (0) # not found else if (v[pos] <= x && x <= v[pos+1]) return (pos) else if (x < v[pos]) high = pos else low = pos } } else { do i = 1, npts { pos = min ((high - low) / 2 + low, npts-1) if (pos == low) return (0) # not found else if (v[pos+1] <= x && x <= v[pos]) return (pos+1) else if (x > v[pos]) high = pos else low = pos } } end sptable-1.0.pre20180612/src/mwcs/wfsin.x000066400000000000000000000072471331023215600175020ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include "mwcs.h" .help WFSIN .nf ------------------------------------------------------------------------- WFSIN -- WCS function driver for the sine projection. Driver routines: FN_INIT wf_sin_init (fc, dir) FN_DESTROY (none) FN_FWD wf_sin_fwd (fc, v1, v2) FN_INV wf_sin_inv (fc, v1, v2) .endhelp -------------------------------------------------------------------- # Driver specific fields of function call (FC) descriptor. define FC_IRA Memi[$1+FCU] # RA axis (1 or 2) define FC_IDEC Memi[$1+FCU+1] # DEC axis (1 or 2) define FC_COSDEC Memd[P2D($1+FCU+2)] # cosine(dec) define FC_SINDEC Memd[P2D($1+FCU+4)] # sine(dec) define FC_W Memd[P2D($1+FCU+6)+($2)-1] # W (CRVAL) for each axis # WF_SIN_INIT -- Initialize the sine forward or inverse transform. # Initialization for this transformation consists of determining which axis # is RA and which is DEC, and precomputing the sine and cosine of the # declination at the reference point. In order to determine the axis order, # the parameter "axtype={ra|dec}" must have been set in the attribute list # for the function. # NOTE: This is identical to wf_tan_init. procedure wf_sin_init (fc, dir) pointer fc #I pointer to FC descriptor int dir #I direction of transform int i double dec pointer ct, mw, wp, wv errchk wf_decaxis begin ct = FC_CT(fc) mw = CT_MW(ct) wp = FC_WCS(fc) # Determine which is the DEC axis, and hence the axis order. call wf_decaxis (fc, FC_IRA(fc), FC_IDEC(fc)) # Get the value of W for each axis, i.e., the world coordinate at # the reference point. wv = MI_DBUF(mw) + WCS_W(wp) - 1 do i = 1, 2 FC_W(fc,i) = Memd[wv+CT_AXIS(ct,FC_AXIS(fc,i))-1] # Precompute the sin and cos of the declination at the reference pixel. dec = DEGTORAD(FC_W(fc,FC_IDEC(fc))) FC_COSDEC(fc) = cos(dec) FC_SINDEC(fc) = sin(dec) end # WF_SIN_FWD -- Forward transform (physical to world), sine # projection. Based on code from STScI, Hodge et al. procedure wf_sin_fwd (fc, p, w) pointer fc #I pointer to FC descriptor double p[2] #I physical coordinates (xi, eta) double w[2] #O world coordinates (ra, dec) int ira, idec double v1, xi, eta, x, y, z, ra, dec begin ira = FC_IRA(fc) idec = FC_IDEC(fc) xi = DEGTORAD(p[ira]) eta = DEGTORAD(p[idec]) v1 = 1.d0 - xi*xi - eta*eta if (v1 > 0.d0) v1 = sqrt (1.d0 - xi*xi - eta*eta) else v1 = 0.d0 # Rotate the rectangular coordinate system of the vector (v1, xi, eta) # by the declination so the X axis will pass through the equator. x = v1 * FC_COSDEC(fc) - eta * FC_SINDEC(fc) y = xi z = v1 * FC_SINDEC(fc) + eta * FC_COSDEC(fc) if (x == 0.d0 && y == 0.d0) ra = 0.d0 else ra = atan2 (y, x) dec = atan2 (z, sqrt (x*x + y*y)) # Return RA and DEC in degrees. dec = RADTODEG(dec) ra = RADTODEG(ra) + FC_W(fc,ira) if (ra < 0.d0) ra = ra + 360.D0 else if (ra > 360.D0) ra = ra - 360.D0 w[ira] = ra w[idec] = dec end # WF_SIN_INV -- Inverse transform (world to physical) for the sine # projection. Based on code from Eric Greisen, AIPS Memo No. 27. procedure wf_sin_inv (fc, w, p) pointer fc #I pointer to FC descriptor double w[2] #I input world (RA, DEC) coordinates double p[2] #O output physical coordinates int ira, idec double ra, dec, xi, eta double cosra, cosdec, sinra, sindec begin ira = FC_IRA(fc) idec = FC_IDEC(fc) ra = DEGTORAD (w[ira] - FC_W(fc,ira)) dec = DEGTORAD (w[idec]) cosra = cos (ra) sinra = sin (ra) cosdec = cos (dec) sindec = sin (dec) xi = cosdec * sinra eta = sindec * FC_COSDEC(fc) - cosdec * FC_SINDEC(fc) * cosra p[ira] = RADTODEG(xi) p[idec] = RADTODEG(eta) end sptable-1.0.pre20180612/src/mwcs/wfstg.x000066400000000000000000000231271331023215600175010ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include "mwcs.h" .help WFSTG .nf ------------------------------------------------------------------------- WFSTG -- WCS function driver for the stereographic projection. Driver routines: FN_INIT wf_stg_init (fc, dir) FN_DESTROY (none) FN_FWD wf_stg_fwd (fc, v1, v2) FN_INV wf_stg_inv (fc, v1, v2) .endhelp -------------------------------------------------------------------- # Driver specific fields of function call (FC) descriptor. define FC_IRA Memi[$1+FCU] # RA axis (1 or 2) define FC_IDEC Memi[$1+FCU+1] # DEC axis (1 or 2) define FC_LONGP Memd[P2D($1+FCU+2)] # LONGPOLE (rads) define FC_COLATP Memd[P2D($1+FCU+4)] # (90 - DEC) (rads) define FC_COSLATP Memd[P2D($1+FCU+6)] # cosine (90 - DEC) define FC_SINLATP Memd[P2D($1+FCU+8)] # sine (90 - DEC) define FC_SPHTOL Memd[P2D($1+FCU+10)] # trig tolerance define FC_RODEG Memd[P2D($1+FCU+12)] # RO (degs) define FC_2RODEG Memd[P2D($1+FCU+14)] # 2 * RO (degs) define FC_REC2RODEG Memd[P2D($1+FCU+16)] # 1 / (2 * RO) (degs) define FC_BADCVAL Memd[P2D($1+FCU+18)] # Bad coordinate value define FC_W Memd[P2D($1+FCU+20)+($2)-1] # CRVAL (axis 1 and 2) # WF_STG_INIT -- Initialize the stereographic forward or inverse transform. # Initialization for this transformation consists of, determining which # axis is RA / LON and which is DEC / LAT, computing the celestial longitude # and colatitude of the native pole, reading in the the native longitude of the # pole of the celestial coordinate system LONGPOLE from the attribute list, # precomputing the Euler angles and various intermediary functions of the # reference coordinates, reading in the projection parameter RO from the # attribute list, and precomputing some intermediate parameters. If LONGPOLE # is undefined then a value of 180.0 degrees is assumed. If RO is undefined a # value of 180.0 / PI is assumed. The STG projection is equivalent to the AZP # projection with MU set to 1.0. In order to determine the axis order, the # parameter "axtype={ra|dec} {xlon|xlat}" must have been set in the attribute # list for the function. The LONGPOLE and RO parameters may be set in either # or both of the axes attribute lists, but the value in the RA axis attribute # list takes precedence. procedure wf_stg_init (fc, dir) pointer fc #I pointer to FC descriptor int dir #I direction of transform int i double dec pointer sp, atvalue, ct, mw, wp, wv int ctod() errchk wf_decaxis(), mw_gwattrs() begin # Allocate space for the attribute string. call smark (sp) call salloc (atvalue, SZ_LINE, TY_CHAR) # Get the required mwcs pointers. ct = FC_CT(fc) mw = CT_MW(ct) wp = FC_WCS(fc) # Determine which is the DEC axis, and hence the axis order. call wf_decaxis (fc, FC_IRA(fc), FC_IDEC(fc)) # Get the value of W for each axis, i.e. the world coordinates at # the reference point. wv = MI_DBUF(mw) + WCS_W(wp) - 1 do i = 1, 2 FC_W(fc,i) = Memd[wv+CT_AXIS(ct,FC_AXIS(fc,i))-1] # Get the celestial coordinates of the native pole which are in # this case the ra and 90 - dec of the reference point. dec = DDEGTORAD(90.0d0 - FC_W(fc,FC_IDEC(fc))) # Determine the native longitude of the pole of the celestial # coordinate system corresponding to the FITS keyword LONGPOLE. # This number has no default and should normally be set to 180 # degrees. Search both axes for this quantity. iferr { call mw_gwattrs (mw, FC_IRA(fc), "longpole", Memc[atvalue], SZ_LINE) } then { iferr { call mw_gwattrs (mw, FC_IDEC(fc), "longpole", Memc[atvalue], SZ_LINE) } then { FC_LONGP(fc) = 180.0d0 } else { i = 1 if (ctod (Memc[atvalue], i, FC_LONGP(fc)) <= 0) FC_LONGP(fc) = 180.0d0 if (IS_INDEFD(FC_LONGP(fc))) FC_LONGP(fc) = 180.0d0 } } else { i = 1 if (ctod (Memc[atvalue], i, FC_LONGP(fc)) <= 0) FC_LONGP(fc) = 180.0d0 if (IS_INDEFD(FC_LONGP(fc))) FC_LONGP(fc) = 180.0d0 } FC_LONGP(fc) = DDEGTORAD(FC_LONGP(fc)) # Precompute the trigomometric functions used by the spherical geometry # code to improve efficiency. FC_COLATP(fc) = dec FC_COSLATP(fc) = cos(dec) FC_SINLATP(fc) = sin(dec) # Fetch the RO projection parameter which is the radius of the # generating sphere for the projection. If RO is absent which # is the usual case set it to 180 / PI. Search both axes for # this quantity. iferr { call mw_gwattrs (mw, FC_IRA(fc), "ro", Memc[atvalue], SZ_LINE) } then { iferr { call mw_gwattrs (mw, FC_IDEC(fc), "ro", Memc[atvalue], SZ_LINE) } then { FC_RODEG(fc) = 180.0d0 / DPI } else { i = 1 if (ctod (Memc[atvalue], i, FC_RODEG(fc)) <= 0) FC_RODEG(fc) = 180.0d0 / DPI } } else { i = 1 if (ctod (Memc[atvalue], i, FC_RODEG(fc)) <= 0) FC_RODEG(fc) = 180.0d0 / DPI } FC_2RODEG(fc) = 2.0d0 * FC_RODEG(fc) FC_REC2RODEG(fc) = 1.0d0 / FC_2RODEG(fc) # Fetch the spherical trigonometry tolerance. FC_SPHTOL(fc) = 1.0d-5 # Fetch the bad coordinate value. FC_BADCVAL(fc) = INDEFD # Free working space. call sfree (sp) end # WF_STG_FWD -- Forward transform (physical to world) for the stereographic # projection. procedure wf_stg_fwd (fc, p, w) pointer fc #I pointer to FC descriptor double p[2] #I physical coordinates (x, y) double w[2] #O world coordinates (ra, dec) int ira, idec double x, y, r, phi, theta, costhe, sinthe, dphi, cosphi, sinphi, ra, dec double dlng, z begin # Get the axis numbers. ira = FC_IRA(fc) idec = FC_IDEC(fc) # Compute native spherical coordinates PHI and THETA in degrees from # the projected coordinates. This is the projection part of the # computation. x = p[ira] y = p[idec] r = sqrt (x * x + y * y) # Compute PHI. if (r == 0.0d0) phi = 0.0d0 else phi = atan2 (x, -y) # Compute THETA. theta = DHALFPI - 2.0d0 * atan (r * FC_REC2RODEG(fc)) # Compute the celestial coordinates RA and DEC from the native # coordinates PHI and THETA. This is the spherical geometry part # of the computation. costhe = cos (theta) sinthe = sin (theta) dphi = phi - FC_LONGP(fc) cosphi = cos (dphi) sinphi = sin (dphi) # Compute the RA. x = sinthe * FC_SINLATP(fc) - costhe * FC_COSLATP(fc) * cosphi if (abs (x) < FC_SPHTOL(fc)) x = -cos (theta + FC_COLATP(fc)) + costhe * FC_COSLATP(fc) * (1.0d0 - cosphi) y = -costhe * sinphi if (x != 0.0d0 || y != 0.0d0) { dlng = atan2 (y, x) } else { dlng = dphi + DPI } ra = FC_W(fc,ira) + DRADTODEG(dlng) # Normalize RA. if (FC_W(fc,ira) >= 0.0d0) { if (ra < 0.0d0) ra = ra + 360.0d0 } else { if (ra > 0.0d0) ra = ra - 360.0d0 } if (ra > 360.0d0) ra = ra - 360.0d0 else if (ra < -360.0d0) ra = ra + 360.0d0 # Compute the DEC. if (mod (dphi, DPI) == 0.0d0) { dec = DRADTODEG(theta + cosphi * FC_COLATP(fc)) if (dec > 90.0d0) dec = 180.0d0 - dec if (dec < -90.0d0) dec = -180.0d0 - dec } else { z = sinthe * FC_COSLATP(fc) + costhe * FC_SINLATP(fc) * cosphi if (abs(z) > 0.99d0) { if (z >= 0.0d0) dec = DRADTODEG(acos (sqrt(x * x + y * y))) else dec = DRADTODEG(-acos (sqrt(x * x + y * y))) } else dec = DRADTODEG(asin (z)) } # Store the results. w[ira] = ra w[idec] = dec end # WF_STG_INV -- Inverse transform (world to physical) for the stereographic # projection. procedure wf_stg_inv (fc, w, p) pointer fc #I pointer to FC descriptor double w[2] #I input world (RA, DEC) coordinates double p[2] #I output physical coordinates int ira, idec double ra, dec, cosdec, sindec, cosra, sinra, x, y, phi, theta, s, r, dphi, z begin # Get the axes numbers. ira = FC_IRA(fc) idec = FC_IDEC(fc) # Compute the transformation from celestial coordinates RA and # DEC to native coordinates PHI and THETA. This is the spherical # geometry part of the transformation. ra = DDEGTORAD (w[ira] - FC_W(fc,ira)) dec = DDEGTORAD (w[idec]) cosra = cos (ra) sinra = sin (ra) cosdec = cos (dec) sindec = sin (dec) # Compute PHI. x = sindec * FC_SINLATP(fc) - cosdec * FC_COSLATP(fc) * cosra if (abs(x) < FC_SPHTOL(fc)) x = -cos (dec + FC_COLATP(fc)) + cosdec * FC_COSLATP(fc) * (1.0d0 - cosra) y = -cosdec * sinra if (x != 0.0d0 || y != 0.0d0) dphi = atan2 (y, x) else dphi = ra - DPI phi = FC_LONGP(fc) + dphi if (phi > DPI) phi = phi - DTWOPI else if (phi < -DPI) phi = phi + DTWOPI # Compute THETA. if (mod (ra, DPI) ==0.0) { theta = dec + cosra * FC_COLATP(fc) if (theta > DHALFPI) theta = DPI - theta if (theta < -DHALFPI) theta = -DPI - theta } else { z = sindec * FC_COSLATP(fc) + cosdec * FC_SINLATP(fc) * cosra if (abs (z) > 0.99d0) { if (z >= 0.0) theta = acos (sqrt(x * x + y * y)) else theta = -acos (sqrt(x * x + y * y)) } else theta = asin (z) } # Compute the transformation from native coordinates PHI and THETA # to projected coordinates X and Y. s = 1.0d0 + sin (theta) if (s == 0.0d0) { p[ira] = FC_BADCVAL(fc) p[idec] = FC_BADCVAL(fc) } else { r = FC_2RODEG(fc) * cos (theta) / s p[ira] = r * sin (phi) p[idec] = -r * cos (phi) } end sptable-1.0.pre20180612/src/mwcs/wftan.x000066400000000000000000000072571331023215600174740ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include "mwcs.h" .help WFTAN .nf ------------------------------------------------------------------------- WFTAN -- WCS function driver for the tangent plane (gnonomic) projection. Driver routines: FN_INIT wf_tan_init (fc, dir) FN_DESTROY (none) FN_FWD wf_tan_fwd (fc, v1, v2) FN_INV wf_tan_inv (fc, v1, v2) .endhelp -------------------------------------------------------------------- # Driver specific fields of function call (FC) descriptor. define FC_IRA Memi[$1+FCU] # RA axis (1 or 2) define FC_IDEC Memi[$1+FCU+1] # DEC axis (1 or 2) define FC_COSDEC Memd[P2D($1+FCU+2)] # cosine(dec) define FC_SINDEC Memd[P2D($1+FCU+4)] # sine(dec) define FC_W Memd[P2D($1+FCU+6)+($2)-1] # W (CRVAL) for each axis # WF_TAN_INIT -- Initialize the tangent plane forward or inverse transform. # Initialization for this transformation consists of determining which axis # is RA and which is DEC, and precomputing the sine and cosine of the # declination at the reference point. In order to determine the axis order, # the parameter "axtype={ra|dec}" must have been set in the attribute list # for the function. procedure wf_tan_init (fc, dir) pointer fc #I pointer to FC descriptor int dir #I direction of transform int i double dec pointer ct, mw, wp, wv errchk wf_decaxis begin ct = FC_CT(fc) mw = CT_MW(ct) wp = FC_WCS(fc) # Determine which is the DEC axis, and hence the axis order. call wf_decaxis (fc, FC_IRA(fc), FC_IDEC(fc)) # Get the value of W for each axis, i.e., the world coordinate at # the reference point. wv = MI_DBUF(mw) + WCS_W(wp) - 1 do i = 1, 2 FC_W(fc,i) = Memd[wv+CT_AXIS(ct,FC_AXIS(fc,i))-1] # Precompute the sin and cos of the declination at the reference pixel. dec = DEGTORAD(FC_W(fc,FC_IDEC(fc))) FC_COSDEC(fc) = cos(dec) FC_SINDEC(fc) = sin(dec) end # WF_TAN_FWD -- Forward transform (physical to world), tangent plane # projection. Based on code from STScI, Hodge et. al. procedure wf_tan_fwd (fc, p, w) pointer fc #I pointer to FC descriptor double p[2] #I physical coordinates (xi, eta) double w[2] #O world coordinates (ra, dec) int ira, idec double xi, eta, x, y, z, ra, dec begin ira = FC_IRA(fc) idec = FC_IDEC(fc) xi = DEGTORAD(p[ira]) eta = DEGTORAD(p[idec]) # Rotate the rectangular coordinate system of the vector [1,xi,eta] # by the declination so that the X axis will pass through the equator. x = FC_COSDEC(fc) - eta * FC_SINDEC(fc) y = xi z = FC_SINDEC(fc) + eta * FC_COSDEC(fc) # Compute RA and DEC in radians. if (x == 0.0D0 && y == 0.0D0) ra = 0.0D0 else ra = atan2 (y, x) dec = atan2 (z, sqrt (x*x + y*y)) # Return RA and DEC in degrees. dec = RADTODEG(dec) ra = RADTODEG(ra) + FC_W(fc,ira) if (ra < 0) ra = ra + 360D0 else if (ra > 360D0) ra = ra - 360D0 w[ira] = ra w[idec] = dec end # WF_TAN_INV -- Inverse transform (world to physical) for the tangent plane # projection. Based on code from STScI, Hodge et. al. procedure wf_tan_inv (fc, w, p) pointer fc #I pointer to FC descriptor double w[2] #I input world (RA, DEC) coordinates double p[2] #I output physical coordinates int ira, idec double ra, dec, xi, eta double cosra, cosdec, sinra, sindec, cosdist begin ira = FC_IRA(fc) idec = FC_IDEC(fc) ra = DEGTORAD (w[ira] - FC_W(fc,ira)) dec = DEGTORAD (w[idec]) cosra = cos (ra) sinra = sin (ra) cosdec = cos (dec) sindec = sin (dec) cosdist = sindec * FC_SINDEC(fc) + cosdec * FC_COSDEC(fc) * cosra xi = cosdec * sinra / cosdist eta = (sindec * FC_COSDEC(fc) - cosdec * FC_SINDEC(fc) * cosra) / cosdist p[ira] = RADTODEG(xi) p[idec] = RADTODEG(eta) end sptable-1.0.pre20180612/src/mwcs/wftnx.x000066400000000000000000000273201331023215600175140ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include "mwcs.h" .help WFTNX .nf ------------------------------------------------------------------------- WFTNX -- WCS function driver for the gnomonic projection. Driver routines: FN_INIT wf_tn_init (fc, dir) FN_DESTROY wf_tnx_destroy (fc) FN_FWD wf_tnx_fwd (fc, v1, v2) FN_INV wf_tnx_inv (fc, v1, v2) .endhelp -------------------------------------------------------------------- define MAX_NITER 20 # Driver specific fields of function call (FC) descriptor. define FC_LNGCOR Memi[$1+FCU] # RA axis (1 or 2) define FC_LATCOR Memi[$1+FCU+1] # DEC axis (1 or 2) define FC_IRA Memi[$1+FCU+2] # RA axis (1 or 2) define FC_IDEC Memi[$1+FCU+3] # DEC axis (1 or 2) define FC_LONGP Memd[P2D($1+FCU+4)] # LONGPOLE (rads) define FC_COLATP Memd[P2D($1+FCU+6)] # (90 - DEC) (rads) define FC_COSLATP Memd[P2D($1+FCU+8)] # cosine (90 - DEC) define FC_SINLATP Memd[P2D($1+FCU+10)] # sine (90 - DEC) define FC_SPHTOL Memd[P2D($1+FCU+12)] # trig toleracne define FC_RODEG Memd[P2D($1+FCU+14)] # RO (degs) define FC_BADCVAL Memd[P2D($1+FCU+16)] # Bad coordinate value define FC_W Memd[P2D($1+FCU+18)+($2)-1] # CRVAL (axis 1 and 2) # WF_TNX_INIT -- Initialize the gnomonic forward or inverse transform. # Initialization for this transformation consists of, determining which # axis is RA / LON and which is DEC / LAT, computing the celestial longitude # and colatitude of the native pole, reading in the the native longitude # of the pole of the celestial coordinate system LONGPOLE from the attribute # list, precomputing Euler angles and various intermediaries derived from the # coordinate reference values, and reading in the projection parameter RO # from the attribute list. If LONGPOLE is undefined then a value of 180.0 # degrees is assumed. If RO is undefined a value of 180.0 / PI is assumed. # The TAN projection is equivalent to the AZP projection with MU set to 0.0. # In order to determine the axis order, the parameter "axtype={ra|dec} # {xlon|glat}{xlon|elat}" must have been set in the attribute list for the # function. The LONGPOLE and RO parameters may be set in either or both of # the axes attribute lists, but the value in the RA axis attribute list takes # precedence. procedure wf_tnx_init (fc, dir) pointer fc #I pointer to FC descriptor int dir #I direction of transform int i, szatstr double dec pointer atvalue, ct, mw, wp, wv int ctod(), strlen() pointer wf_gsopen() errchk wf_decaxis(), mw_gwattrs() begin # Allocate space for the attribute string. call malloc (atvalue, SZ_LINE, TY_CHAR) # Get the required mwcs pointers. ct = FC_CT(fc) mw = CT_MW(ct) wp = FC_WCS(fc) # Determine which is the DEC axis, and hence the axis order. call wf_decaxis (fc, FC_IRA(fc), FC_IDEC(fc)) # Get the value of W for each axis, i.e. the world coordinates at # the reference point. wv = MI_DBUF(mw) + WCS_W(wp) - 1 do i = 1, 2 FC_W(fc,i) = Memd[wv+CT_AXIS(ct,FC_AXIS(fc,i))-1] # Get the celestial coordinates of the native pole which are in # this case the ra and 90 - dec of the reference point. dec = DDEGTORAD(90.0d0 - FC_W(fc,FC_IDEC(fc))) # Determine the native longitude of the pole of the celestial # coordinate system corresponding to the FITS keyword LONGPOLE. # This number has no default and should normally be set to 180 # degrees. Search both axes for this quantity. iferr { call mw_gwattrs (mw, FC_IRA(fc), "longpole", Memc[atvalue], SZ_LINE) } then { iferr { call mw_gwattrs (mw, FC_IDEC(fc), "longpole", Memc[atvalue], SZ_LINE) } then { FC_LONGP(fc) = 180.0d0 } else { i = 1 if (ctod (Memc[atvalue], i, FC_LONGP(fc)) <= 0) FC_LONGP(fc) = 180.0d0 if (IS_INDEFD(FC_LONGP(fc))) FC_LONGP(fc) = 180.0d0 } } else { i = 1 if (ctod (Memc[atvalue], i, FC_LONGP(fc)) <= 0) FC_LONGP(fc) = 180.0d0 if (IS_INDEFD(FC_LONGP(fc))) FC_LONGP(fc) = 180.0d0 } FC_LONGP(fc) = DDEGTORAD(FC_LONGP(fc)) # Precompute the trigomometric functions used by the spherical geometry # code to improve efficiency. FC_COLATP(fc) = dec FC_COSLATP(fc) = cos(dec) FC_SINLATP(fc) = sin(dec) # Fetch the RO projection parameter which is the radius of the # generating sphere for the projection. If RO is absent which # is the usual case set it to 180 / PI. Search both axes for # this quantity. iferr { call mw_gwattrs (mw, FC_IRA(fc), "ro", Memc[atvalue], SZ_LINE) } then { iferr { call mw_gwattrs (mw, FC_IDEC(fc), "ro", Memc[atvalue], SZ_LINE) } then { FC_RODEG(fc) = 180.0d0 / DPI } else { i = 1 if (ctod (Memc[atvalue], i, FC_RODEG(fc)) <= 0) FC_RODEG(fc) = 180.0d0 / DPI } } else { i = 1 if (ctod (Memc[atvalue], i, FC_RODEG(fc)) <= 0) FC_RODEG(fc) = 180.0d0 / DPI } szatstr = SZ_LINE # Fetch the longitude correction surface. Note that the attribute # string may be of any length so the length of atvalue may have # to be adjusted. iferr { repeat { call mw_gwattrs (mw, FC_IRA(fc), "lngcor", Memc[atvalue], szatstr) if (strlen (Memc[atvalue]) < szatstr) break szatstr = szatstr + SZ_LINE call realloc (atvalue, szatstr, TY_CHAR) } } then { FC_LNGCOR(fc) = NULL } else { FC_LNGCOR(fc) = wf_gsopen (Memc[atvalue]) } # Fetch the latitude correction surface. Note that the attribute # string may be of any length so the length of atvalue may have # to be adjusted. iferr { repeat { call mw_gwattrs (mw, FC_IDEC(fc), "latcor", Memc[atvalue], szatstr) if (strlen (Memc[atvalue]) < szatstr) break szatstr = szatstr + SZ_LINE call realloc (atvalue, szatstr, TY_CHAR) } } then { FC_LATCOR(fc) = NULL } else { FC_LATCOR(fc) = wf_gsopen (Memc[atvalue]) } # Set the small angle spherical trigonometry tolerance. FC_SPHTOL(fc) = 1.0d-5 # Set the bad coordinate value. FC_BADCVAL(fc) = INDEFD # Free working space. call mfree (atvalue, TY_CHAR) end # WF_TNX_FWD -- Forward transform (physical to world) gnomonic projection. procedure wf_tnx_fwd (fc, p, w) pointer fc #I pointer to FC descriptor double p[2] #I physical coordinates (x, y) double w[2] #O world coordinates (ra, dec) int ira, idec double x, y, r, phi, theta, costhe, sinthe, dphi, cosphi, sinphi, dlng, z double ra, dec double wf_gseval() begin # Get the axis numbers. ira = FC_IRA(fc) idec = FC_IDEC(fc) # Compute native spherical coordinates PHI and THETA in degrees from # the projected coordinates. This is the projection part of the # computation. if (FC_LNGCOR(fc) == NULL) x = p[ira] else x = p[ira] + wf_gseval (FC_LNGCOR(fc), p[ira], p[idec]) if (FC_LATCOR(fc) == NULL) y = p[idec] else y = p[idec] + wf_gseval (FC_LATCOR(fc), p[ira], p[idec]) r = sqrt (x * x + y * y) # Compute PHI. if (r == 0.0d0) phi = 0.0d0 else phi = atan2 (x, -y) # Compute THETA. theta = atan2 (FC_RODEG(fc), r) # Compute the celestial coordinates RA and DEC from the native # coordinates PHI and THETA. This is the spherical geometry part # of the computation. costhe = cos (theta) sinthe = sin (theta) dphi = phi - FC_LONGP(fc) cosphi = cos (dphi) sinphi = sin (dphi) # Compute the RA. x = sinthe * FC_SINLATP(fc) - costhe * FC_COSLATP(fc) * cosphi if (abs (x) < FC_SPHTOL(fc)) x = -cos (theta + FC_COLATP(fc)) + costhe * FC_COSLATP(fc) * (1.0d0 - cosphi) y = -costhe * sinphi if (x != 0.0d0 || y != 0.0d0) { dlng = atan2 (y, x) } else { dlng = dphi + DPI } ra = FC_W(fc,ira) + DRADTODEG(dlng) # Normalize RA. if (FC_W(fc,ira) >= 0.0d0) { if (ra < 0.0d0) ra = ra + 360.0d0 } else { if (ra > 0.0d0) ra = ra - 360.0d0 } if (ra > 360.0d0) ra = ra - 360.0d0 else if (ra < -360.0d0) ra = ra + 360.0d0 # Compute the DEC. if (mod (dphi, DPI) == 0.0d0) { dec = DRADTODEG(theta + cosphi * FC_COLATP(fc)) if (dec > 90.0d0) dec = 180.0d0 - dec if (dec < -90.0d0) dec = -180.0d0 - dec } else { z = sinthe * FC_COSLATP(fc) + costhe * FC_SINLATP(fc) * cosphi if (abs(z) > 0.99d0) { if (z >= 0.0d0) dec = DRADTODEG(acos (sqrt(x * x + y * y))) else dec = DRADTODEG(-acos (sqrt(x * x + y * y))) } else dec = DRADTODEG(asin (z)) } # Store the results. w[ira] = ra w[idec] = dec end # WF_TNX_INV -- Inverse transform (world to physical) for the gnomic # projection. procedure wf_tnx_inv (fc, w, p) pointer fc #I pointer to FC descriptor double w[2] #I input world (RA, DEC) coordinates double p[2] #I output physical coordinates int ira, idec, niter double ra, dec, cosdec, sindec, cosra, sinra, x, y, phi, theta, s, r, dphi, z double xm, ym, f, fx, fy, g, gx, gy, denom, dx, dy, dmax double wf_gseval(), wf_gsder() begin # Get the axes numbers. ira = FC_IRA(fc) idec = FC_IDEC(fc) # Compute the transformation from celestial coordinates RA and # DEC to native coordinates PHI and THETA. This is the spherical # geometry part of the transformation. ra = DDEGTORAD (w[ira] - FC_W(fc,ira)) dec = DDEGTORAD (w[idec]) cosra = cos (ra) sinra = sin (ra) cosdec = cos (dec) sindec = sin (dec) # Compute PHI. x = sindec * FC_SINLATP(fc) - cosdec * FC_COSLATP(fc) * cosra if (abs(x) < FC_SPHTOL(fc)) x = -cos (dec + FC_COLATP(fc)) + cosdec * FC_COSLATP(fc) * (1.0d0 - cosra) y = -cosdec * sinra if (x != 0.0d0 || y != 0.0d0) dphi = atan2 (y, x) else dphi = ra - DPI phi = FC_LONGP(fc) + dphi if (phi > DPI) phi = phi - DTWOPI else if (phi < -DPI) phi = phi + DTWOPI # Compute THETA. if (mod (ra, DPI) ==0.0) { theta = dec + cosra * FC_COLATP(fc) if (theta > DHALFPI) theta = DPI - theta if (theta < -DHALFPI) theta = -DPI - theta } else { z = sindec * FC_COSLATP(fc) + cosdec * FC_SINLATP(fc) * cosra if (abs (z) > 0.99d0) { if (z >= 0.0) theta = acos (sqrt(x * x + y * y)) else theta = -acos (sqrt(x * x + y * y)) } else theta = asin (z) } # Compute the transformation from native coordinates PHI and THETA # to projected coordinates X and Y. s = sin (theta) if (s == 0.0d0) { p[ira] = FC_BADCVAL(fc) p[idec] = FC_BADCVAL(fc) } else { r = FC_RODEG(fc) * cos (theta) / s if (FC_LNGCOR(fc) == NULL && FC_LATCOR(fc) == NULL) { p[ira] = r * sin (phi) p[idec] = -r * cos (phi) } else { xm = r * sin (phi) ym = -r * cos (phi) x = xm y = ym niter = 0 dmax = 30. / 3600. repeat { if (FC_LNGCOR(fc) != NULL) { f = x + wf_gseval (FC_LNGCOR(fc), x, y) - xm fx = wf_gsder (FC_LNGCOR(fc), x, y, 1, 0) fx = 1.0 + fx fy = wf_gsder (FC_LNGCOR(fc), x, y, 0, 1) } else { f = x - xm fx = 1.0 fy = 0.0 } if (FC_LATCOR(fc) != NULL) { g = y + wf_gseval (FC_LATCOR(fc), x, y) - ym gx = wf_gsder (FC_LATCOR(fc), x, y, 1, 0) gy = wf_gsder (FC_LATCOR(fc), x, y, 0, 1) gy = 1.0 + gy } else { g = y - ym gx = 0.0 gy = 1.0 } denom = fx * gy - fy * gx if (denom == 0.0d0) break dx = (-f * gy + g * fy) / denom dy = (-g * fx + f * gx) / denom x = x + max (-dmax, min (dmax, dx)) y = y + max (-dmax, min (dmax, dy)) if (max (abs (dx), abs (dy), abs(f), abs(g)) < 2.80d-7) break niter = niter + 1 } until (niter >= MAX_NITER) p[ira] = x p[idec] = y } } end # WF_TNX_DESTROY -- Free up the distortion surface pointers. procedure wf_tnx_destroy (fc) pointer fc #I pointer to the FC descriptor begin if (FC_LNGCOR(fc) != NULL) call wf_gsclose (FC_LNGCOR(fc)) if (FC_LATCOR(fc) != NULL) call wf_gsclose (FC_LATCOR(fc)) end sptable-1.0.pre20180612/src/mwcs/wftpv.x000066400000000000000000000356651331023215600175270ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include include "imwcs.h" include "mwcs.h" .help WFTPV .nf ------------------------------------------------------------------------- # WFTPV -- WCS function driver for the TPV polynomial projection. Driver routines: FN_INIT wf_tpv_init (fc, dir) FN_DESTROY wf_tpv_destroy (fc) FN_FWD wf_tpv_fwd (fc, v1, v2) FN_INV wf_tpv_inv (fc, v1, v2) .endhelp -------------------------------------------------------------------- define MAX_NITER 20 # Driver specific fields of function call (FC) descriptor. define FC_IRA Memi[$1+FCU] # RA axis (1 or 2) define FC_IDEC Memi[$1+FCU+1] # DEC axis (1 or 2) define FC_COSDEC Memd[P2D($1+FCU+2)] # cosine(dec) define FC_SINDEC Memd[P2D($1+FCU+4)] # sine(dec) define FC_W Memd[P2D($1+FCU+6)+($2)-1] # W (CRVAL) for each axis define FC_NPRA Memi[$1+FCU+10] # poly order (0-39) define FC_NPDEC Memi[$1+FCU+11] # poly order (0-39) define FC_PV Memi[$1+FCU+12] # pointer to PV data (double) define FC_A Memd[FC_PV($1)+($2)] # RA coefficient define FC_B Memd[FC_PV($1)+40+($2)] # DEC coefficient # WF_TPV_INIT -- Initialize the tan polynomial forward or inverse # transform. Initialization for this transformation consists of, determining # which axis is RA / LON and which is DEC / LAT, computing the celestial # longitude and colatitude of the native pole, reading in the the native # longitude of the pole of the celestial coordinate system LONGPOLE from the # attribute list, precomputing the Euler angles and various intermediary # functions of the reference coordinates, reading in the projection parameter # RO from the attribute list, reading in up to ten polynomial coefficients, # and, for polynomial orders greater than 2 computing the colatitude and radius # of the first point of inflection. If LONGPOLE is undefined then a value of # 180.0 degrees is assumed. If RO is undefined a value of 180.0 / PI is # assumed. If the polynomial coefficients are all zero then an error condition # is posted. If the order of the polynomial is 2 or greater and there is no # point of inflection an error condition is posted. The TPV projection with # an order of 1 and 0th and 1st coefficients of 0.0 and 1.0 respectively is # equivalent to the ARC projtection. In order to determine the axis order, # the parameter "axtype={ra|dec} {xlon|xlat}" must have been set in the # attribute list for the function. The LONGPOLE and RO parameters may be set # in either or both of the axes attribute lists, but the value in the RA axis # attribute list takes precedence. procedure wf_tpv_init (fc, dir) pointer fc #I pointer to FC descriptor int dir #I direction of transform int i, ualen, index, ip double dec, dval pointer ct, mw, wp, wv, im, idb, rp int idb_nextcard(), itoc(), ctod() pointer idb_open() errchk wf_decaxis() begin # Allocate PV storage. This is freed in wf_tpv_destroy. call calloc (FC_PV(fc), 80, TY_DOUBLE) # Set non-zero defaults. FC_NPRA(fc) = 1 FC_NPDEC(fc) = 1 FC_A(fc,1) = 1D0 FC_B(fc,1) = 1D0 # Get the required mwcs pointers. # Determine which is the DEC axis, and hence the axis order. call wf_decaxis (fc, FC_IRA(fc), FC_IDEC(fc)) # Get the value of W for each axis, i.e. the world coordinates at # the reference point. ct = FC_CT(fc) mw = CT_MW(ct) wp = FC_WCS(fc) wv = MI_DBUF(mw) + WCS_W(wp) - 1 do i = 1, 2 FC_W(fc,i) = Memd[wv+CT_AXIS(ct,FC_AXIS(fc,i))-1] # Precompute the sin and cos of the declination at the reference pixel. dec = DEGTORAD(FC_W(fc,FC_IDEC(fc))) FC_COSDEC(fc) = cos(dec) FC_SINDEC(fc) = sin(dec) # Read through the fits header once more and pick up the PV cards. # Read the values and store them, keeping track of what is # the highest order coefficient. im = MI_REFIM(mw) idb = idb_open(im,ualen) while (idb_nextcard(idb,rp) != EOF) { if (Memc[rp] != 'P' || Memc[rp+1] != 'V' || Memc[rp+3] != '_') next if (Memc[rp+2] != '1' && Memc[rp+2] != '2') next if (! IS_DIGIT(Memc[rp+4])) next index = TO_INTEG(Memc[rp+4]) do i = 5,7 { if (! IS_DIGIT(Memc[rp+i])) break else index = 10*index + TO_INTEG(Memc[rp+i]) } if (index > 39) next ip = IDB_STARTVALUE if (ctod(Memc[rp],ip,dval) <= 0) dval = 0.0d0 i = TO_INTEG(Memc[rp+2]) if (i == FC_IRA(fc)) { FC_A(fc,index) = dval if (index > FC_NPRA(fc)) FC_NPRA(fc) = double(index) } else { FC_B(fc,index) = dval if (index > FC_NPDEC(fc)) FC_NPDEC(fc) = double(index) } } call idb_close(idb) end # WF_TPV_FWD -- Forward transform (physical to world) for the tangent plane # with polynomial distortion. procedure wf_tpv_fwd (fc, p, w) pointer fc #I pointer to FC descriptor double p[2] #I physical coordinates (x, y) double w[2] #O world coordinates (ra, dec) double x, y, z, a, b, ra, dec begin # Compute the standard coordinates. x = p[1] y = p[2] call tpv_poly (fc, x, y, a, b) # Rotate the rectangular coordinate system of the vector [1,xi,eta] # by the declination so that the X axis will pass through the equator. a = DEGTORAD(a) b = DEGTORAD(b) x = FC_COSDEC(fc) - b * FC_SINDEC(fc) y = a z = FC_SINDEC(fc) + b * FC_COSDEC(fc) # Compute RA and DEC in radians. if (x == 0.0D0 && y == 0.0D0) ra = 0.0D0 else ra = atan2 (y, x) dec = atan2 (z, sqrt (x*x + y*y)) # Return RA and DEC in degrees. dec = RADTODEG(dec) ra = RADTODEG(ra) + FC_W(fc,FC_IRA(fc)) if (ra < 0D0) ra = ra + 360D0 else if (ra > 360D0) ra = ra - 360D0 w[FC_IRA(fc)] = ra w[FC_IDEC(fc)] = dec end # WF_TPV_INV -- Inverse transform (world to physical) for the tangent plane # projection with polynomials. procedure wf_tpv_inv (fc, w, p) pointer fc #I pointer to FC descriptor double w[2] #I input world (RA, DEC) coordinates double p[2] #I output physical coordinates int ira, idec, niter double ra, dec double cosra, cosdec, sinra, sindec, cosdist double a, b, x, y, f, g, fx, gx, fy, gy, denom, dx, dy, dmax begin ira = FC_IRA(fc) idec = FC_IDEC(fc) ra = DEGTORAD (w[ira] - FC_W(fc,ira)) dec = DEGTORAD (w[idec]) cosra = cos (ra) sinra = sin (ra) cosdec = cos (dec) sindec = sin (dec) cosdist = sindec * FC_SINDEC(fc) + cosdec * FC_COSDEC(fc) * cosra a = RADTODEG(cosdec * sinra / cosdist) b = RADTODEG((sindec * FC_COSDEC(fc) - cosdec * FC_SINDEC(fc) * cosra) / cosdist) x = a y = b dmax = 30. / 3600. niter = 0 repeat { call tpv_poly (fc, x, y, f, g) call tpv_der (fc, x, y, fx, gx, fy, gy) f = f - a g = g - b denom = fx * gy - fy * gx if (denom == 0.0d0) break dx = (-f * gy + g * fy) / denom dy = (-g * fx + f * gx) / denom x = x + max (-dmax, min (dmax, dx)) y = y + max (-dmax, min (dmax, dy)) if (max (abs (dx), abs (dy), abs(f), abs(g)) < 2.0d-7) break niter = niter + 1 } until (niter >= MAX_NITER) p[ira] = x p[idec] = y end # WF_TPV_DESTROY -- Free up the distortion surface pointers. procedure wf_tpv_destroy (fc) pointer fc #I pointer to the FC descriptor begin call mfree (FC_PV(fc), TY_DOUBLE) end # TPV_POLY -- Evaluate TPV polynomial (x,y -> xi,eta) procedure tpv_poly (fc, x, y, a, b) pointer fc #I pointer to FC descriptor double x, y #I physical coordinates double a, b #O standard coordinates (xi, eta) in deg int n double r, r2, r3, r5, r7, x2, x3, x4, x5, x6, x7, y2, y3, y4, y5, y6, y7 begin # Compute the standard coordinates. # This depends on undefined coefficients being zero. x2 = x * x y2 = y * y r2 = x2 + y2 r = sqrt (r2) n = max (FC_NPRA(fc), FC_NPDEC(fc)) a = FC_A(fc,0) + FC_A(fc,1) * x + FC_A(fc,2) * y + FC_A(fc,3) * r b = FC_B(fc,0) + FC_B(fc,1) * y + FC_B(fc,2) * x + FC_B(fc,3) * r if (n <= 3) return a = a + FC_A(fc,4) * x2 + FC_A(fc,5) * x*y + FC_A(fc,6) * y2 b = b + FC_B(fc,4) * y2 + FC_B(fc,5) * x*y + FC_B(fc,6) * x2 if (n <= 6) return x3 = x * x2 y3 = y * y2 r3 = r * r2 a = a + FC_A(fc,7) * x3 b = b + FC_B(fc,7) * y3 a = a + FC_A(fc,8) * x2*y b = b + FC_B(fc,8) * y2*x a = a + FC_A(fc,9) * x*y2 b = b + FC_B(fc,9) * y*x2 a = a + FC_A(fc,10) * y3 b = b + FC_B(fc,10) * x3 a = a + FC_A(fc,11) * r3 b = b + FC_B(fc,11) * r3 if (n <= 11) return x4 = x * x3 y4 = y * y3 a = a + FC_A(fc,12) * x4 b = b + FC_B(fc,12) * y4 a = a + FC_A(fc,13) * x3*y b = b + FC_B(fc,13) * y3*x a = a + FC_A(fc,14) * x2*y2 b = b + FC_B(fc,14) * y2*x2 a = a + FC_A(fc,15) * x*y3 b = b + FC_B(fc,15) * y*x3 a = a + FC_A(fc,16) * y4 b = b + FC_B(fc,16) * x4 if (n <= 16) return x5 = x * x4 y5 = y * y4 r5 = r3 * r2 a = a + FC_A(fc,17) * x5 b = b + FC_B(fc,17) * y5 a = a + FC_A(fc,18) * x4*y b = b + FC_B(fc,18) * y4*x a = a + FC_A(fc,19) * x3*y2 b = b + FC_B(fc,19) * y3*x2 a = a + FC_A(fc,20) * x2*y3 b = b + FC_B(fc,20) * y2*x3 a = a + FC_A(fc,21) * x*y4 b = b + FC_B(fc,21) * y*x4 a = a + FC_A(fc,22) * y5 b = b + FC_B(fc,22) * x5 a = a + FC_A(fc,23) * r5 b = b + FC_B(fc,23) * r5 if (n <= 23) return x6 = x * x5 y6 = y * y5 a = a + FC_A(fc,14) * x6 b = b + FC_B(fc,24) * y6 a = a + FC_A(fc,25) * x5*y b = b + FC_B(fc,25) * y5*x a = a + FC_A(fc,26) * x4*y2 b = b + FC_B(fc,26) * y4*x2 a = a + FC_A(fc,27) * x3*y3 b = b + FC_B(fc,27) * y3*x3 a = a + FC_A(fc,28) * x2*y4 b = b + FC_B(fc,28) * y2*x4 a = a + FC_A(fc,29) * x*y5 b = b + FC_B(fc,29) * y*x5 a = a + FC_A(fc,30) * y6 b = b + FC_B(fc,30) * x6 if (n <= 30) return x7 = x * x6 y7 = y * y6 r7 = r5 * r2 a = a + FC_A(fc,31) * x7 b = b + FC_B(fc,31) * y7 a = a + FC_A(fc,32) * x6*y b = b + FC_B(fc,32) * y6*x a = a + FC_A(fc,33) * x5*y2 b = b + FC_B(fc,33) * y5*x2 a = a + FC_A(fc,34) * x4*y3 b = b + FC_B(fc,34) * y4*x3 a = a + FC_A(fc,35) * x3*y4 b = b + FC_B(fc,35) * y3*x4 a = a + FC_A(fc,36) * x2*y5 b = b + FC_B(fc,36) * y2*x5 a = a + FC_A(fc,37) * x*y6 b = b + FC_B(fc,37) * y*x6 a = a + FC_A(fc,38) * y7 b = b + FC_B(fc,38) * x7 a = a + FC_A(fc,39) * r7 b = b + FC_B(fc,39) * r7 end # TPV_DER -- Evaluate TPV polynomial (x,y -> xi,eta) procedure tpv_der (fc, x, y, ax, bx, ay, by) pointer fc #I pointer to FC descriptor double x, y #I physical coordinates double ax, bx #O standard coordinates (xi, eta) in deg double ay, by #O standard coordinates (xi, eta) in deg int n double r, r2, r4, r6, x2, x3, x4, x5, x6, y2, y3, y4, y5, y6, rx, ry begin x2 = x * x y2 = y * y r2 = x2 + y2 r = sqrt (r2) if (r < 2.0d-7) { rx = 1D0 ry = 1D0 } else { rx = x / r ry = y / r } n = max (FC_NPRA(fc), FC_NPDEC(fc)) ax = FC_A(fc,1) + FC_A(fc,3) * rx by = FC_B(fc,1) + FC_B(fc,3) * ry ay = FC_A(fc,2) + FC_A(fc,3) * ry bx = FC_B(fc,2) + FC_B(fc,3) * rx if (n <= 3) return ax = ax + 2 * FC_A(fc,4) * x + FC_A(fc,5) * y by = by + 2 * FC_B(fc,4) * y + FC_B(fc,5) * x ay = ay + FC_A(fc,5) * x + 2 * FC_A(fc,6) * y bx = bx + FC_B(fc,5) * y + 2 * FC_B(fc,6) * x if (n <= 6) return ax = ax + 3 * FC_A(fc,7) * x2 by = by + 3 * FC_B(fc,7) * y2 ax = ax + 2 * FC_A(fc,8) * x*y by = by + 2 * FC_B(fc,8) * y*x ax = ax + FC_A(fc,9) * y2 by = by + FC_B(fc,9) * x2 ax = ax + 3 * FC_A(fc,11) * r2 * rx by = by + 3 * FC_B(fc,11) * r2 * ry ay = ay + FC_A(fc,8) * x2 bx = bx + FC_B(fc,8) * y2 ay = ay + 2 * FC_A(fc,9) * x*y bx = bx + 2 * FC_B(fc,9) * y*x ay = ay + 3 * FC_A(fc,10) * y2 bx = bx + 3 * FC_B(fc,10) * x2 ay = ay + 3 * FC_A(fc,11) * r2 * ry bx = bx + 3 * FC_B(fc,11) * r2 * rx if (n <= 11) return x3 = x * x2 y3 = y * y2 ax = ax + 4 * FC_A(fc,12) * x3 by = by + 4 * FC_B(fc,12) * y3 ax = ax + 3 * FC_A(fc,13) * x2*y by = by + 3 * FC_B(fc,13) * y2*x ax = ax + 2 * FC_A(fc,14) * x*y2 by = by + 2 * FC_B(fc,14) * y*x2 ax = ax + FC_A(fc,15) * y3 by = by + FC_B(fc,15) * x3 ay = ay + FC_A(fc,13) * x3 bx = bx + FC_B(fc,13) * y3 ay = ay + 2 * FC_A(fc,14) * x2*y bx = bx + 2 * FC_B(fc,14) * y2*x ay = ay + 3 * FC_A(fc,15) * x*y2 bx = bx + 3 * FC_B(fc,15) * y*x2 ay = ay + 4 * FC_A(fc,16) * y3 bx = bx + 4 * FC_B(fc,16) * x3 if (n <= 16) return x4 = x * x3 y4 = y * y3 r4 = r2 * r2 ax = ax + 5 * FC_A(fc,17) * x4 by = by + 5 * FC_B(fc,17) * y4 ax = ax + 4 * FC_A(fc,18) * x3*y by = by + 4 * FC_B(fc,18) * y3*x ax = ax + 3 * FC_A(fc,19) * x2*y2 by = by + 3 * FC_B(fc,19) * y2*x2 ax = ax + 2 * FC_A(fc,20) * x*y3 by = by + 2 * FC_B(fc,20) * y*x3 ax = ax + FC_A(fc,21) * y4 by = by + FC_B(fc,21) * x4 ax = ax + 5 * FC_A(fc,23) * r4 * rx by = by + 5 * FC_B(fc,23) * r4 * ry ay = ay + FC_A(fc,18) * x4 bx = bx + FC_B(fc,18) * y4 ay = ay + 2 * FC_A(fc,19) * x3*y bx = bx + 2 * FC_B(fc,19) * y3*x ay = ay + 3 * FC_A(fc,20) * x2*y2 bx = bx + 3 * FC_B(fc,20) * y2*x2 ay = ay + 4 * FC_A(fc,21) * x*y3 bx = bx + 4 * FC_B(fc,21) * y*x3 ay = ay + 5 * FC_A(fc,22) * y4 bx = bx + 5 * FC_B(fc,22) * x4 ay = ay + 5 * FC_A(fc,23) * r4 * ry bx = bx + 5 * FC_B(fc,23) * r4 * rx if (n <= 23) return x5 = x * x4 y5 = y * y4 ax = ax + 6 * FC_A(fc,14) * x5 by = by + 6 * FC_B(fc,24) * y5 ax = ax + 5 * FC_A(fc,25) * x4*y by = by + 5 * FC_B(fc,25) * y4*x ax = ax + 4 * FC_A(fc,26) * x3*y2 by = by + 4 * FC_B(fc,26) * y3*x2 ax = ax + 3 * FC_A(fc,27) * x2*y3 by = by + 3 * FC_B(fc,27) * y2*x3 ax = ax + 2 * FC_A(fc,28) * x*y4 by = by + 2 * FC_B(fc,28) * y*x4 ax = ax + FC_A(fc,29) * y5 by = by + FC_B(fc,29) * x5 ay = ay + FC_A(fc,25) * x5 bx = bx + FC_B(fc,25) * y5 ay = ay + 2 * FC_A(fc,26) * x4*y bx = bx + 2 * FC_B(fc,26) * y4*x ay = ay + 3 * FC_A(fc,27) * x3*y2 bx = bx + 3 * FC_B(fc,27) * y3*x2 ay = ay + 4 * FC_A(fc,28) * x2*y3 bx = bx + 4 * FC_B(fc,28) * y2*x3 ay = ay + 5 * FC_A(fc,29) * x*y4 bx = bx + 5 * FC_B(fc,29) * y*x4 ay = ay + 6 * FC_A(fc,30) * y5 bx = bx + 6 * FC_B(fc,30) * x5 if (n <= 30) return x6 = x * x5 y6 = y * y5 r6 = r4 * r2 ax = ax + 7 * FC_A(fc,31) * x6 by = by + 7 * FC_B(fc,31) * y6 ax = ax + 6 * FC_A(fc,32) * x5*y by = by + 6 * FC_B(fc,32) * y5*x ax = ax + 5 * FC_A(fc,33) * x4*y2 by = by + 5 * FC_B(fc,33) * y4*x2 ax = ax + 4 * FC_A(fc,34) * x3*y3 by = by + 4 * FC_B(fc,34) * y3*x3 ax = ax + 3 * FC_A(fc,35) * x2*y4 by = by + 3 * FC_B(fc,35) * y2*x4 ax = ax + 2 * FC_A(fc,36) * x*y5 by = by + 2 * FC_B(fc,36) * y*x5 ax = ax + FC_A(fc,37) * y6 by = by + FC_B(fc,37) * x6 ax = ax + 7 * FC_A(fc,39) * r6 * rx by = by + 7 * FC_B(fc,39) * r6 * ry ay = ay + FC_A(fc,32) * x6 bx = bx + FC_B(fc,32) * y6 ay = ay + 2 * FC_A(fc,33) * x5*y bx = bx + 2 * FC_B(fc,33) * y5*x ay = ay + 3 * FC_A(fc,34) * x4*y2 bx = bx + 3 * FC_B(fc,34) * y4*x2 ay = ay + 4 * FC_A(fc,35) * x3*y3 bx = bx + 4 * FC_B(fc,35) * y3*x3 ay = ay + 5 * FC_A(fc,36) * x2*y4 bx = bx + 5 * FC_B(fc,36) * y2*x4 ay = ay + 6 * FC_A(fc,37) * x*y5 bx = bx + 6 * FC_B(fc,37) * y*x5 ay = ay + 7 * FC_A(fc,38) * y6 bx = bx + 7 * FC_B(fc,38) * x6 ay = ay + 7 * FC_A(fc,39) * r6 * ry bx = bx + 7 * FC_B(fc,39) * r6 * rx end sptable-1.0.pre20180612/src/mwcs/wftsc.x000066400000000000000000000401241331023215600174710ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include "mwcs.h" .help WFTSC .nf ------------------------------------------------------------------------- WFTSC -- WCS function driver for the tangentil spherical cube projection. Driver routines: FN_INIT wf_tsc_init (fc, dir) FN_DESTROY (none) FN_FWD wf_tsc_fwd (fc, v1, v2) FN_INV wf_tsc_inv (fc, v1, v2) .endhelp -------------------------------------------------------------------- # Driver specific fields of function call (FC) descriptor. define FC_IRA Memi[$1+FCU] # RA axis (1 or 2) define FC_IDEC Memi[$1+FCU+1] # DEC axis (1 or 2) define FC_NATRA Memd[P2D($1+FCU+2)] # RA of native pole (rads) define FC_NATDEC Memd[P2D($1+FCU+4)] # DEC of native pole (rads) define FC_LONGP Memd[P2D($1+FCU+6)] # LONGPOLE (rads) define FC_COSDEC Memd[P2D($1+FCU+8)] # cosine (NATDEC) define FC_SINDEC Memd[P2D($1+FCU+10)] # sine (NATDEC) define FC_SPHTOL Memd[P2D($1+FCU+12)] # trig tolerance define FC_RODEG Memd[P2D($1+FCU+14)] # RO (degs) define FC_C1 Memd[P2D($1+FCU+16)] # RO * (PI / 4) define FC_C2 Memd[P2D($1+FCU+18)] # (4 / PI) / RO define FC_BADCVAL Memd[P2D($1+FCU+20)] # bad coordinate value define FC_W Memd[P2D($1+FCU+22)+($2)-1] # CRVAL axis (1 and 2) # WF_TSC_INIT -- Initialize the forward or inverse tangential spherical cube # projection transform. Initialization for this transformation consists of, # determining which axis is RA / LON and which is DEC / LAT, reading in the # native longitude and latitude of the pole in celestial coordinates LONGPOLE # and LATPOLE from the attribute list, computing the celestial longitude and # colatitude of the native pole, precomputing the Euler angles and various # intermediary functions of the reference point, reading in the projection # parameter RO from the attribute list, and precomputing the various required # intermediate quantities. If LONGPOLE is undefined then a value of 180.0 # degrees is assumed if the celestial latitude is less than 0, otherwise 0 # is assumed. If LATPOLE is undefined then the most northerly of the two # possible solutions is chosen, otherwise the solution closest to LATPOLE # is chosen. If RO is undefined a value of 180.0 / PI is assumed. In order to # determine the axis order, the parameter "axtype={ra|dec} {xlon|xlat}" must # have been set in the attribute list for the function. The LONGPOLE, LATPOLE, # and RO parameters may be set in either or both of the axes attribute lists, # but the value in the RA axis attribute list takes precedence. procedure wf_tsc_init (fc, dir) pointer fc #I pointer to FC descriptor int dir #I direction of transform int i double dec, latpole, theta0, clat0, slat0, cphip, sphip, cthe0, sthe0, x, y, z double u, v, latp1, latp2, latp, maxlat, tol pointer sp, atvalue, ct, mw, wp, wv int ctod() data tol/1.0d-10/ errchk wf_decaxis(), mw_gwattrs() begin # Allocate space for the attribute string. call smark (sp) call salloc (atvalue, SZ_LINE, TY_CHAR) # Get the required mwcs pointers. ct = FC_CT(fc) mw = CT_MW(ct) wp = FC_WCS(fc) # Determine which is the DEC axis, and hence the axis order. call wf_decaxis (fc, FC_IRA(fc), FC_IDEC(fc)) # Get the value of W for each axis, i.e. the world coordinates at # the reference point. wv = MI_DBUF(mw) + WCS_W(wp) - 1 do i = 1, 2 FC_W(fc,i) = Memd[wv+CT_AXIS(ct,FC_AXIS(fc,i))-1] # Determine the native longitude and latitude of the pole of the # celestial coordinate system corresponding to the FITS keywords # LONGPOLE and LATPOLE. LONGPOLE has no default but will be set # to 180 or 0 depending on the value of the declination of the # reference point. LATPOLE has no default but will be set depending # on the values of LONGPOLE and the reference declination. iferr { call mw_gwattrs (mw, FC_IRA(fc), "longpole", Memc[atvalue], SZ_LINE) } then { iferr { call mw_gwattrs (mw, FC_IDEC(fc), "longpole", Memc[atvalue], SZ_LINE) } then { FC_LONGP(fc) = INDEFD } else { i = 1 if (ctod (Memc[atvalue], i, FC_LONGP(fc)) <= 0) FC_LONGP(fc) = INDEFD } } else { i = 1 if (ctod (Memc[atvalue], i, FC_LONGP(fc)) <= 0) FC_LONGP(fc) = INDEFD } iferr { call mw_gwattrs (mw, FC_IRA(fc), "latpole", Memc[atvalue], SZ_LINE) } then { iferr { call mw_gwattrs (mw, FC_IDEC(fc), "latpole", Memc[atvalue], SZ_LINE) } then { latpole = INDEFD } else { i = 1 if (ctod (Memc[atvalue], i, latpole) <= 0) latpole = INDEFD } } else { i = 1 if (ctod (Memc[atvalue], i, latpole) <= 0) latpole = INDEFD } # Fetch the RO projection parameter which is the radius of the # generating sphere for the projection. If RO is absent which # is the usual case set it to 180 / PI. Search both axes for # this quantity. iferr { call mw_gwattrs (mw, FC_IRA(fc), "ro", Memc[atvalue], SZ_LINE) } then { iferr { call mw_gwattrs (mw, FC_IDEC(fc), "ro", Memc[atvalue], SZ_LINE) } then { FC_RODEG(fc) = 180.0d0 / DPI } else { i = 1 if (ctod (Memc[atvalue], i, FC_RODEG(fc)) <= 0) FC_RODEG(fc) = 180.0d0 / DPI } } else { i = 1 if (ctod (Memc[atvalue], i, FC_RODEG(fc)) <= 0) FC_RODEG(fc) = 180.0d0 / DPI } # Compute the native longitude of the celestial pole. dec = DDEGTORAD(FC_W(fc,FC_IDEC(fc))) theta0 = 0.0d0 if (IS_INDEFD(FC_LONGP(fc))) { if (dec < theta0) FC_LONGP(fc) = DPI else FC_LONGP(fc) = 0.0d0 } else FC_LONGP(fc) = DDEGTORAD(FC_LONGP(fc)) # Compute the celestial longitude and latitude of the native pole. clat0 = cos (dec) slat0 = sin (dec) cphip = cos (FC_LONGP(fc)) sphip = sin (FC_LONGP(fc)) cthe0 = cos (theta0) sthe0 = sin (theta0) x = cthe0 * cphip y = sthe0 z = sqrt (x * x + y * y) # The latitude of the native pole is determined by LATPOLE in this # case. if (z == 0.0d0) { if (slat0 != 0.0d0) call error (0, "WF_TSC_INIT: Invalid projection parameters") if (IS_INDEFD(latpole)) latp = 999.0d0 else latp = DDEGTORAD(latpole) } else { if (abs (slat0 / z) > 1.0d0) call error (0, "WF_TSC_INIT: Invalid projection parameters") u = atan2 (y, x) v = acos (slat0 / z) latp1 = u + v if (latp1 > DPI) latp1 = latp1 - DTWOPI else if (latp1 < -DPI) latp1 = latp1 + DTWOPI latp2 = u - v if (latp2 > DPI) latp2 = latp2 - DTWOPI else if (latp2 < -DPI) latp2 = latp2 + DTWOPI if (IS_INDEFD(latpole)) maxlat = 999.0d0 else maxlat = DDEGTORAD(latpole) if (abs (maxlat - latp1) < abs (maxlat - latp2)) { if (abs (latp1) < (DHALFPI + tol)) latp = latp1 else latp = latp2 } else { if (abs (latp2) < (DHALFPI + tol)) latp = latp2 else latp = latp1 } } FC_NATDEC(fc) = DHALFPI - latp z = cos (latp) * clat0 if (abs(z) < tol) { # Celestial pole at the reference point. if (abs(clat0) < tol) { FC_NATRA(fc) = DDEGTORAD(FC_W(fc,FC_IRA(fc))) FC_NATDEC(fc) = DHALFPI - theta0 # Celestial pole at the native north pole. } else if (latp > 0.0d0) { FC_NATRA(fc) = DDEGTORAD(FC_W(fc,FC_IRA(fc))) + FC_LONGP(fc) - DPI FC_NATDEC(fc) = 0.0d0 # Celestial pole at the native south pole. } else if (latp < 0.0d0) { FC_NATRA(fc) = DDEGTORAD(FC_W(fc,FC_IRA(fc))) - FC_LONGP(fc) FC_NATDEC(fc) = DPI } } else { x = (sthe0 - sin (latp) * slat0) / z y = sphip * cthe0 / clat0 if (x == 0.0d0 && y == 0.0d0) call error (0, "WF_TSC_INIT: Invalid projection parameters") FC_NATRA(fc) = DDEGTORAD(FC_W(fc,FC_IRA(fc))) - atan2 (y,x) } if (FC_W(fc,FC_IRA(fc)) >= 0.0d0) { if (FC_NATRA(fc) < 0.0d0) FC_NATRA(fc) = FC_NATRA(fc) + DTWOPI } else { if (FC_NATRA(fc) > 0.0d0) FC_NATRA(fc) = FC_NATRA(fc) - DTWOPI } FC_COSDEC(fc) = cos (FC_NATDEC(fc)) FC_SINDEC(fc) = sin (FC_NATDEC(fc)) # Check for ill-conditioned parameters. if (abs(latp) > (DHALFPI+tol)) call error (0, "WF_TSC_INIT: Invalid projection parameters") # Compute the required intermediate quantities. FC_C1(fc) = FC_RODEG(fc) * (DPI / 4.0d0) FC_C2(fc) = 1.0d0 / FC_C1(fc) # Set the bad coordinate value. FC_SPHTOL(fc) = 1.0d-5 # Set the bad coordinate value. FC_BADCVAL(fc) = INDEFD # Free working space. call sfree (sp) end # WF_TSC_FWD -- Forward transform (physical to world) for the tangential # spherical projection. procedure wf_tsc_fwd (fc, p, w) pointer fc #I pointer to FC descriptor double p[2] #I physical coordinates (x, y) double w[2] #O world coordinates (ra, dec) int ira, idec, face double l, m, n, phi, theta, costhe, sinthe, dphi, cosphi, sinphi, x, y, z double xf, yf, ra, dec, dlng begin # Get the axis numbers. ira = FC_IRA(fc) idec = FC_IDEC(fc) # Compute native spherical coordinates PHI and THETA in degrees from # the projected coordinates. This is the projection part of the # computation. xf = p[ira] * FC_C2(fc) yf = p[idec] * FC_C2(fc) if (xf > 5.0d0) { face = 4 xf = xf - 6.0d0 l = -1.0d0 / sqrt (1.0d0 + xf * xf + yf * yf) m = -l * xf n = -l * yf } else if (xf > 3.0d0) { face = 3 xf = xf - 4.0d0 m = -1.0d0 / sqrt (1.0d0 + xf * xf + yf * yf) l = m * xf n = -m * yf } else if (xf > 1.0d0) { face = 2 xf = xf - 2.0d0 l = 1.0d0 / sqrt (1.0d0 + xf * xf + yf * yf) m = -l * xf n = l * yf } else if (yf > 1.0d0) { face = 0 yf = yf - 2.0d0 n = 1.0d0 / sqrt (1.0d0 + xf * xf + yf * yf) l = n * xf m = -n * yf } else if (yf < -1.0d0) { face = 5 yf = yf + 2.0d0 n = -1.0d0 / sqrt (1.0d0 + xf * xf + yf * yf) l = -n * xf m = -n * yf } else { face = 1 m = 1.0d0 / sqrt (1.0d0 + xf * xf + yf * yf) l = m * xf n = m * yf } # Compute PHI. if (l == 0.0d0 && m == 0.0d0) phi = 0.0d0 else phi = atan2 (l, m) # Compute THETA. theta = asin(n) # Compute the celestial coordinates RA and DEC from the native # coordinates PHI and THETA. This is the spherical geometry part # of the computation. costhe = cos (theta) sinthe = sin (theta) dphi = phi - FC_LONGP(fc) cosphi = cos (dphi) sinphi = sin (dphi) # Compute the RA. x = sinthe * FC_SINDEC(fc) - costhe * FC_COSDEC(fc) * cosphi if (abs (x) < FC_SPHTOL(fc)) x = -cos (theta + FC_NATDEC(fc)) + costhe * FC_COSDEC(fc) * (1.0d0 - cosphi) y = -costhe * sinphi if (x != 0.0d0 || y != 0.0d0) { dlng = atan2 (y, x) } else { dlng = dphi + DPI } ra = DRADTODEG(FC_NATRA(fc) + dlng) # Normalize the RA. if (FC_NATRA(fc) >= 0.0d0) { if (ra < 0.0d0) ra = ra + 360.0d0 } else { if (ra > 0.0d0) ra = ra - 360.0d0 } if (ra > 360.0d0) ra = ra - 360.0d0 else if (ra < -360.0d0) ra = ra + 360.0d0 # Compute the DEC. if (mod (dphi, DPI) == 0.0d0) { dec = DRADTODEG(theta + cosphi * FC_NATDEC(fc)) if (dec > 90.0d0) dec = 180.0d0 - dec if (dec < -90.0d0) dec = -180.0d0 - dec } else { z = sinthe * FC_COSDEC(fc) + costhe * FC_SINDEC(fc) * cosphi if (abs(z) > 0.99d0) { if (z >= 0.0d0) dec = DRADTODEG(acos (sqrt(x * x + y * y))) else dec = DRADTODEG(-acos (sqrt(x * x + y * y))) } else dec = DRADTODEG(asin (z)) } # Store the results. w[ira] = ra w[idec] = dec end # WF_TSC_INV -- Inverse transform (world to physical) for the tangential # spherical projection. procedure wf_tsc_inv (fc, w, p) pointer fc #I pointer to FC descriptor double w[2] #I input world (RA, DEC) coordinates double p[2] #I output physical coordinates int ira, idec, face double ra, dec, cosdec, sindec, cosra, sinra, x, y, z, dphi, phi, theta double costhe, l, m, n, rho, tol, x0, y0, xf, yf data tol /1.0d-12/ begin # Get the axes numbers. ira = FC_IRA(fc) idec = FC_IDEC(fc) # Compute the transformation from celestial coordinates RA and # DEC to native coordinates PHI and THETA. This is the spherical # geometry part of the transformation. ra = DDEGTORAD (w[ira]) - FC_NATRA(fc) dec = DDEGTORAD (w[idec]) cosra = cos (ra) sinra = sin (ra) cosdec = cos (dec) sindec = sin (dec) # Compute PHI. x = sindec * FC_SINDEC(fc) - cosdec * FC_COSDEC(fc) * cosra if (abs(x) < FC_SPHTOL(fc)) x = -cos (dec + FC_NATDEC(fc)) + cosdec * FC_COSDEC(fc) * (1.0d0 - cosra) y = -cosdec * sinra if (x != 0.0d0 || y != 0.0d0) dphi = atan2 (y, x) else dphi = ra - DPI phi = FC_LONGP(fc) + dphi if (phi > DPI) phi = phi - DTWOPI else if (phi < -DPI) phi = phi + DTWOPI # Compute THETA. if (mod (ra, DPI) == 0.0) { theta = dec + cosra * FC_NATDEC(fc) if (theta > DHALFPI) theta = DPI - theta if (theta < -DHALFPI) theta = -DPI - theta } else { z = sindec * FC_COSDEC(fc) + cosdec * FC_SINDEC(fc) * cosra if (abs (z) > 0.99d0) { if (z >= 0.0) theta = acos (sqrt(x * x + y * y)) else theta = -acos (sqrt(x * x + y * y)) } else theta = asin (z) } # Compute the transformation from native coordinates PHI and THETA # to projected coordinates X and Y. costhe = cos (theta) l = costhe * sin (phi) m = costhe * cos (phi) n = sin (theta) face = 0 rho = n if (m > rho) { face = 1 rho = m } if (l > rho) { face = 2 rho = l } if (-m > rho) { face = 3 rho = -m } if (-l > rho) { face = 4 rho = -l } if (-n > rho) { face = 5 rho = -n } switch (face) { case 0: xf = l / rho yf = -m / rho x0 = 0.0d0 y0 = 2.0d0 case 1: xf = l / rho yf = n / rho x0 = 0.0d0 y0 = 0.0d0 case 2: xf = -m / rho yf = n / rho x0 = 2.0d0 y0 = 0.0d0 case 3: xf = -l / rho yf = n / rho x0 = 4.0d0 y0 = 0.0d0 case 4: xf = m / rho yf = n / rho x0 = 6.0d0 y0 = 0.0d0 case 5: xf = l / rho yf = m / rho x0 = 0.0d0 y0 = -2.0d0 } if (abs(xf) > 1.0d0) { if (abs(xf) > (1.0d0 + tol)) { p[ira] = FC_BADCVAL(fc) p[idec] = FC_BADCVAL(fc) return } if (xf >= 0.0d0) xf = 1.0d0 else xf = -1.0d0 } if (abs(yf) > 1.0d0) { if (abs(yf) > (1.0d0 + tol)) { p[ira] = FC_BADCVAL(fc) p[idec] = FC_BADCVAL(fc) return } if (yf >= 0.0d0) yf = 1.0d0 else yf = -1.0d0 } p[ira] = FC_C1(fc) * (x0 + xf) p[idec] = FC_C1(fc) * (y0 + yf) end sptable-1.0.pre20180612/src/mwcs/wfzea.x000066400000000000000000000226711331023215600174660ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include "mwcs.h" .help WFZEA .nf ------------------------------------------------------------------------- WFZEA -- WCS function driver for the zenithal equal area projection. Driver routines: FN_INIT wf_zea_init (fc, dir) FN_DESTROY (none) FN_FWD wf_zea_fwd (fc, v1, v2) FN_INV wf_zea_inv (fc, v1, v2) .endhelp -------------------------------------------------------------------- # Driver specific fields of function call (FC) descriptor. define FC_IRA Memi[$1+FCU] # RA axis (1 or 2) define FC_IDEC Memi[$1+FCU+1] # DEC axis (1 or 2) define FC_LONGP Memd[P2D($1+FCU+2)] # LONGPOLE (rads) define FC_COLATP Memd[P2D($1+FCU+4)] # (90 - DEC) (rads) define FC_COSLATP Memd[P2D($1+FCU+6)] # cosine (90 - DEC) define FC_SINLATP Memd[P2D($1+FCU+8)] # sine (90 - DEC) define FC_SPHTOL Memd[P2D($1+FCU+10)] # trig tolerance define FC_RODEG Memd[P2D($1+FCU+12)] # RO (degs) define FC_2RODEG Memd[P2D($1+FCU+14)] # 2 * RO (degs) define FC_REC2RODEG Memd[P2D($1+FCU+16)] # 1 / 2 * RO (degs) define FC_BADCVAL Memd[P2D($1+FCU+18)] # bad coordinate value define FC_W Memd[P2D($1+FCU+20)+($2)-1] # CRVAL (axis 1 and 2) # WF_ZEA_INIT -- Initialize the zenithal equal area forward or inverse # transform. Initialization for this transformation consists of, determining # which axis is RA / LON and which is DEC / LAT, computing the celestial # longitude and colatitude of the native pole, reading in the the native # longitude of the pole of the celestial coordinate system LONGPOLE from the # attribute list, precomputing the Euler angles and intermediary functions # of the reference point, and reading in the projection parameter RO from the # attribute list. If LONGPOLE is undefined then a value of 180.0 degrees is # assumed. If RO is undefined a value of 180.0 / PI is assumed. In order to # determine the axis order, the parameter "axtype={ra|dec}{xlon|xlat}" must # have been set in the attribute list for the function. The LONGPOLE and RO # parameters may be set in either or both of the axes attribute lists, but # the value in the RA axis attribute list takes precedence. procedure wf_zea_init (fc, dir) pointer fc #I pointer to FC descriptor int dir #I direction of transform int i double dec pointer sp, atvalue, ct, mw, wp, wv int ctod() errchk wf_decaxis(), mw_gwattrs() begin # Allocate space for the attribute string. call smark (sp) call salloc (atvalue, SZ_LINE, TY_CHAR) # Get the required mwcs pointers. ct = FC_CT(fc) mw = CT_MW(ct) wp = FC_WCS(fc) # Determine which is the DEC axis, and hence the axis order. call wf_decaxis (fc, FC_IRA(fc), FC_IDEC(fc)) # Get the value of W for each axis, i.e. the world coordinates at # the reference point. wv = MI_DBUF(mw) + WCS_W(wp) - 1 do i = 1, 2 FC_W(fc,i) = Memd[wv+CT_AXIS(ct,FC_AXIS(fc,i))-1] # Get the celestial coordinates of the native pole which are in # this case the ra and 90 - dec of the reference point. dec = DDEGTORAD(90.0d0 - FC_W(fc,FC_IDEC(fc))) # Determine the native longitude of the pole of the celestial # coordinate system corresponding to the FITS keyword LONGPOLE. # This number has no default and should normally be set to 180 # degrees. Search both axes for this quantity. iferr { call mw_gwattrs (mw, FC_IRA(fc), "longpole", Memc[atvalue], SZ_LINE) } then { iferr { call mw_gwattrs (mw, FC_IDEC(fc), "longpole", Memc[atvalue], SZ_LINE) } then { FC_LONGP(fc) = 180.0d0 } else { i = 1 if (ctod (Memc[atvalue], i, FC_LONGP(fc)) <= 0) FC_LONGP(fc) = 180.0d0 if (IS_INDEFD(FC_LONGP(fc))) FC_LONGP(fc) = 180.0d0 } } else { i = 1 if (ctod (Memc[atvalue], i, FC_LONGP(fc)) <= 0) FC_LONGP(fc) = 180.0d0 if (IS_INDEFD(FC_LONGP(fc))) FC_LONGP(fc) = 180.0d0 } FC_LONGP(fc) = DDEGTORAD(FC_LONGP(fc)) # Precompute the trigomometric functions used by the spherical geometry # code to improve efficiency. FC_COLATP(fc) = dec FC_COSLATP(fc) = cos(dec) FC_SINLATP(fc) = sin(dec) # Fetch the RO projection parameter which is the radius of the # generating sphere for the projection. If RO is absent which # is the usual case set it to 180 / PI. Search both axes for # this quantity. iferr { call mw_gwattrs (mw, FC_IRA(fc), "ro", Memc[atvalue], SZ_LINE) } then { iferr { call mw_gwattrs (mw, FC_IDEC(fc), "ro", Memc[atvalue], SZ_LINE) } then { FC_RODEG(fc) = 180.0d0 / DPI } else { i = 1 if (ctod (Memc[atvalue], i, FC_RODEG(fc)) <= 0) FC_RODEG(fc) = 180.0d0 / DPI } } else { i = 1 if (ctod (Memc[atvalue], i, FC_RODEG(fc)) <= 0) FC_RODEG(fc) = 180.0d0 / DPI } FC_2RODEG(fc) = 2.0d0 * FC_RODEG(fc) FC_REC2RODEG(fc) = 1.0d0 / FC_2RODEG(fc) # Set the bad coordinate value. FC_SPHTOL(fc) = 1.0d-5 # Set the bad coordinate value. FC_BADCVAL(fc) = INDEFD # Free working space. call sfree (sp) end # WF_ZEA_FWD -- Forward transform (physical to world) for the zenithal # equal area projection. procedure wf_zea_fwd (fc, p, w) pointer fc #I pointer to FC descriptor double p[2] #I physical coordinates (x, y) double w[2] #O world coordinates (ra, dec) int ira, idec double x, y, r, phi, theta, costhe, sinthe, dphi, cosphi, sinphi, ra, dec, tol double dlng, z data tol /1.0d-12/ begin # Get the axis numbers. ira = FC_IRA(fc) idec = FC_IDEC(fc) # Compute native spherical coordinates PHI and THETA in degrees from # the projected coordinates. This is the projection part of the # computation. x = p[ira] y = p[idec] r = sqrt (x * x + y * y) # Compute PHI. if (r == 0.0d0) phi = 0.0d0 else phi = atan2 (x, -y) # Compute THETA. if (abs (r - FC_2RODEG(fc)) < tol) theta = -DHALFPI else theta = DHALFPI - 2.0d0 * asin (r * FC_REC2RODEG(fc)) # Compute the celestial coordinates RA and DEC from the native # coordinates PHI and THETA. This is the spherical geometry part # of the computation. costhe = cos (theta) sinthe = sin (theta) dphi = phi - FC_LONGP(fc) cosphi = cos (dphi) sinphi = sin (dphi) # Compute the RA. x = sinthe * FC_SINLATP(fc) - costhe * FC_COSLATP(fc) * cosphi if (abs (x) < FC_SPHTOL(fc)) x = -cos (theta + FC_COLATP(fc)) + costhe * FC_COSLATP(fc) * (1.0d0 - cosphi) y = -costhe * sinphi if (x != 0.0d0 || y != 0.0d0) { dlng = atan2 (y, x) } else { dlng = dphi + DPI } ra = FC_W(fc,ira) + DRADTODEG(dlng) # Normalize the RA. if (FC_W(fc,ira) >= 0.0d0) { if (ra < 0.0d0) ra = ra + 360.0d0 } else { if (ra > 0.0d0) ra = ra - 360.0d0 } if (ra > 360.0d0) ra = ra - 360.0d0 else if (ra < -360.0d0) ra = ra + 360.0d0 # Compute the DEC. if (mod (dphi, DPI) == 0.0d0) { dec = DRADTODEG(theta + cosphi * FC_COLATP(fc)) if (dec > 90.0d0) dec = 180.0d0 - dec if (dec < -90.0d0) dec = -180.0d0 - dec } else { z = sinthe * FC_COSLATP(fc) + costhe * FC_SINLATP(fc) * cosphi if (abs(z) > 0.99d0) { if (z >= 0.0d0) dec = DRADTODEG(acos (sqrt(x * x + y * y))) else dec = DRADTODEG(-acos (sqrt(x * x + y * y))) } else dec = DRADTODEG(asin (z)) } # Store the results. w[ira] = ra w[idec] = dec end # WF_ZEA_INV -- Inverse transform (world to physical) for the zenithal # equal area projection. procedure wf_zea_inv (fc, w, p) pointer fc #I pointer to FC descriptor double w[2] #I input world (RA, DEC) coordinates double p[2] #I output physical coordinates int ira, idec double ra, dec, cosdec, sindec, cosra, sinra, x, y, phi, theta, r, dphi, z begin # Get the axes numbers. ira = FC_IRA(fc) idec = FC_IDEC(fc) # Compute the transformation from celestial coordinates RA and # DEC to native coordinates PHI and THETA. This is the spherical # geometry part of the transformation. ra = DDEGTORAD (w[ira] - FC_W(fc,ira)) dec = DDEGTORAD (w[idec]) cosra = cos (ra) sinra = sin (ra) cosdec = cos (dec) sindec = sin (dec) # Compute PHI. x = sindec * FC_SINLATP(fc) - cosdec * FC_COSLATP(fc) * cosra if (abs(x) < FC_SPHTOL(fc)) x = -cos (dec + FC_COLATP(fc)) + cosdec * FC_COSLATP(fc) * (1.0d0 - cosra) y = -cosdec * sinra if (x != 0.0d0 || y != 0.0d0) dphi = atan2 (y, x) else dphi = ra - DPI phi = FC_LONGP(fc) + dphi if (phi > DPI) phi = phi - DTWOPI else if (phi < -DPI) phi = phi + DTWOPI # Compute THETA. if (mod (ra, DPI) ==0.0) { theta = dec + cosra * FC_COLATP(fc) if (theta > DHALFPI) theta = DPI - theta if (theta < -DHALFPI) theta = -DPI - theta } else { z = sindec * FC_COSLATP(fc) + cosdec * FC_SINLATP(fc) * cosra if (abs (z) > 0.99d0) { if (z >= 0.0) theta = acos (sqrt(x * x + y * y)) else theta = -acos (sqrt(x * x + y * y)) } else theta = asin (z) } # Compute the transformation from native coordinates PHI and THETA # to projected coordinates X and Y. r = FC_2RODEG(fc) * sin ((DHALFPI - theta) / 2.0d0) p[ira] = r * sin (phi) p[idec] = -r * cos (phi) end sptable-1.0.pre20180612/src/mwcs/wfzpn.x000066400000000000000000000410271331023215600175120ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include include "imwcs.h" include "mwcs.h" .help WFZPN .nf ------------------------------------------------------------------------- # WFZPN -- WCS function driver for the zenithal / azimuthal polynomial # projection. Driver routines: FN_INIT wf_zpn_init (fc, dir) FN_DESTROY wf_zpn_destroy (fc) FN_FWD wf_zpn_fwd (fc, v1, v2) FN_INV wf_zpn_inv (fc, v1, v2) .endhelp -------------------------------------------------------------------- define MAX_NITER 20 # Driver specific fields of function call (FC) descriptor. define FC_LNGCOR Memi[$1+FCU] # RA axis correction define FC_LATCOR Memi[$1+FCU+1] # DEC axis correction define FC_IRA Memi[$1+FCU+2] # RA axis (1 or 2) define FC_IDEC Memi[$1+FCU+3] # DEC axis (1 or 2) define FC_NP Memd[P2D($1+FCU+4)] # poly order (0-9) define FC_LONGP Memd[P2D($1+FCU+6)] # LONGPOLE (rads) define FC_COLATP Memd[P2D($1+FCU+8)] # (90 - DEC) (rads) define FC_COSLATP Memd[P2D($1+FCU+10)] # cosine (90 - DEC) define FC_SINLATP Memd[P2D($1+FCU+12)] # sine (90 - DEC) define FC_SPHTOL Memd[P2D($1+FCU+14)] # trig tolerance define FC_PC Memd[P2D($1+FCU+16)+($2)] # poly coefficients (9) define FC_RODEG Memd[P2D($1+FCU+36)] # RO (degs) define FC_ZD Memd[P2D($1+FCU+38)] # colat of FIP (degs) define FC_R Memd[P2D($1+FCU+40)] # radius of FIP (degs) define FC_BADCVAL Memd[P2D($1+FCU+42)] # Bad coordinate value define FC_W Memd[P2D($1+FCU+44)+($2)-1] # CRVAL (axis 1 and 2) # WF_ZPN_INIT -- Initialize the zenithal/azimuthal polynomial forward or inverse # transform. Initialization for this transformation consists of, determining # which axis is RA / LON and which is DEC / LAT, computing the celestial # longitude and colatitude of the native pole, reading in the the native # longitude of the pole of the celestial coordinate system LONGPOLE from the # attribute list, precomputing the Euler angles and various intermediary # functions of the reference coordinates, reading in the projection parameter # RO from the attribute list, reading in up to ten polynomial coefficients, # and, for polynomial orders greater than 2 computing the colatitude and radius # of the first point of inflection. If LONGPOLE is undefined then a value of # 180.0 degrees is assumed. If RO is undefined a value of 180.0 / PI is # assumed. If the polynomial coefficients are all zero then an error condition # is posted. If the order of the polynomial is 2 or greater and there is no # point of inflection an error condition is posted. The ZPN projection with # an order of 1 and 0th and 1st coefficients of 0.0 and 1.0 respectively is # equivalent to the ARC projtection. In order to determine the axis order, # the parameter "axtype={ra|dec} {xlon|xlat}" must have been set in the # attribute list for the function. The LONGPOLE and RO parameters may be set # in either or both of the axes attribute lists, but the value in the RA axis # attribute list takes precedence. procedure wf_zpn_init (fc, dir) pointer fc #I pointer to FC descriptor int dir #I direction of transform int i, j, np, szatstr, maxorder, ualen, index, ip double dec, zd1, d1, zd2, d2, zd, d, r, tol, dval pointer sp, atname, atvalue, ct, mw, wp, wv, im, idb, rp char compare[4] bool match int ctod(), strlen(), idb_nextcard(), itoc() pointer wf_gsopen(), idb_open() data tol/1.0d-13/ errchk wf_decaxis(), mw_gwattrs() begin # Allocate space for the attribute string. call smark (sp) call salloc (atname, SZ_ATNAME, TY_CHAR) call salloc (atvalue, SZ_LINE, TY_CHAR) # Get the required mwcs pointers. ct = FC_CT(fc) mw = CT_MW(ct) wp = FC_WCS(fc) im = MI_REFIM(mw) # Determine which is the DEC axis, and hence the axis order. call wf_decaxis (fc, FC_IRA(fc), FC_IDEC(fc)) # Get the value of W for each axis, i.e. the world coordinates at # the reference point. wv = MI_DBUF(mw) + WCS_W(wp) - 1 do i = 1, 2 FC_W(fc,i) = Memd[wv+CT_AXIS(ct,FC_AXIS(fc,i))-1] # Get the celestial coordinates of the native pole which are in # this case the ra and 90 - dec of the reference point. dec = DDEGTORAD(90.0d0 - FC_W(fc,FC_IDEC(fc))) # Determine the native longitude of the pole of the celestial # coordinate system corresponding to the FITS keyword LONGPOLE. # This number has no default and should normally be set to 180 # degrees. Search both axes for this quantity. FC_LONGP(fc) = DDEGTORAD(180.0d0) # Precompute the trigomometric functions used by the spherical geometry # code to improve efficiency. FC_COLATP(fc) = dec FC_COSLATP(fc) = cos(dec) FC_SINLATP(fc) = sin(dec) # Fetch the RO projection parameter which is the radius of the # generating sphere for the projection. If RO is absent which # is the usual case set it to 180 / PI. Search both axes for # this quantity. FC_RODEG(fc) = 180.0d0/DPI szatstr = SZ_LINE # Fetch the longitude correction surface. Note that the attribute # string may be of any length so the length of atvalue may have # to be adjusted. FC_LNGCOR(fc) = NULL # Fetch the latitude correction surface. Note that the attribute # string may be of any length so the length of atvalue may have # to be adjusted. FC_LATCOR(fc) = NULL # Read through the fits header once more and pick up the PV matrix # cards. Read the values and store them, keeping track of what is # the highest order coefficient. With this projection only the dec # axis coefficients matter. Technically we can have up to 99 # coefficients. But we restrict this to 10 for the moment. maxorder = -1 idb = idb_open(im,ualen) compare[1] = 'P' compare[2] = 'V' i = itoc(FC_IDEC(fc),compare[3],1) compare[4] = '_' while (idb_nextcard(idb,rp) != EOF) { match = true do i = 0,3 { if (Memc[rp+i] != compare[i+1]) { match = false break; } } if (! match) next if (! IS_DIGIT(Memc[rp+4])) next index = TO_INTEG(Memc[rp+4]) do i = 5,7 { if (! IS_DIGIT(Memc[rp+i])) break else index = 10*index + TO_INTEG(Memc[rp+i]) } if (index > 9) next ip = IDB_STARTVALUE if (ctod(Memc[rp],ip,dval) <= 0) dval = 0.0d0 if (index > maxorder) maxorder = index FC_PC(fc,index) = dval } call idb_close(idb) # If all the coefficients are 0.0 the polynomial is undefined. if (maxorder < 0) { call sfree (sp) call error (0, "WFT_ZPN_INIT: The polynomial is undefined") } # Determine the number of coefficients. FC_NP(fc) = double(maxorder) np = maxorder if (np >= 3) { # Find the point of inflection closest to the pole. zd1 = 0.0d0 d1 = FC_PC(fc,1) if (d1 <= 0.0d0) { call sfree (sp) call error (0, "WFT_ZPN_INIT: The point of inflection does not exist") } # Find the point where the derivative first goes negative. do i = 1, 180 { zd2 = DPI * double (i) / 180.0d0 d2 = 0.0d0 do j = np, 1, -1 d2 = d2 * zd2 + j * FC_PC(fc,j) if (d2 <= 0.0d0) break zd1 = zd2 d1 = d2 } # Find where the derivative is 0. if (d2 <= 0.0d0) { do i = 1, 10 { zd = zd1 - d1 * (zd2 - zd1) / (d2 - d1) d = 0.0d0 do j = np, 1, -1 d = d * zd + j * FC_PC(fc,j) if (abs(d) < tol) break if (d < 0.0d0) { zd2 = zd d2 = d } else { zd1 = zd d1 = d } } # No negative derivative. } else zd = DPI r = 0.0d0 do j = np, 0, -1 r = r * zd + FC_PC(fc,j) FC_ZD(fc) = zd FC_R(fc) = r } # Set the spherical trigonometric tolerance. FC_SPHTOL(fc) = 1.0d-5 # Set the bad coordinate value. FC_BADCVAL(fc) = INDEFD # Free working space. call sfree (sp) end # WF_ZPN_FWD -- Forward transform (physical to world) for the zenithal / # azimuthal polynomial projection. procedure wf_zpn_fwd (fc, p, w) pointer fc #I pointer to FC descriptor double p[2] #I physical coordinates (x, y) double w[2] #O world coordinates (ra, dec) int ira, idec, i, j, k double x, y, r, zd, a, b, c, d, zd1, zd2, r1, r2, lambda, rt, tol double phi, theta, costhe, sinthe, dphi, cosphi, sinphi, ra, dec, dlng, z double wf_gseval() data tol/1.0d-13/ define phitheta_ 11 begin # Get the axis numbers. ira = FC_IRA(fc) idec = FC_IDEC(fc) # Compute native spherical coordinates PHI and THETA in degrees from # the projected coordinates. This is the projection part of the # computation. k = nint (FC_NP(fc)) if (FC_LNGCOR(fc) == NULL) x = p[ira] else x = p[ira] + wf_gseval (FC_LNGCOR(fc), p[ira], p[idec]) if (FC_LATCOR(fc) == NULL) y = p[idec] else y = p[idec] + wf_gseval (FC_LATCOR(fc), p[ira], p[idec]) r = sqrt (x * x + y * y) / FC_RODEG(fc) # Solve. # Constant no solution if (k < 1) { w[ira] = FC_BADCVAL(fc) w[idec] = FC_BADCVAL(fc) return # Linear. } else if (k == 1) { zd = (r - FC_PC(fc,0)) / FC_PC(fc,1) # Quadratic. } else if (k == 2) { a = FC_PC(fc,2) b = FC_PC(fc,1) c = FC_PC(fc,0) - r d = b * b - 4.0d0 * a * c if (d < 0.0d0) { w[ira] = FC_BADCVAL(fc) w[idec] = FC_BADCVAL(fc) return } d = sqrt (d) # Choose solution closet to the pole. zd1 = (-b + d) / (2.0d0 * a) zd2 = (-b - d) / (2.0d0 * a) zd = min (zd1, zd2) if (zd < -tol) zd = max (zd1, zd2) if (zd < 0.0d0) { if (zd < -tol) { w[ira] = FC_BADCVAL(fc) w[idec] = FC_BADCVAL(fc) return } zd = 0.0d0 } else if (zd > DPI) { if (zd > (DPI + tol)) { w[ira] = FC_BADCVAL(fc) w[idec] = FC_BADCVAL(fc) return } zd = DPI } # Higher order solve iteratively. } else { zd1 = 0.0d0 r1 = FC_PC(fc,0) zd2 = FC_ZD(fc) r2 = FC_R(fc) if (r < r1) { if (r < (r1 - tol)) { w[ira] = FC_BADCVAL(fc) w[idec] = FC_BADCVAL(fc) return } zd = zd1 goto phitheta_ } else if (r > r2) { if (r > (r2 + tol)) { w[ira] = FC_BADCVAL(fc) w[idec] = FC_BADCVAL(fc) return } zd = zd2 goto phitheta_ } else { do j = 1, 100 { lambda = (r2 - r) / (r2 - r1) if (lambda < 0.1d0) lambda = 0.1d0 else if (lambda > 0.9d0) lambda = 0.9d0 zd = zd2 - lambda * (zd2 - zd1) rt = 0.0d0 do i = k, 0, -1 rt = (rt * zd) + FC_PC(fc,i) if (rt < r) { if ((r - rt) < tol) goto phitheta_ r1 = rt zd1 = zd } else { if ((rt - r) < tol) goto phitheta_ r2 = rt zd2 = zd } if (abs(zd2 - zd1) < tol) goto phitheta_ } } } phitheta_ # Compute PHI. if (r == 0.0d0) phi = 0.0d0 else phi = atan2 (x, -y) # Compute THETA. theta = DHALFPI - zd # Compute the celestial coordinates RA and DEC from the native # coordinates PHI and THETA. This is the spherical geometry part # of the computation. costhe = cos (theta) sinthe = sin (theta) dphi = phi - FC_LONGP(fc) cosphi = cos (dphi) sinphi = sin (dphi) # Compute the RA. x = sinthe * FC_SINLATP(fc) - costhe * FC_COSLATP(fc) * cosphi if (abs (x) < FC_SPHTOL(fc)) x = -cos (theta + FC_COLATP(fc)) + costhe * FC_COSLATP(fc) * (1.0d0 - cosphi) y = -costhe * sinphi if (x != 0.0d0 || y != 0.0d0) { dlng = atan2 (y, x) } else { dlng = dphi + DPI } ra = FC_W(fc,ira) + DRADTODEG(dlng) # Normalize the RA. if (FC_W(fc,ira) >= 0.0d0) { if (ra < 0.0d0) ra = ra + 360.0d0 } else { if (ra > 0.0d0) ra = ra - 360.0d0 } if (ra > 360.0d0) ra = ra - 360.0d0 else if (ra < -360.0d0) ra = ra + 360.0d0 # Compute the DEC. if (mod (dphi, DPI) == 0.0d0) { dec = DRADTODEG(theta + cosphi * FC_COLATP(fc)) if (dec > 90.0d0) dec = 180.0d0 - dec if (dec < -90.0d0) dec = -180.0d0 - dec } else { z = sinthe * FC_COSLATP(fc) + costhe * FC_SINLATP(fc) * cosphi if (abs(z) > 0.99d0) { if (z >= 0.0d0) dec = DRADTODEG(acos (sqrt(x * x + y * y))) else dec = DRADTODEG(-acos (sqrt(x * x + y * y))) } else dec = DRADTODEG(asin (z)) } # Store the results. w[ira] = ra w[idec] = dec end # WF_ZPN_INV -- Inverse transform (world to physical) for the zenithal / # azimuthal polynomial projection. procedure wf_zpn_inv (fc, w, p) pointer fc #I pointer to FC descriptor double w[2] #I input world (RA, DEC) coordinates double p[2] #I output physical coordinates int ira, idec, i, niter double ra, dec, cosdec, sindec, cosra, sinra, x, y, phi, theta, s, r, dphi, z double xm, ym, f, fx, fy, g, gx, gy, denom, dx, dy double wf_gseval(), wf_gsder() begin # Get the axes numbers. ira = FC_IRA(fc) idec = FC_IDEC(fc) # Compute the transformation from celestial coordinates RA and # DEC to native coordinates PHI and THETA. This is the spherical # geometry part of the transformation. ra = DDEGTORAD (w[ira] - FC_W(fc,ira)) dec = DDEGTORAD (w[idec]) cosra = cos (ra) sinra = sin (ra) cosdec = cos (dec) sindec = sin (dec) # Compute PHI. x = sindec * FC_SINLATP(fc) - cosdec * FC_COSLATP(fc) * cosra if (abs(x) < FC_SPHTOL(fc)) x = -cos (dec + FC_COLATP(fc)) + cosdec * FC_COSLATP(fc) * (1.0d0 - cosra) y = -cosdec * sinra if (x != 0.0d0 || y != 0.0d0) dphi = atan2 (y, x) else dphi = ra - DPI phi = FC_LONGP(fc) + dphi if (phi > DPI) phi = phi - DTWOPI else if (phi < -DPI) phi = phi + DTWOPI # Compute THETA. if (mod (ra, DPI) ==0.0) { theta = dec + cosra * FC_COLATP(fc) if (theta > DHALFPI) theta = DPI - theta if (theta < -DHALFPI) theta = -DPI - theta } else { z = sindec * FC_COSLATP(fc) + cosdec * FC_SINLATP(fc) * cosra if (abs (z) > 0.99d0) { if (z >= 0.0) theta = acos (sqrt(x * x + y * y)) else theta = -acos (sqrt(x * x + y * y)) } else theta = asin (z) } # Compute the transformation from native coordinates PHI and THETA # to projected coordinates X and Y. s = DHALFPI - theta r = 0.0d0 do i = 9, 0, -1 r = r * s + FC_PC(fc,i) r = FC_RODEG(fc) * r if (FC_LNGCOR(fc) == NULL && FC_LATCOR(fc) == NULL) { p[ira] = r * sin (phi) p[idec] = -r * cos (phi) } else { xm = r * sin (phi) ym = -r * cos (phi) x = xm y = ym niter = 0 repeat { if (FC_LNGCOR(fc) != NULL) { f = x + wf_gseval (FC_LNGCOR(fc), x, y) - xm fx = wf_gsder (FC_LNGCOR(fc), x, y, 1, 0) fx = 1.0 + fx fy = wf_gsder (FC_LNGCOR(fc), x, y, 0, 1) } else { f = x - xm fx = 1.0 fy = 0.0 } if (FC_LATCOR(fc) != NULL) { g = y + wf_gseval (FC_LATCOR(fc), x, y) - ym gx = wf_gsder (FC_LATCOR(fc), x, y, 1, 0) gy = wf_gsder (FC_LATCOR(fc), x, y, 0, 1) gy = 1.0 + gy } else { g = y - ym gx = 0.0 gy = 1.0 } denom = fx * gy - fy * gx if (denom == 0.0d0) break dx = (-f * gy + g * fy) / denom dy = (-g * fx + f * gx) / denom x = x + max (-1.0D0, min (1.0D0, dx)) y = y + max (-1.0D0, min (1.0D0, dy)) if (max (abs (dx), abs (dy), abs(f), abs(g)) < 2.80d-7) break niter = niter + 1 } until (niter >= MAX_NITER) p[ira] = x p[idec] = y } end # WF_ZPN_DESTROY -- Free up the distortion surface pointers. procedure wf_zpn_destroy (fc) pointer fc #I pointer to the FC descriptor begin if (FC_LNGCOR(fc) != NULL) call wf_gsclose (FC_LNGCOR(fc)) if (FC_LATCOR(fc) != NULL) call wf_gsclose (FC_LATCOR(fc)) end sptable-1.0.pre20180612/src/mwcs/wfzpx.x000066400000000000000000000434751331023215600175350ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include "mwcs.h" .help WFZPX .nf ------------------------------------------------------------------------- # WFZPX -- WCS function driver for the zenithal / azimuthal polynomial # projection. Driver routines: FN_INIT wf_zpx_init (fc, dir) FN_DESTROY wf_zpx_destroy (fc) FN_FWD wf_zpx_fwd (fc, v1, v2) FN_INV wf_zpx_inv (fc, v1, v2) .endhelp -------------------------------------------------------------------- define MAX_NITER 20 # Driver specific fields of function call (FC) descriptor. define FC_LNGCOR Memi[$1+FCU] # RA axis correction define FC_LATCOR Memi[$1+FCU+1] # DEC axis correction define FC_IRA Memi[$1+FCU+2] # RA axis (1 or 2) define FC_IDEC Memi[$1+FCU+3] # DEC axis (1 or 2) define FC_NP Memd[P2D($1+FCU+4)] # poly order (0-9) define FC_LONGP Memd[P2D($1+FCU+6)] # LONGPOLE (rads) define FC_COLATP Memd[P2D($1+FCU+8)] # (90 - DEC) (rads) define FC_COSLATP Memd[P2D($1+FCU+10)] # cosine (90 - DEC) define FC_SINLATP Memd[P2D($1+FCU+12)] # sine (90 - DEC) define FC_SPHTOL Memd[P2D($1+FCU+14)] # trig tolerance define FC_PC Memd[P2D($1+FCU+16)+($2)] # poly coefficients (9) define FC_RODEG Memd[P2D($1+FCU+36)] # RO (degs) define FC_ZD Memd[P2D($1+FCU+38)] # colat of FIP (degs) define FC_R Memd[P2D($1+FCU+40)] # radius of FIP (degs) define FC_BADCVAL Memd[P2D($1+FCU+42)] # Bad coordinate value define FC_W Memd[P2D($1+FCU+44)+($2)-1] # CRVAL (axis 1 and 2) # WF_ZPX_INIT -- Initialize the zenithal/azimuthal polynomial forward or inverse # transform. Initialization for this transformation consists of, determining # which axis is RA / LON and which is DEC / LAT, computing the celestial # longitude and colatitude of the native pole, reading in the the native # longitude of the pole of the celestial coordinate system LONGPOLE from the # attribute list, precomputing the Euler angles and various intermediary # functions of the reference coordinates, reading in the projection parameter # RO from the attribute list, reading in up to ten polynomial coefficients, # and, for polynomial orders greater than 2 computing the colatitude and radius # of the first point of inflection. If LONGPOLE is undefined then a value of # 180.0 degrees is assumed. If RO is undefined a value of 180.0 / PI is # assumed. If the polynomial coefficients are all zero then an error condition # is posted. If the order of the polynomial is 2 or greater and there is no # point of inflection an error condition is posted. The ZPX projection with # an order of 1 and 0th and 1st coefficients of 0.0 and 1.0 respectively is # equivalent to the ARC projtection. In order to determine the axis order, # the parameter "axtype={ra|dec} {xlon|xlat}" must have been set in the # attribute list for the function. The LONGPOLE and RO parameters may be set # in either or both of the axes attribute lists, but the value in the RA axis # attribute list takes precedence. procedure wf_zpx_init (fc, dir) pointer fc #I pointer to FC descriptor int dir #I direction of transform int i, j, np, szatstr double dec, zd1, d1, zd2, d2, zd, d, r, tol pointer sp, atname, atvalue, ct, mw, wp, wv int ctod(), strlen() pointer wf_gsopen() data tol/1.0d-13/ errchk wf_decaxis(), mw_gwattrs() begin # Allocate space for the attribute string. call smark (sp) call salloc (atname, SZ_ATNAME, TY_CHAR) call salloc (atvalue, SZ_LINE, TY_CHAR) # Get the required mwcs pointers. ct = FC_CT(fc) mw = CT_MW(ct) wp = FC_WCS(fc) # Determine which is the DEC axis, and hence the axis order. call wf_decaxis (fc, FC_IRA(fc), FC_IDEC(fc)) # Get the value of W for each axis, i.e. the world coordinates at # the reference point. wv = MI_DBUF(mw) + WCS_W(wp) - 1 do i = 1, 2 FC_W(fc,i) = Memd[wv+CT_AXIS(ct,FC_AXIS(fc,i))-1] # Get the celestial coordinates of the native pole which are in # this case the ra and 90 - dec of the reference point. dec = DDEGTORAD(90.0d0 - FC_W(fc,FC_IDEC(fc))) # Determine the native longitude of the pole of the celestial # coordinate system corresponding to the FITS keyword LONGPOLE. # This number has no default and should normally be set to 180 # degrees. Search both axes for this quantity. iferr { call mw_gwattrs (mw, FC_IRA(fc), "longpole", Memc[atvalue], SZ_LINE) } then { iferr { call mw_gwattrs (mw, FC_IDEC(fc), "longpole", Memc[atvalue], SZ_LINE) } then { FC_LONGP(fc) = 180.0d0 } else { i = 1 if (ctod (Memc[atvalue], i, FC_LONGP(fc)) <= 0) FC_LONGP(fc) = 180.0d0 if (IS_INDEFD(FC_LONGP(fc))) FC_LONGP(fc) = 180.0d0 } } else { i = 1 if (ctod (Memc[atvalue], i, FC_LONGP(fc)) <= 0) FC_LONGP(fc) = 180.0d0 if (IS_INDEFD(FC_LONGP(fc))) FC_LONGP(fc) = 180.0d0 } FC_LONGP(fc) = DDEGTORAD(FC_LONGP(fc)) # Precompute the trigomometric functions used by the spherical geometry # code to improve efficiency. FC_COLATP(fc) = dec FC_COSLATP(fc) = cos(dec) FC_SINLATP(fc) = sin(dec) # Fetch the RO projection parameter which is the radius of the # generating sphere for the projection. If RO is absent which # is the usual case set it to 180 / PI. Search both axes for # this quantity. iferr { call mw_gwattrs (mw, FC_IRA(fc), "ro", Memc[atvalue], SZ_LINE) } then { iferr { call mw_gwattrs (mw, FC_IDEC(fc), "ro", Memc[atvalue], SZ_LINE) } then { FC_RODEG(fc) = 180.0d0 / DPI } else { i = 1 if (ctod (Memc[atvalue], i, FC_RODEG(fc)) <= 0) FC_RODEG(fc) = 180.0d0 / DPI } } else { i = 1 if (ctod (Memc[atvalue], i, FC_RODEG(fc)) <= 0) FC_RODEG(fc) = 180.0d0 / DPI } szatstr = SZ_LINE # Fetch the longitude correction surface. Note that the attribute # string may be of any length so the length of atvalue may have # to be adjusted. iferr { repeat { call mw_gwattrs (mw, FC_IRA(fc), "lngcor", Memc[atvalue], szatstr) if (strlen (Memc[atvalue]) < szatstr) break szatstr = szatstr + SZ_LINE call realloc (atvalue, szatstr, TY_CHAR) } } then { FC_LNGCOR(fc) = NULL } else { FC_LNGCOR(fc) = wf_gsopen (Memc[atvalue]) } # Fetch the latitude correction surface. Note that the attribute # string may be of any length so the length of atvalue may have # to be adjusted. iferr { repeat { call mw_gwattrs (mw, FC_IDEC(fc), "latcor", Memc[atvalue], szatstr) if (strlen (Memc[atvalue]) < szatstr) break szatstr = szatstr + SZ_LINE call realloc (atvalue, szatstr, TY_CHAR) } } then { FC_LATCOR(fc) = NULL } else { FC_LATCOR(fc) = wf_gsopen (Memc[atvalue]) } # Fetch the projection coefficients do j = 0, 9 { call sprintf (Memc[atname], SZ_ATNAME, "projp%d") call pargi (j) iferr { call mw_gwattrs (mw, FC_IRA(fc), Memc[atname], Memc[atvalue], SZ_LINE) } then { iferr { call mw_gwattrs (mw, FC_IDEC(fc), Memc[atname], Memc[atvalue], SZ_LINE) } then { FC_PC(fc,j) = 0.0d0 } else { i = 1 if (ctod (Memc[atvalue], i, FC_PC(fc,j)) <= 0) FC_PC(fc,j) = 0.0d0 } } else { i = 1 if (ctod (Memc[atvalue], i, FC_PC(fc,j)) <= 0) FC_PC(fc,j) = 0.0d0 } } # Determine the order of the polynomial by finding the first # non-zero coefficient. do j = 9, 0, -1 { if (FC_PC(fc,j) != 0.0d0) break } # If all the coefficients are 0.0 the polynomial is undefined. if (j < 0) { call sfree (sp) call error (0, "WFT_ZPX_INIT: The polynomial is undefined") } # Determine the number of coefficients. FC_NP(fc) = double (j) np = j if (np >= 3) { # Find the point of inflection closest to the pole. zd1 = 0.0d0 d1 = FC_PC(fc,1) if (d1 <= 0.0d0) { call sfree (sp) call error (0, "WFT_ZPX_INIT: The point of inflection does not exist") } # Find the point where the derivative first goes negative. do i = 1, 180 { zd2 = DPI * double (i) / 180.0d0 d2 = 0.0d0 do j = np, 1, -1 d2 = d2 * zd2 + j * FC_PC(fc,j) if (d2 <= 0.0d0) break zd1 = zd2 d1 = d2 } # Find where the derivative is 0. if (d2 <= 0.0d0) { do i = 1, 10 { zd = zd1 - d1 * (zd2 - zd1) / (d2 - d1) d = 0.0d0 do j = np, 1, -1 d = d * zd + j * FC_PC(fc,j) if (abs(d) < tol) break if (d < 0.0d0) { zd2 = zd d2 = d } else { zd1 = zd d1 = d } } # No negative derivative. } else zd = DPI r = 0.0d0 do j = np, 0, -1 r = r * zd + FC_PC(fc,j) FC_ZD(fc) = zd FC_R(fc) = r } # Set the spherical trigonometric tolerance. FC_SPHTOL(fc) = 1.0d-5 # Set the bad coordinate value. FC_BADCVAL(fc) = INDEFD # Free working space. call sfree (sp) end # WF_ZPX_FWD -- Forward transform (physical to world) for the zenithal / # azimuthal polynomial projection. procedure wf_zpx_fwd (fc, p, w) pointer fc #I pointer to FC descriptor double p[2] #I physical coordinates (x, y) double w[2] #O world coordinates (ra, dec) int ira, idec, i, j, k double x, y, r, zd, a, b, c, d, zd1, zd2, r1, r2, lambda, rt, tol double phi, theta, costhe, sinthe, dphi, cosphi, sinphi, ra, dec, dlng, z double wf_gseval() data tol/1.0d-13/ define phitheta_ 11 begin # Get the axis numbers. ira = FC_IRA(fc) idec = FC_IDEC(fc) # Compute native spherical coordinates PHI and THETA in degrees from # the projected coordinates. This is the projection part of the # computation. k = nint (FC_NP(fc)) if (FC_LNGCOR(fc) == NULL) x = p[ira] else x = p[ira] + wf_gseval (FC_LNGCOR(fc), p[ira], p[idec]) if (FC_LATCOR(fc) == NULL) y = p[idec] else y = p[idec] + wf_gseval (FC_LATCOR(fc), p[ira], p[idec]) r = sqrt (x * x + y * y) / FC_RODEG(fc) # Solve. # Constant no solution if (k < 1) { w[ira] = FC_BADCVAL(fc) w[idec] = FC_BADCVAL(fc) return # Linear. } else if (k == 1) { zd = (r - FC_PC(fc,0)) / FC_PC(fc,1) # Quadratic. } else if (k == 2) { a = FC_PC(fc,2) b = FC_PC(fc,1) c = FC_PC(fc,0) - r d = b * b - 4.0d0 * a * c if (d < 0.0d0) { w[ira] = FC_BADCVAL(fc) w[idec] = FC_BADCVAL(fc) return } d = sqrt (d) # Choose solution closet to the pole. zd1 = (-b + d) / (2.0d0 * a) zd2 = (-b - d) / (2.0d0 * a) zd = min (zd1, zd2) if (zd < -tol) zd = max (zd1, zd2) if (zd < 0.0d0) { if (zd < -tol) { w[ira] = FC_BADCVAL(fc) w[idec] = FC_BADCVAL(fc) return } zd = 0.0d0 } else if (zd > DPI) { if (zd > (DPI + tol)) { w[ira] = FC_BADCVAL(fc) w[idec] = FC_BADCVAL(fc) return } zd = DPI } # Higher order solve iteratively. } else { zd1 = 0.0d0 r1 = FC_PC(fc,0) zd2 = FC_ZD(fc) r2 = FC_R(fc) if (r < r1) { if (r < (r1 - tol)) { w[ira] = FC_BADCVAL(fc) w[idec] = FC_BADCVAL(fc) return } zd = zd1 goto phitheta_ } else if (r > r2) { if (r > (r2 + tol)) { w[ira] = FC_BADCVAL(fc) w[idec] = FC_BADCVAL(fc) return } zd = zd2 goto phitheta_ } else { do j = 1, 100 { lambda = (r2 - r) / (r2 - r1) if (lambda < 0.1d0) lambda = 0.1d0 else if (lambda > 0.9d0) lambda = 0.9d0 zd = zd2 - lambda * (zd2 - zd1) rt = 0.0d0 do i = k, 0, -1 rt = (rt * zd) + FC_PC(fc,i) if (rt < r) { if ((r - rt) < tol) goto phitheta_ r1 = rt zd1 = zd } else { if ((rt - r) < tol) goto phitheta_ r2 = rt zd2 = zd } if (abs(zd2 - zd1) < tol) goto phitheta_ } } } phitheta_ # Compute PHI. if (r == 0.0d0) phi = 0.0d0 else phi = atan2 (x, -y) # Compute THETA. theta = DHALFPI - zd # Compute the celestial coordinates RA and DEC from the native # coordinates PHI and THETA. This is the spherical geometry part # of the computation. costhe = cos (theta) sinthe = sin (theta) dphi = phi - FC_LONGP(fc) cosphi = cos (dphi) sinphi = sin (dphi) # Compute the RA. x = sinthe * FC_SINLATP(fc) - costhe * FC_COSLATP(fc) * cosphi if (abs (x) < FC_SPHTOL(fc)) x = -cos (theta + FC_COLATP(fc)) + costhe * FC_COSLATP(fc) * (1.0d0 - cosphi) y = -costhe * sinphi if (x != 0.0d0 || y != 0.0d0) { dlng = atan2 (y, x) } else { dlng = dphi + DPI } ra = FC_W(fc,ira) + DRADTODEG(dlng) # Normalize the RA. if (FC_W(fc,ira) >= 0.0d0) { if (ra < 0.0d0) ra = ra + 360.0d0 } else { if (ra > 0.0d0) ra = ra - 360.0d0 } if (ra > 360.0d0) ra = ra - 360.0d0 else if (ra < -360.0d0) ra = ra + 360.0d0 # Compute the DEC. if (mod (dphi, DPI) == 0.0d0) { dec = DRADTODEG(theta + cosphi * FC_COLATP(fc)) if (dec > 90.0d0) dec = 180.0d0 - dec if (dec < -90.0d0) dec = -180.0d0 - dec } else { z = sinthe * FC_COSLATP(fc) + costhe * FC_SINLATP(fc) * cosphi if (abs(z) > 0.99d0) { if (z >= 0.0d0) dec = DRADTODEG(acos (sqrt(x * x + y * y))) else dec = DRADTODEG(-acos (sqrt(x * x + y * y))) } else dec = DRADTODEG(asin (z)) } # Store the results. w[ira] = ra w[idec] = dec end # WF_ZPX_INV -- Inverse transform (world to physical) for the zenithal / # azimuthal polynomial projection. procedure wf_zpx_inv (fc, w, p) pointer fc #I pointer to FC descriptor double w[2] #I input world (RA, DEC) coordinates double p[2] #I output physical coordinates int ira, idec, i, niter double ra, dec, cosdec, sindec, cosra, sinra, x, y, phi, theta, s, r, dphi, z double xm, ym, f, fx, fy, g, gx, gy, denom, dx, dy, dmax double wf_gseval(), wf_gsder() begin # Get the axes numbers. ira = FC_IRA(fc) idec = FC_IDEC(fc) # Compute the transformation from celestial coordinates RA and # DEC to native coordinates PHI and THETA. This is the spherical # geometry part of the transformation. ra = DDEGTORAD (w[ira] - FC_W(fc,ira)) dec = DDEGTORAD (w[idec]) cosra = cos (ra) sinra = sin (ra) cosdec = cos (dec) sindec = sin (dec) # Compute PHI. x = sindec * FC_SINLATP(fc) - cosdec * FC_COSLATP(fc) * cosra if (abs(x) < FC_SPHTOL(fc)) x = -cos (dec + FC_COLATP(fc)) + cosdec * FC_COSLATP(fc) * (1.0d0 - cosra) y = -cosdec * sinra if (x != 0.0d0 || y != 0.0d0) dphi = atan2 (y, x) else dphi = ra - DPI phi = FC_LONGP(fc) + dphi if (phi > DPI) phi = phi - DTWOPI else if (phi < -DPI) phi = phi + DTWOPI # Compute THETA. if (mod (ra, DPI) ==0.0) { theta = dec + cosra * FC_COLATP(fc) if (theta > DHALFPI) theta = DPI - theta if (theta < -DHALFPI) theta = -DPI - theta } else { z = sindec * FC_COSLATP(fc) + cosdec * FC_SINLATP(fc) * cosra if (abs (z) > 0.99d0) { if (z >= 0.0) theta = acos (sqrt(x * x + y * y)) else theta = -acos (sqrt(x * x + y * y)) } else theta = asin (z) } # Compute the transformation from native coordinates PHI and THETA # to projected coordinates X and Y. s = DHALFPI - theta r = 0.0d0 do i = 9, 0, -1 r = r * s + FC_PC(fc,i) r = FC_RODEG(fc) * r if (FC_LNGCOR(fc) == NULL && FC_LATCOR(fc) == NULL) { p[ira] = r * sin (phi) p[idec] = -r * cos (phi) } else { xm = r * sin (phi) ym = -r * cos (phi) x = xm y = ym niter = 0 dmax = 30. / 3600. repeat { if (FC_LNGCOR(fc) != NULL) { f = x + wf_gseval (FC_LNGCOR(fc), x, y) - xm fx = wf_gsder (FC_LNGCOR(fc), x, y, 1, 0) fx = 1.0 + fx fy = wf_gsder (FC_LNGCOR(fc), x, y, 0, 1) } else { f = x - xm fx = 1.0 fy = 0.0 } if (FC_LATCOR(fc) != NULL) { g = y + wf_gseval (FC_LATCOR(fc), x, y) - ym gx = wf_gsder (FC_LATCOR(fc), x, y, 1, 0) gy = wf_gsder (FC_LATCOR(fc), x, y, 0, 1) gy = 1.0 + gy } else { g = y - ym gx = 0.0 gy = 1.0 } denom = fx * gy - fy * gx if (denom == 0.0d0) break dx = (-f * gy + g * fy) / denom dy = (-g * fx + f * gx) / denom x = x + max (-dmax, min (dmax, dx)) y = y + max (-dmax, min (dmax, dy)) if (max (abs (dx), abs (dy), abs(f), abs(g)) < 2.80d-7) break niter = niter + 1 } until (niter >= MAX_NITER) p[ira] = x p[idec] = y } end # WF_ZPX_DESTROY -- Free up the distortion surface pointers. procedure wf_zpx_destroy (fc) pointer fc #I pointer to the FC descriptor begin if (FC_LNGCOR(fc) != NULL) call wf_gsclose (FC_LNGCOR(fc)) if (FC_LATCOR(fc) != NULL) call wf_gsclose (FC_LATCOR(fc)) end sptable-1.0.pre20180612/src/mwcs/zzdebug.x000066400000000000000000000270361331023215600200240ustar00rootroot00000000000000# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include include include "imwcs.h" task simple = t_simple, wcs = t_wcs, float = t_float, imtest = t_imtest, inv = t_inv, save = t_save, load = t_load define SAVELEN 10240 # SIMPLE -- Simple test of the most common interface routines. procedure t_simple() pointer mw, ct, bp int buflen, nchars real ltm[2,2], ltv[2], x1,y1, x2,y2 pointer mw_open(), mw_sctran() int mw_save() begin call memchk() mw = mw_open (NULL, 2) ltm[1,1] = 1.0; ltm[1,2] = 0.0 ltm[2,1] = 0.0; ltm[2,2] = 1.0 ltv[1] = 0.0; ltv[2] = 0.0 call mw_sltermr (mw, ltm, ltv, 2) ct = mw_sctran (mw, "logical", "physical", 0) x1 = 0.5; y1 = 0.5 call mw_c2tranr (ct, x1, y1, x2, y2) call eprintf ("[%g,%g] -> [%g,%g]\n") call pargr (x1); call pargr (y1) call pargr (x2); call pargr (y2) bp = NULL nchars = mw_save (mw, bp, buflen) call mw_load (mw, bp) call eprintf ("save/load, save buflen = %d chars, nchars=%d\n") call pargi (buflen) call pargi (nchars) ct = mw_sctran (mw, "logical", "physical", 0) x1 = 0.5; y1 = 0.5 call mw_c2tranr (ct, x1, y1, x2, y2) call eprintf ("[%g,%g] -> [%g,%g]\n") call pargr (x1); call pargr (y1) call pargr (x2); call pargr (y2) call mw_close (mw) end # WCS -- Test the creation and use of a world coordinate system. procedure t_wcs() pointer mw, ct1, ct2, ct3 real pv[100], wv[100] real theta, center[2], scale[2], shift[2] real ltm[3,3], ltv[3], x1,y1, x2,y2 double r[3], w[3], cd[3,3] double l2m[2,2], l2v_1[2], l2v_2[2], d_theta int ndim, axes[3], naxes, npts, i pointer mw_open(), mw_sctran() real mw_c1tranr() begin call memchk() ndim = 3 # Create a unitary, 3 dim WCS. mw = mw_open (NULL, ndim) # Examine the Lterm. call plterm (mw, ltm, ltv, ndim) # Apply a transform to the first 2 axes. d_theta = DEGTORAD(30.0D0) l2m[1,1] = cos(d_theta); l2m[2,1] = sin(d_theta) l2m[1,2] = -sin(d_theta); l2m[2,2] = cos(d_theta) l2v_1[1] = 0.0; l2v_1[2] = 0.0 l2v_2[1] = 10.0; l2v_2[2] = 20.0 #l2v_2[1] = 0.0; l2v_2[2] = 0.0 #call mw_translated (mw, l2v_1, l2m, l2v_2, 2) theta = d_theta; call aclrr (center, 2) call mw_rotate (mw, theta, center, 3B) shift[1] = 10.0; shift[2] = 20.0 call mw_shift (mw, shift, 3B) scale[1] = 4.0; scale[2] = 0.2 call mw_scale (mw, scale, 3B) # Examine the Lterm. call plterm (mw, ltm, ltv, ndim) # Apply the inverse transform. d_theta = -d_theta l2m[1,1] = cos(d_theta); l2m[2,1] = sin(d_theta) l2m[1,2] = -sin(d_theta); l2m[2,2] = cos(d_theta) call amovd (l2v_2, l2v_1, 2); call aclrd (l2v_2, 2) #call mw_translated (mw, l2v_1, l2m, l2v_2, 2) scale[1] = 1.0/scale[1]; scale[2] = 1.0/scale[2] call mw_scale (mw, scale, 3B) shift[1] = -shift[1]; shift[2] = -shift[2] call mw_shift (mw, shift, 3B) call mw_rotate (mw, -theta, center, 3B) # Examine the Lterm. call plterm (mw, ltm, ltv, ndim) # Add a WCS. call mw_newsystem (mw, "sky", 3) cd[1,1] = .01D0; cd[2,1] = 0; cd[3,1] = 0 cd[1,2] = 0; cd[2,2] = .01D0; cd[3,2] = 0 cd[1,3] = 0; cd[2,3] = 0; cd[3,3] = 1 r[1] = 0; r[2] = 0; r[3] = 0 w[1] = 100; w[2] = 20; w[3] = 0 # Put a tangent projection on axis 1&2. call mw_swtermd (mw, r, w, cd, ndim) axes[1] = 1; axes[2] = 2; naxes = 2 call mw_swtype (mw, axes, naxes, "tan", "axis 1: axtype=ra axis 2: axtype=dec") # Put a simple sampled curve on axis 3. call mw_swtype (mw, 3, 1, "sampled", "") npts = 10 do i = 1, npts { pv[i] = i wv[i] = i * 2 } call mw_swsampr (mw, 3, pv, wv, npts) # Try a transform on the axis 1-2 plane. ct1 = mw_sctran (mw, "logical", "sky", 3B) x1 = 50.0; y1 = -20.0 call mw_c2tranr (ct1, x1,y1, x2,y2) call eprintf ("[%g,%g]logical -> [%g,%g]sky\n") call pargr (x1); call pargr (y1) call pargr (x2); call pargr (y2) # Check out the reverse transform. ct2 = mw_sctran (mw, "sky", "logical", 3B) call mw_c2tranr (ct2, x2,y2, x1,y1) call eprintf ("[%g,%g]sky -> [%g,%g]logical\n") call pargr (x2); call pargr (y2) call pargr (x1); call pargr (y1) # Try evaluating the sampled axis. ct3 = mw_sctran (mw, "physical", "sky", 4B) x1 = 4.5; x2 = mw_c1tranr (ct3, x1) call eprintf ("axis 3: %gL -> %gS\n") call pargr (x1) call pargr (x2) call mw_close (mw) end # PLTERM -- Print the Lterm. procedure plterm (mw, ltm, ltv, ndim) pointer mw real ltm[ndim,ndim] real ltv[ndim] int ndim int i, j begin # Examine the Lterm. call mw_gltermr (mw, ltm, ltv, ndim) call eprintf ("----- lterm -----\n") do j = 1, ndim { do i = 1, ndim { call eprintf (" %8.3f") call pargr (ltm[i,j]) } call eprintf (" : %8.3f\n") call pargr (ltv[j]) } end # IMTEST -- Test the image header WCS save and load facilities. procedure t_imtest() double cd[3,3], r[3], w[3] int ndim, naxes, axes[2], npts, i pointer mw, ct1, ct2, ct3, im, iw, cp real theta, center[3], shift[3], scale[3], x1,y1, x2,y2, pv[10], wv[10] pointer mw_open(), mw_sctran(), immap(), iw_rfits() real mw_c1tranr() begin call memchk() ndim = 3 # Create a unitary, 3 dim WCS. mw = mw_open (NULL, ndim) # Apply a transform to the first 2 axes. call aclrr (center, 2) theta = DEGTORAD(30.0D0) shift[1] = 10.0; shift[2] = 20.0 scale[1] = 4.0; scale[2] = 0.2 call mw_rotate (mw, theta, center, 3B) call mw_shift (mw, shift, 3B) call mw_scale (mw, scale, 3B) # Add a WCS. call mw_newsystem (mw, "sky", 3) cd[1,1] = .01D0; cd[2,1] = 0; cd[3,1] = 0 cd[1,2] = 0; cd[2,2] = .01D0; cd[3,2] = 0 cd[1,3] = 0; cd[2,3] = 0; cd[3,3] = 1 r[1] = 0; r[2] = 0; r[3] = 0 w[1] = 100; w[2] = 20; w[3] = 0 # Put a tangent projection on axis 1&2. call mw_swtermd (mw, r, w, cd, ndim) axes[1] = 1; axes[2] = 2; naxes = 2 call mw_swtype (mw, axes, naxes, "tan", "axis 1: axtype=ra axis 2: axtype=dec") # Put a simple sampled curve on axis 3. call mw_swtype (mw, 3, 1, "sampled", "") npts = 10 do i = 1, npts { pv[i] = i wv[i] = i * 2 } call mw_swsampr (mw, 3, pv, wv, npts) # Evaluate tests 1. # ----------------- # Try a transform on the axis 1-2 plane. ct1 = mw_sctran (mw, "logical", "sky", 3B) x1 = 50.0; y1 = -20.0 call mw_c2tranr (ct1, x1,y1, x2,y2) call eprintf ("[%g,%g]logical -> [%g,%g]sky\n") call pargr (x1); call pargr (y1) call pargr (x2); call pargr (y2) # Check out the reverse transform. ct2 = mw_sctran (mw, "sky", "logical", 3B) call mw_c2tranr (ct2, x2,y2, x1,y1) call eprintf ("[%g,%g]sky -> [%g,%g]logical\n") call pargr (x2); call pargr (y2) call pargr (x1); call pargr (y1) # Try evaluating the sampled axis. ct3 = mw_sctran (mw, "physical", "sky", 4B) x1 = 4.5; x2 = mw_c1tranr (ct3, x1) call eprintf ("axis 3: %gL -> %gS\n") call pargr (x1) call pargr (x2) # Test image header save/load. call eprintf ("save WCS in image header...\n") #iferr (call imdelete ("pix")) # ; im = immap ("pix", READ_WRITE, 0) call mw_saveim (mw, im) # See what we saved. call printf ("-------- IMAGE HEADER --------\n") iw = iw_rfits (mw, im, RF_REFERENCE) do i = 1, IW_NCARDS(iw) { cp = IW_CARD(iw,i) call write (STDOUT, Memc[C_RP(cp)], 80) call putci (STDOUT, '\n') } call iw_cfits (iw) call printf ("------------------------------\n") call flush (STDOUT) # Reload saved header. call mw_loadim (mw, im) # Evaluate tests 2. # ----------------- # Try a transform on the axis 1-2 plane. ct1 = mw_sctran (mw, "logical", "sky", 3B) x1 = 50.0; y1 = -20.0 call mw_c2tranr (ct1, x1,y1, x2,y2) call eprintf ("[%g,%g]logical -> [%g,%g]sky\n") call pargr (x1); call pargr (y1) call pargr (x2); call pargr (y2) # Check out the reverse transform. ct2 = mw_sctran (mw, "sky", "logical", 3B) call mw_c2tranr (ct2, x2,y2, x1,y1) call eprintf ("[%g,%g]sky -> [%g,%g]logical\n") call pargr (x2); call pargr (y2) call pargr (x1); call pargr (y1) # Try evaluating the sampled axis. ct3 = mw_sctran (mw, "physical", "sky", 4B) x1 = 4.5; x2 = mw_c1tranr (ct3, x1) call eprintf ("axis 3: %gL -> %gS\n") call pargr (x1) call pargr (x2) call mw_close (mw) end # INV -- Test matrix inversion. procedure t_inv() int i, j double a[3,3], b[3,3], c[3,3] long seed, clktime() real urand() begin # Construct the identity matrix. do i = 1, 3 { do j = 1, 3 a[i,j] = 0.0 a[i,i] = 1.0 } # Invert the matrix. call mw_invertd (a, b, 3) # Print the inverse. call printf ("inverse of identity matrix:\n") do i = 1, 3 { do j = 1, 3 { call printf (" %20.*f") call pargi (NDIGITS_DP) call pargd (b[i,j]) } call printf ("\n") } # Compute a random matrix. seed = clktime(0) do i = 1, 3 do j = 1, 3 a[i,j] = urand (seed) # Invert the matrix. call mw_invertd (a, b, 3) call mw_invertd (b, c, 3) # Print the difference of the original and the inverted inverse. call printf ("difference of inverse of random matrix:\n") do i = 1, 3 { do j = 1, 3 { call printf (" %20.*f") call pargi (NDIGITS_DP) call pargd (a[i,j] - c[i,j]) } call printf ("\n") } end # SAVE -- Save a test WCS to a file. procedure t_save() pointer mw, bp double cd[3,3], r[3], w[3] int ndim, naxes, axes[2], npts, buflen, nchars, fd, i real theta, center[3], shift[3], scale[3], pv[10], wv[10] int open(), mw_save pointer mw_open() begin ndim = 3 # Create a unitary, 3 dim WCS. mw = mw_open (NULL, ndim) # Apply a transform to the first 2 axes. call aclrr (center, 2) theta = DEGTORAD(30.0D0) shift[1] = 10.0; shift[2] = 20.0 scale[1] = 4.0; scale[2] = 0.2 call mw_rotate (mw, theta, center, 3B) call mw_shift (mw, shift, 3B) call mw_scale (mw, scale, 3B) # Add a WCS. call mw_newsystem (mw, "sky", 3) cd[1,1] = .01D0; cd[2,1] = 0; cd[3,1] = 0 cd[1,2] = 0; cd[2,2] = .01D0; cd[3,2] = 0 cd[1,3] = 0; cd[2,3] = 0; cd[3,3] = 1 r[1] = 0; r[2] = 0; r[3] = 0 w[1] = 100; w[2] = 20; w[3] = 0 # Put a tangent projection on axis 1&2. call mw_swtermd (mw, r, w, cd, ndim) axes[1] = 1; axes[2] = 2; naxes = 2 call mw_swtype (mw, axes, naxes, "tan", "axis 1: axtype=ra axis 2: axtype=dec") # Put a simple sampled curve on axis 3. call mw_swtype (mw, 3, 1, "sampled", "") npts = 10 do i = 1, npts { pv[i] = i wv[i] = i * 2 } call mw_swsampr (mw, 3, pv, wv, npts) # Display the new WCS. call mw_show (mw, STDOUT, 0) # Save to a file. bp = NULL; buflen = 0 nchars = mw_save (mw, bp, buflen) fd = open ("mwcs.sav", NEW_FILE, BINARY_FILE) call write (fd, Memc[bp], nchars) call close (fd) call mfree (bp, TY_CHAR) call mw_close (mw) end # LOAD -- Load a test WCS from a file. procedure t_load() pointer mw, bp int fd, nchars char fname[SZ_FNAME] int open(), read() pointer mw_open() begin call clgstr ("savefile", fname, SZ_FNAME) call malloc (bp, SAVELEN, TY_CHAR) # Open and read save file. fd = open (fname, READ_ONLY, BINARY_FILE) nchars = read (fd, Memc[bp], SAVELEN) call printf ("read %d chars from %s\n") call pargi (nchars) call pargstr (fname) mw = mw_open (NULL, 3) call mw_load (mw, bp) # Display the new WCS. call mw_show (mw, STDOUT, 0) call mw_close (mw) call mfree (bp, TY_CHAR) end # FLOAT -- Test single to double conversions. procedure t_float() real r double x begin x = sin(0.34567D0) r = 1.0 call achtrd (r, x, 1) call printf ("x = %g\n") call pargd (x) end # MEMCHK -- Enable runtime dynamic memory verification. System dependent, # should be commented out unless a Fortran callable MEMVER is available for # linking. procedure memchk() begin # call memver (2) end sptable-1.0.pre20180612/src/xonedspec/000077500000000000000000000000001331023215600171705ustar00rootroot00000000000000sptable-1.0.pre20180612/src/xonedspec/Revisions000066400000000000000000005205551331023215600211100ustar00rootroot00000000000000.help revisions Jun88 noao.onedspec .nf doc/deredden.hlp Added information about the range of validity of the extinction function. (4/9/01, Valdes) t_fitprof.x The input image was being unmmaped before the output image which can cause problems. (3/9/01, Valdes) splot/getimage.x The nline parameter was not being set to the current line which could cause the ')' and '(' to misbehave. (2/15/01, Valdes) doc/sarith.hlp The help said incorrectly that flux conservation was used. (1/17/01, Valdes) smw/smwsaveim.x smw/smwequispec.x The APNUM keywords change to AP when the aperture number is greater than 999. (11/8/00, Valdes) identify/iddb.x The user units string is now recorded. This is to allow velocity units to include the reference point. (5/4/00, Valdes) splot/eqwidthcp.x When x becomes large enough the parabola fitting routine has a divide by zero. The parabola fitting routine was converted to work in double, to check the x values for degeneracy, and to avoid the squares of large numbers. The calling routine was also modified to work in double. (2/15/00, Valdes) smw/smwonedspec.x smw/smwoldms.x Put an error check on imdelf. The list expansion should have expanded to only the header keywords present but for some undiagnosed reason sometimes the list expansion returned a non-existant keyword which wouod cause an error. (2/2/00) dispcor/dispcor.x The input linei argument should really be the aperture number needed to go back to pixel coordinates. The change was to use this value only to flag if the WCS is 1D (for long slit data) and otherwise to do what the procedure did before. (2/1/00, Valdes) dispcor/t_dispcor.x During changes for 2D dispcor the arguments for a routine changed and this was not reflected in the dc_global routines resulting in a segmentation violation when the global option is selected. (1/27/00, Valdes) dispcor/dcio.o Touched but not changes. (1/27/00, Valdes) getcalib.x t_standard.x standard.par lcalib.par splot.par doc/standard.hlp doc/lcalib.hlp doc/splot.hlp 1. The calibration files may now be blackbody curves scaled to a specified magnitude. 2. STANDARD displays the data and bandpasses in the units of the data rather than Angstroms. The changes were made to allow output in other untis but for now this has been disabled. (1/24/00, Valdes) t_sarith.x The WCS was set wrong when copying/extracting a region of a log-linear spectrum. (12/14/99, Valdes) ======= V2.11.3 ======= t_fitprof.x Fixed double/int mismatch in a min call. (11/22/99, Valdes) smw/mkpkg ecidentify/ecffit/mkpkg sensfunc/mkpkg splot/mkpkg mkpkg Added missing dependencies. (10/11/99, Valdes) t_fitprofs.x doc/fitprofs.hlp The background region specification was extended to allow a third argument as a scaling factor. (9/22/99, Valdes) doc/specwcs.hlp Fixed typo defining the variable n. (9/13/99, Valdes) t_tweak.x 1. Changed wavelength evaluations to double precision. 2. The normalization step for the rms calculation was removed for the case of sky subtraction. (9/8/99, Valdes) dispcor/t_dispcor.x dispcor/dcio.x dispcor/dispcor.x doc/dispcor.hlp Now allows NDSPEC format spectra. (9/7/99, Valdes) t_fitprofs.x doc/fitprofs.hlp 1. The background region specification was extended to allow taking the average or median or a region. 2. The image identification label was incorrect. 3. If verbose=no there was an attempt to close a non-existent structure. (6/26/99, Valdes) t_fitprofs.x Fixed bug which only allowed the last component to be saved to an image. (8/25/99, Valdes) ======= V2.11.2 ======= smw/units.x smw/funits.x Stripped trailing whitespace from units label. (8/5/99, Valdes) identify/t_reidentify.x File date changed but no changes made to the file. (7/22/99, Valdes) rspectext.cl Added explicit add and del parameters to all the HEDIT calls. (7/15/99, Valdes) t_sarith.x The option to have a single second operand to work on a set of first operands was not working. (5/28/99, Valdes) splot/splot.key doc/splot.hlp Added a reference to :.help and :/help. (5/12/99, Valdes) doc/sys/1and2dspec.hlp doc/sys/Onedspec.hlp doc/sys/Review.hlp doc/fitprofs.hlp doc/reidentify.hlp doc/sensfunc.hlp doc/aidpars.hlp doc/autoidentify.hlp doc/skytweak.hlp doc/telluric.hlp irsiids/doc/powercor.hlp irsiids/doc/widstape.hlp Fixed minor formating problems. (4/22/99, Valdes) identify/idlinelist.x The call to id_peak was using physical pixels while the subroutine expects logical pixels. A conversion from physical to logical was added before calling id_peak. (3/8/99, Valdes) scombine/t_scombine.x Changed UT(shin) = imgetr (im, Memc[gain -> snoise]). (1/29/99, Valdes) identify/idgraph.x Removed violation of GTOOLS data structure. (12/18/98, Valdes) identify/t_reidentify.x 1. When interactive=yes and ans is not NO when starting on a new image in ri_image, the curfit descriptor was initialized to the defaults rather than to reference solution. This was because of a missing ic_copy. 2. When the reference and image names are the same the task will now skip the reidentify, (12/3/98, Valdes) shdr.x Needed to check if data is defined for associated types before trying to set flux units. (11/27/98, Valdes) shdr.x Improved the recognition of CTYPE values. Most notably WAVELENGTH is converted to "waveleng" by MWCS in making the label attribute. (11/25/98, Valdes) doc/splot.hlp Fixed help that said the output of a long slit or ND image would be a 1D image. (11/18/98, Valdes) dispcor/dispcor.x dispcor/refspectra.x The weights when weighting multiple dispersion solutions were only being recorded in the WCS attributes to 3 significant digits. This could cause the weights to become unnormalized and cause small shifts. Now whenever the weights are converted to strings the format is %.8g. (11/17/98, Valdes) t_fitprofs.x When the input peak value was INDEF the task would fail with a floating overflow value if scale < 1. This was caused by not checking for INDEF before dividing by the scale. (11/5/98, Valdes) smw/smwnewcopy.x The structure copy was wrong. (10/28/98, Valdes) sensfunc/sfimage.x t_calibraate.x The flux calibration gets the wrong sign if dw<0. (9/25/98, Valdes) smw/shdr.x Default units of Angstroms was added if DC-FLAG is dispersion corrected. (9/24/98, Valdes) dispcor/dcio.x The weights are now adjusted to produce weighted average rather than weighted sum. (8/25/98, Valdes) splot/wrspect.x The filling in of data outside of NP1/NP2 was done incorrectly. Normally NP1/NP2 cover the entire image line but in echelle data it is common for NP2 to be less than the full line. In this case the result of saving an image was loss of the last valid point. (7/14/98, Valdes) identify/idinit.x When restoring a solution without a dispersion function the shift failed to be restored. This causes a problem with REIDENTIFY when working on long slit data with a significant systematic tilt and measuring the spatial distortion. (6/1/98, Valdes) t_tweak.x telluric.par doc/telluric.hlp If the calibration is < 0 it is detected but there was an error in the error clean up giving a "memory corruption" error. This error was fixed and a new threshold parameter was added to allow the task to continue if the calibration data has low values. (4/21/98, Valdes) t_sarith.x When rebinning non-linear spectra the dispersion type was not be reset to linear resulting in an incorrect spectral WCS. See buglog 400. (4/17/98, Valdes) doc/scopy.hlp Added a note about using epar to set nsum to examples in section III as suggested by Ivan King on 4/3/98. (4/8/98, Valdes) scombine/t_scombine.x If the input spectra are not dispersion corrected and first=no the task was incorrectly setting the dispersion correction flag. (3/3/98, Valdes) splot/deblend.x The dorefit code was not handling the case of a mixture of profile types. (2/12/98, Valdes) t_tweak.x The extra argument in a twk_colon call was removed. (2/5/98, Valdes) dispcor/t_dispcor.x Added some errchk declarations. (1/26/98, Valdes) identify/idlinelist.x doc/autoidentify.hlp doc/identify.hlp doc/reidentify.hlp When a coordinate list is read it will be sorted and identical entries will be eliminated. Thus, line lists no longer need to be sorted. (1/12/98, Valdes) ======= V2.11.1 ======= doc/splot.hlp Added another paragraph and a correction to the flux calculation done by 'e'. (12/22/97, Valdes) splot/gfit.x The test for computing errors when negative data is detected was incorrect and would given an error message even when errors were not desired. (10/23/97, Valdes) dispcor/dispcor.x smw/shdr.x Changed the maximum distance that the endpoints can be from pixel edges before using the pixel values directly instead of integrating the interpolator from 0.001 to 0.00001. (10/7/97, Valdes) doc/calibrate.hlp Added brief discussion about pixels falling outside the wavelength range of the sensitivity function. (9/23/97, Valdes) =========== V2.11export =========== identify/iddb.x ecidentify/ecdb.x Increased the number of digits recorded in the database for the fit and user values to 9. (8/22/97, Valdes) swm/shdr.x Added an arbitrary reference for the velocity CTYPE value. (8/20/97, Valdes) smw/smwsaxes.x The earlier fix for transposed data was incorrect. The origin terms do not need to be changed but the order of the CD matrix terms was incorrect. (8/15/97, Valdes) dispcor/refnoextn.x Added fit and fits to the possible extensions. (8/14/97, Valdes) smw/smwsaxes.x When the LTERM is adjusted to correct for a transpose only the matrix terms were being corrected. The origin terms also needed to be corrected. (8/6/97, Valdes) scombine/t_scombine.x Previously an end input pixel had to completely overlap an output pixel otherwise it was flagged as missing data. This was changed to use the end pixels if they overlapped at all. This change was done to allow small dispersion shifts to not affect the end point combining. (8/6/97, Valdes) smw/shdr.x No change. (8/6/97, Valdes) identify/t_reidentify.x doc/reidentify.hlp reidentify.par imred/*/reidentify.par twodspec/longslit/reidentify.par The shift parameter was restored to it's previous usage. The automatic pattern matching algorithm is not selected by setting the shift to INDEF and using the new parameter crsearch. (7/21/97, Valdes) identify/idshift.x identify/t_reidentify.x The symbol table of reference solutions was being modified by the shift calculation causing the loop over solutions to be wrong. Now ri_image marks and frees the symbol table between calls and loops through the symbol table solutions in a way that is not affected by new entries in the symbol table. Also idshift marks and frees the symbol table. Note that marking and freeing is not enough because the loop using sthead/stnext will not work. (7/19/97, Valdes) identify/autoid/aidshift.x identify/ididentify.x identify/idreidentify.x identify/doc/reidentify.x identify/reidentify.par 1. aid_shift was not using crsearch/cdsearch as expected. 2. The call to id_shift in the interactive routines had an incorrect argument value. 3. The help page for REIDENTIFY was clarified about what the shift parameter means. 4. The parameter prompt for shift in REIDENTIFY was corrected. parameter means. (7/17/97, Valdes) identify/t_reidentify.x The nlost parameter now applies when not tracing. (7/17/97, Valdes) t_sarith.x The power option did not work because the apow routine takes only integer powers. Replace the apow routine with an explicit calculation. (7/15/97, Valdes) ========= V2.11Beta ========= identify/t_reidentify.x The number of features was being used to calculate how many features might be lost before it was set. (6/3/97, Valdes) doc/disptrans.hlp doc/onedspec.hlp doc/splot.hlp Added new unit abbreviations. (5/27/97, Valdes) splot/splot.x splot/splotcolon.x splot/splabel.x + splot/splot.key doc/splot.hlp Added colon commands for labeling. (5/16/97, Valdes) t_tweak.x 1. The ? help file was specified as .hlp instead of .key. 2 Add a divide by zero check. (5/14/97, Valdes) t_scoords.x + scoords.par + doc/scoords.hlp + x_onedspec.x mkpkg onedspec.cl onedspec.hd onedspec.men Added a new task that sets a pixel array spectral coordinate system in 1D spectra. (5/9/97, Valdes) doc/sapertures.hlp doc/sinterp.hlp doc/sflip.hlp doc/disptrans.hlp doc/skytweak.hlp doc/telluric.hlp doc/sfit.hlp doc/continuum.hlp doc/fitprofs.hlp irsiids/doc/slist1d.hlp Changed revision versions. (4/22/97, Valdes) t_tweak.x + skytweak.par + telluric.par + doc/skytweak.hlp + doc/telluric.hlp + x_onedspec.x onedspec.cl onedspec.men onedspec.hd Added tasks for tweaking calibration spectra and applying a sky subtraction or telluric correction. (3/28/97, Valdes) t_sarith.x The wrong INDEF type was used. (3/17/97, Valdes) smw/shdr.x The shdr_linear needed to transform the requested input range to the image WCS units. (3/13/97, Valdes) t_calibrate.x t_standard.x Changed to allow input spectra in various units. (3/12/97, Valdes) autoidentify.par identify.par ecidentify.par identify/t_autoid.x identify/t_identify.x identify/identify.h identify/idinit.x identify/idgdata.x identify/iddofit.x identify/idmap.x identify/iddb.x identify/idlinelist.x identify/idfitdata.x ecidentify/ecinit.x ecidentify/ecgdata.x ecidentify/t_eciden.x ecidentify/eclinelist.x ecidentify/ecidentify.h ecidentify/ecdb.x ecidentify/ecfitdata.x dispcor/t_dispcor.x dispcor/dcio.x dispcor/dispcor.h doc/autoidentify.hlp doc/identify.hlp imred/echelle/doc/ecidentify.hlp imred/irs/identify.par imred/iids/identify.par imred/kpnocoude/identify.par noao/lib/linelists/* Changes to allow IDENTIFY/ECIDENTIFY to work in user or line list specified units and to have DISPCOR pass on the units. (3/11/97, Valdes) splot/usercoords.x This routine had a couple of places where it calls smw_c?tran? and then takes log sampling in EQUISPEC/NDSPEC explicitly into account. Since this is now done by the lower level routines the log conversions were removed. (3/3/97, Valdes) dispcor/dcio.x doc/dispcor.hlp The coordinate transformation between logical and world was changed to always produce linear wavelength. It use to be that for equispec and ndspec formats with dc-flag=1 this would produce log wavelengths. This prevented resampling from log back to linear. [The date on dcio.x was touched but no actual change was made.] (3/3/97, Valdes) smw/shdr.x The SHDR routines that convert between world and logical were updated for the changes in smw_c?tran?. Previously, these routines explicitly applied the log transformation for log sample spectra. For this reason most ONEDSPEC tasks operated correctly. However, DISPCOR does not use SHDR_LW/SHDR_WL so it failed. Now the log conversions are done in smw_c?tran? and not in the SHDR routines. (3/3/97, Valdes) smw/smwsctran.x smw/smwctran.gx + noao/lib/smw.h The coordinate transformations in ONEDSPEC tasks assume that dispersion coordinates are always in linear dispersion whether or not the spectra are stored in log sampling (DC-FLAG=1). However, this was not true for EQUISPEC/NDSPEC format. Now calls to the smw_c?tran? routines will return linear dispersion for all supported ONEDSPEC WCS types. This was needed to fix the problem with DISPCOR and log sampled input spectra. smw/smwsaveim.x Deleted unused procedure name in errchk. No functional change. (3/3/97, Valdes) scombine/t_scombine.x Moved the call to smw_openim to "clean up" the WCS from after the image size is changed to before because otherwise an error would occur trying to access aperture information for any new lines added. I no longer recall the purpose of this "clean up" step. (2/19/97, Valdes) splot/sumflux.x The conversion to "angstrom" units used the wpc instead of abs(wpc). (2/6/97, Valdes) identify/idpeak.x identify/ididentify.x identify/idshift.x identify/reidentify.x identify/autoid/autoid.x Added a new procedure, id_peaks, that replaces calls to find_peaks. The new procedure calls find_peaks and then converts the pixels to physical coordinates. (1/30/97, Valdes) t_calibrate.x The calculation of dw for the flux correction used the index i instead of k. This means that dw was constant which is incorrect for spectra with non-linear dispersion. (1/22/97, Valdes) doc/splot.hlp splot/autoexp.x The intensity range produced by the 'a', ',', '.', and 'z' keys could be wrong if the dispersion function was sufficiently non-linear. This now fixed and if the positions for the 'a' key are the same it autoscales; i.e. 'a' 'a' is a short cut to autoscale. (1/10/97, Valdes) splot/splot.x The whitespace was being removed from the units parameter so that any units string that requires whitespace (such as "km/s 4000 ang") would fail to be recognized. (12/3/96, Valdes) scombine/t_scombine.x scombine/icscale.x The feature of getting scaling, zero, and weight values from the image headers did not work because the header values were not cached. (11/11/96, Valdes) t_sarith.x doc/sarith.hlp The noise spectrum type is now only copied unmodified. This is a quick kludge until the noise is properly handled. (9/11/96, Valdes) smw/shdr.x Added a spectrum type field to the spectrum structure and a specific procedure to decode the spectrum type. (9/11/96, Valdes) splot/gfit.x splot/spdeblend.x Allow error estimates with negative pixels if invgain=0 otherwise print a warning. (7/23/96, Valdes) doc/standard.hlp Added comments about proper use of extinction files. (6/26/96, Valdes) doc/dispcor.hlp Update the help file to indicate that the input limits are in non-log units even with logarithmic sampling is selected. (6/14/96, Valdes) t_standard.x Make minor change to beginning of std_flux to avoid optimizer error on Solaris with V4.0 compiler. (6/10/96, Valdes) t_sarith.x Altered order of opening the output so that any error in reading the input data is caught first. (5/14/96, Valdes) smw/shdr.x Separated call for imgs3r in order to error check for failure to get the pixel data (such as occurs with a long pathname to the pixel file). (5/14/96, Valdes) rspectext.cl Removed use of CL variable "list". (5/6/96, Valdes) noao$lib/smw.h Changed SMW_NSPLIT from 200 to 500. (4/18/96, Valdes) smw/smwmerge.x 1. When the output format is multispec the code did not open a single MWCS but simply opened another split MWCS. 2. A pointer rather than the string was incorrectly passed to smw_swattrs. (4/18/96, Valdes) smw/shdr.x If the units are not defined by an attribute a check is made for a CUNITn keyword. (4/17/96, Valdes) identify/autoid/autoid.x 1. Removed useless call to id_log. 2. Fixed realloc bug. 3. Fixed bug allowing lines to be found multiple times. (4/12/96, Valdes) identify/autoid/aidshift.x Added missing argument in call to aid_init. (4/11/96, Valdes) identify/idlinelist.x Minor efficiency change that avoids extract calls to id_fitpt. (4/11/96, Valdes) identify/t_autoid.x Minor bug fix so that log header is printed. (4/5/96, Valdes) t_rstext.x rspectext.cl doc/rspectext.hlp The task now automatically senses the presence of a header. (3/7/96, Valdes) identify/identify.h identify/peaks.gx identify/autoid/autoid.x 1. The ID_FTYPE entry in the structure was being clobbered by a typo in the include file which also mapped ID_LABEL to the same location. 2. The peak finding routines were modified so that values of INDEF for the threshold and contrast would disable these tests. This is needed when absorption peak data is negated to find the absorption peaks which are all negative. 3. The autoid.x uses of find_peaks were modified to set the contrast and threshold to INDEF instead of zero. (2/24/96, Valdes) splot/getimage.x There was a bug in initializing the image section limits such that when an image section of the form [n,*] is used and there is not display limits (xmin and xmax are INDEF) then the plotted spectrum will cover the range of the first axis rather than the second. (2/22/96, Valdes) identify/autoid/* + identify/t_autoid.x + identify/t_identify.x identify/t_reidentify.x identify/idcolon.x identify/iddb.x identify/iddoshift.x identify/idfitdata.x identify/idgdata.x identify/ididentify.x identify/idinit.x identify/idlinelist.x identify/idlog.x identify/idmap.x identify/idshift.x identify/idshow.x identify/peaks.gx identify/peaks.x identify/reidentify.x identify/identify.h identify/identify.key identify/mkpkg doc/aidpars.hlp + doc/autoidentify.hlp + doc/identify.hlp doc/reidentify.hlp x_onedspec.x aidpars.par + autoidentify.par identify.par reidentify.par onedspec.cl onedspec.par onedspec.men onedspec.hd Added an automatic line identification algorithm. This algorithm is part of the new task AUTOIDENTIFY and modified versions of IDENITFY and REIDENTIFY. A new pset task AIDPARS contains the algorithm parameters. (2/1/96, Valdes) onedspec.hd onedspec.men Added linelists$README and onedstds$README as the help topics "linelists" and "onedstds". (1/26/96, Valdes) smw/shdr.x When extracting a wavelength range (without rebinning) and with the range flipped there was an error in not checking for the existence of the associated spectra causing a segmentation violation. (1/22/96, Valdes) specplot.x The scale and offset parameters may now be a constant value, an @file containing the values, or a keyword name. (1/13/96, Valdes) smw/smwopen.x The arrays for the aperture, beam, and limits in equispec format were not being initialized to reasonable values which could cause an error when doing an ES to MS conversion. Replaced mallocs with callocs. (1/9/96, Valdes) smw/smwesms.x Fixed a typo: smwopn -> smw_open. (1/9/96, Valdes) smw/smwsaxes.x Uncalibrated long slit (2D) spectra which have been rotated are now allowed. The rotated WCS is reset to pixels. If the dispersion calibration flag is set and the spectra have been rotated then an error is reported. (1/4/96, Valdes) t_sarith.x doc/sarith.hlp doc/scopy.hlp Preiously both w1 and w2 had to be specified to select a wavelength region to be copied or operated upon. Now if only one is specified the second will default to the appropriate starting or ending pixel. (12/20/95, Valdes) t_sbands.x 1. Converted to work in double precision except the spectrum data obtained by shdr_open is only in real. 2. Increased the index and eqwidth precision printed from %7.4g to %9.6g. (12/5/95, Valdes) identify/idgraph.x If the graph x window is outside of the data the x window is now autoscaled. This occurs when a user sets window limits in pixel space and then does a fit to wavelength. The new graph was then plotted in the windowed pixel space and no data would be seen. (12/5/95, Valdes) t_calibrate.x The airmass value computed by get_airm was being ignored causing a floating exception (bug log 321). This was fixed. (12/4/95, Valdes). scombine/generic/icpclip.x Fixed a bug where a variable was improperly used for two different purposes causing the algorithm to fail (bug 316). (10/19/95, Valdes) identify/peaks.x There was an index bug in is_local_max. (9/26/95, Valdes) t_slist.x Fixed another case of closing the mwcs pointer without invalidating it in the shdr pointer. (9/26/95, Valdes) t_fitprofs.x Added a check and appropriate error message for a missing positions file. (9/22/95, Valdes) doc/splot.hlp Added explicit equations for the quantities measured by the 'e' key in SPLOT. (9/22/95, Valdes) identify/ididentify.x idenitfy/identify.key doc/identify.hlp A new key, 'e', has been added to add features from a line list without doing any fits. This is like the 'l' but without the automatic fitting before and after adding new features. (9/5/95, Valdes) identify/t_reidentify.x doc/reidentify.hlp If there are no reference features the "addfeatures" option will add new features before doing a fit or shift. (9/5/95, Valdes) splot/getimage.x The change of 5/1/95 allows parsing an image section to determine the dispersion line. However this ignored any range along the dispersion. This change completely parses any image section and sets the display range in pixels or wavelength to that of the image section along the dispersion. (8/28/95, Valdes) identify/t_reidentify.x identify/iddb.x 1. If the reference image does not exist REIDENTIFY would catch the error but then attempt to close an unopened database leading to a seg vio error rather than the warning. A check was added for the database being open. 2. Added a new database procedure that scans a database and saves the records. This allows REIDENTIFY to use a reference database even when the reference image doesn't exist. (8/23/95, Valdes) smw/smwdaxis.x smw/shdr.x In the absence of DISPAXIS the software will recognize the FITS CTYPE keyword with values of LAMBDA, FREQ, VELO*, WAVELENGTH in the units defined in the original FITS paper. (8/20/95, Valdes) t_sfit.x The logic for checking whether all lines and all bands has been done is not as straightforward as indicated in the entry of 4/29/94. The checking on bands has been eliminated though a record of the bands dones is written to the header. (8/15/95, Valdes) smw/smwsaveim.x scombine/t_scombine.x When a new image is opened NEW_COPY it inherits IM_NPHYSDIM and IM_NDIM. A routine can change IM_NDIM but not IM_NPHYSDIM. The routine to save an equispec WCS needs to preserve the IM_NPHYSDIM when updating an exisiting 2D image which may have been specified as a 1D section. In order to tell the routine that a new lower dimensional image is desired with a NEW_COPY header the higher level routine can set the temporary keyword SMW_NDIM and the routine setting up the WCS will use this in prference to the IM_NPHYSDIM. (8/14/95, Valdes) identify/idlinelist.x The way memory was being allocated for labels was such that not all memory would be deallocated at the end. (8/3/95, Valdes) identify/iddb.x When "adding" features the NALLOC value was not properly updated resulting in free uninitialized pointers leading to a segvio. (8/3/95, Valdes) smw/smwdaxis.x If the image header dispersion axis is unreasonable a warning is printed and the "dispaxis" parameter is used instead. (8/2/95, Valdes) sbands.x Changed the index and eq width format from 7.2f to 7.4g. (7/28/95, Valdes) splot/voigt.x + t_fitprofs.x splot/splot.x splot/anshdr.x splot/eqwidthcp.x splot/gfit.x splot/deblend.x splot/spdeblend.x splot/splot.key splot/mkpkg doc/fitprofs.hlp doc/splot.hlp fitprofs.par splot.par Added lorentzian and voigt profile fitting and deblending. This changed the FITPROFS parameters and the input line lists for FITPROFS and SPLOT though the old line lists will still work. A new parameter was also added to SPLOT and FITPROFS to set the number of Monte-Carlo samples used in the error estimates. (7/28/95, Valdes) splot/splot.x Changed when the shdr structure is closed to avoid an error. (8/24/95, Valdes) t_sapertures.x doc/sapertures.hlp Modified to allow aperture ID table to be from an image header in the same way as done in the APEXTRACT package. (7/24/95, Valdes) t_specplot.x specplot.key doc/specplot.hlp Added a new key 'f' to toggle between logical pixels and world coordinates. (7/21/95, Valdes) dispcor/dcio.x dispcor/dispcor.h The application of a shift now also works with non-linear dispersions in the input image. This is a feature used in the DOFIBERS script to align sky lines. (7/19/95, Valdes) splot/wrspect.x The BANDID keyword was being written with garbage characters because a pargstr was used instead of pargi. (7/14/95, Valdes) dispcor/dcio.x When there is only a shift in the database (a feature added 4/21/94) and the image has more than one aperture the weight parameter was being clobbered causing incorrect results. (7/13/95, Valdes) t_sapertures.x Fixed the "dtype" parameter behavior which was not correct. (6/30/95, Valdes) smw/smwonedspec.x smw/smwsaxes.x 1. For the simplest spectra a heuristic to determine DC-FLAG was added such that if the wavelength of the first pixel and the increment per pixel are both unequal to 1 then the spectrum is assumed to be dispersion calibrated. 2. The label and units are not overridden if either is present. If neither is present but the spectrum is considered to be dispersion corrected then it defaults to Wavlength(angstroms). (6/30/95, Valdes) ididentify.x reidentify.x When a line center fails to be found with the 'm' key a message is printed pointing to the threshold parameter. (6/30/95, Valdes) t_sbands.x The allocation scheme was incorrect causing a segmentation violation after the first 10 bands. (6/30/95, Valdes) ======= V2.10.4 ======= t_sarith.x The "units_display" WCS attribute is copied if set. (5/13/95, Valdes) splot/splot.x splot/getimage.x t_specplot.x 1. The task "units" parameter value is mapped to "display" if null. 2. The units are set with shdr_units. (5/13/95, Valdes) smw/shdr.x 1. The spectrum structure is loaded in the image MWCS units ("units"). 2. The special unit string "display" changes units to the "units_display" attribute in shdr_units. 3. The special unit string "default" changes units to the image MWCS units in shdr_units. (5/13/95, Valdes) doc/sfit.hlp Added a description of the "sample" range syntax. (5/12/95, Valdes) splot/splot.x splot/getimage.x doc/splot.hlp Because it can be desirable to use image sections on the input but this will cause problems if the user attempts to update the image SPLOT was modified to parse the image section for the specified image line, column, or band and then map the full image. (5/1/95, Valdes) t_sbands.x doc/t_sbands.x Increase the length and changed to g format for the flux so that flux calibrated data will print. (4/12/95, Valdes) doc/wspectext.hlp Fixed typo in example. (4/12/95, Valdes) t_sarith.x Image extensions are no only stripped for onedspec format output images rather than in all image names. This is necessary to allow STF images with explicit extensions not matching the imtype value to be specified. (3/31/95, Valdes) scombine/icscale.x doc/scombine.hlp The behavior of the weights when using both multiplicative and zero point scaling was incorrect; the zero levels have to account for the scaling. (3/27/95, Valdes) splot/flatten.x Removed use of faulty fp_equal test for equality with zero. This would cause continuum normalization to fail for fluxed data. (2/23/95, Valdes) sensfunc/sfshift.x Deleted points and stars are now ignored in the grey shift calculation. (2/22/95, Valdes) t_sinterp.x Updated the image header keywords to give a complete and standard linear WCS. (2/21/95, Valdes) splot/gfit.x If the marked region does not span the profile peak then an pointer indexing error occurs when estimating the initial sigma. Modified to estimate the sigma differently in this case. (2/17/95, Valdes) t_fitprofs.x splot/spdeblend.x splot/gfit.x 1. The indexing was incorrect in the Monte-Carlo error estimation. 2. Change the number of Monte-Carlo samples from 100 to 50. (2/16/95, Valdes) smw/shdr.x If an associated spectrum doesn't exist free any previous spectrum. (2/13/95, Valdes) getcalib.x Added missing length argument to strcpy which caused an unaligned access error on the Alpha. (1/27/95, Valdes) t_dopcor.x Fixed typo bug which prevents more than 8 spectra in multispec format to work. This affects primarily echelle data. (1/18/95, Valdes) smw/swmctran.x The equispec coordinate transformations now include mapping apertures and lines. (1/16/95, Valdes) smw/smwopenim.x Changed unknown coordinate system from a fatal error to a warning. (1/14/95, Valdes) t_standard.x Fixed bug in closing sh structure. (1/3/95, Valdes) t_standard.x t_calibrate.x standard.par calibrate.par doc/standard.hlp doc/calibrate.hlp If the exposure time and airmass cannot be determined from the header they are queried and updated in the images. New query parameters were added. (1/2/95, Valdes) dispcor/refmsgs.x dispcor/refgspec.x dispcor/reftable.x dispcor/refspectra.h dispcor/refinterp.x dispcor/reffollow.x dispcor/refnearest.x dispcor/refprecede.x Added error information if no reference spectrum is found to aid in diagnosing the problem. (12/30/94, Valdes) dispcor/t_dispcor.x dispcor/dcio.x 1. Improved the error messages again to more clearly pinpoint problems with the dispersion database. 2. The image extensions are now stripped in REFSPEC keywords. (12/30/94, Valdes) identify/identify.x identify/reidentify.x identify/iddofit.x identify/identify.key 1. Added 'v' to change fitting weights. (12/29/94, Valdes) identify/t_reidentify.x doc/reidentify.hlp The step parameter for multispec/equispec data is now ignored and all apertures are reidentified expect for a value of zero indicates don't reidentify anything but the reference aperture. (11/15/94, Valdes) onedspec.men doc/mkspec.hlp Highlighted the fact that the MKSPEC task is obsolete. (11/12/94, Valdes) doc/identify.hlp identify/identify.key identify/idcolon.x The help described one of the options for :label to be "coords" when it is actually "coord". Rather than modify the code I modified the help. The colon procedure was modified only in that when it reports the current value of the label parameter it shows coord and not coords. (11/8/94, Valdes) doc/onedspec.hlp doc/specwcs.hlp Added description of dispaxis and nsum package parameters to the package description. (11/1/94, Valdes) scombine/t_scombine.x There was a problem with using SCOMBINE with 2D/3D spectra in that it assumed the number of spectra is the second image dimension. Changed this to the approriate number of spectra for all spectral formats. (10/27/94, Valdes) dispcor/dctable.x If ignoreaps=yes and there are apertures defined with an aperture table or reference image then the defaults for the wavelength scale if an undefined aperture is encountered will be that of the first defined aperture unless an explicit value has been given with the task parameters. This is needed to make the IMRED reductions scripts run as desired. (10/12/94, Valdes) smw/smwonedspec.x smw/smwoldms.x Added a missing call to close the image header keyword template list which caused memory to not be freed. (10/4/94, Valdes) identify/t_reidentify.x Now checks for a zero step and only operates on the specified reference line. (9/15/94, Valdes) t_sfit.x doc/sfit.hlp doc/continuum.hlp Extended SFIT and CONTINUUM to work on NDSPEC spectra. (9/13/94, Valdes) splot/splot.x 1. The 'p' and 'u' now restore the "world" system before setting the dispersion. Previously if the user switched to "pixel" (with '$') then a units conversion error would occur if the user tried to set the dispersion. 2. The 'v' key now toggles even if no input units are specified. (8/17/94, Valdes) splot/wrspect.x Fixed a bug in which the output units when saving a spectrum were incorrectly set to be the current display units rather than the MWCS units. (8/17/94, Valdes) splot/wrspect.x Fixed a typo in a pointer assignment in the case of overwriting an existing 2D image which caused a segmentation violation. (8/17/94, Valdes) doc/splot.hlp doc/fitprofs.hlp Fixed various typos and added suggestions as pointed out by Dave Bell. (8/17/94, Valdes) splot/gfit.x splot/spdeblend.x t_fitprofs.x Added a check for both sigma0 and invgain being zero. (8/17/94, Valdes) t_fitprofs.x Failed to treat the scaling of the sigmas properly to avoid overflow problems. (8/17/94, Valdes) onedspec.cl onedspec.hd onedspec.men x_onedspec.x dispcor/mkpkg dispcor/t_disptrans.x + disptrans.par + doc/disptrans.hlp + Added a new task to convert the WCS dispersion relation between units and to apply a vacuum/air conversion. (8/8/94, Valdes) t_slist.x Removed the restriction against N-dim spectra so that this could be used with BPLOT to expand a list of apertures. (7/29/94, Valdes) splot/spdeblend.x splot/gfit.x 1. The sigmas needed to be scaled to unit mean to avoid possible overflow problems during the fitting. 2. There was an incorrect calling sequence in gfit for the new model parameters. (7/26/94, Valdes) noao/lib/units.h smw/units.x splot/splot.key specplot.key doc/onedspec.hlp doc/splot.hlp Added nanometers as a unit. (7/21/94, Valdes) noao/lib/smw.h smw/shdr.x splot/wrspect.x splot/splot.x 1. Added a reddening correction flag to the basic spectrum data structure. 2. When writing out a spectrum with WRSPECT also update the calibration parameters. 3. Restructured WRSPECT to be more general for use with SPECTOOL and put an SPLOT specific routine to handle the parameter queries. (7/20/94, Valdes) t_sflip.x + sflip.par + doc/sflip.hlp + x_onedspec.x mkpkg onedspec.cl onedspec.men onedspec.hd Added a new task for flipping spectra. (7/18/94, Valdes) splot/wrspect.x splot/splot.x smw/smwswattrs.x Fixed a rather tricky bug with replacing a spectrum in the current image with SPLOT. (7/13/94, Valdes) splot/spdeblend.x + splot/deblend.x splot/gfit.x splot/sumflux.x splot/eqwidth.x splot/splot.x splot.par t_fitprofs.x fitprofs.par doc/splot.hlp doc/fitprofs.hlp 1. Separated the SPLOT specific delending routine from the mathematical deblending routines called by the various gaussian fitting routines. 2. Replaced deblending code with a version that uses a sigma array and subsampling of the pixels. This version also allows contraining the relative line strengths but this feature is not used by SPLOT of FITPROFS. 3. Added constant noise and inverse gain parameters to SPLOT and FITPROFS. 4. If a sigma0 and inverse gain are specified the deblending estimates errors in the fit parameters using Monte-Carlo simulation. The errors are recorded in the log and :show output. This was added to both SPLOT and FITPROFS. 5. If a sigma0 and inverse gain are specified the centroid, flux, and equivalent width estimates (from 'e' key) include error estimates. The errors are recorded in the log and :show output. (7/12/94, Valdes) dispcor/t_dispcor.x dispcor/dcio.x 1. Added a check for the existence of both IDENTIFY and ECIDENTIFY database files for the same image. 2. The recent errcode check addition (5/20) was incorrect in that it would not proceed to look for an ECIDENTIFY file if no IDENTIFY file was found; i.e. echelle data would fail. The appropriate checking of errors is now done. (7/11/94, Valdes) t_dopcor.x The verbose output was enhanced to show the old redshift in the case of adding to warn a user. This only applies to multispec images which store the redshift separately. (7/7/94, Valdes) t_sbands.x Instead of passing a file name to the routine which reads the bandpass descriptions a file descriptor is not passed. This allows the calling procedure to use either a file or a string file. (6/30/94, Valdes) doc/sbands.hlp doc/splot.hlp Typo fixes. (6/30/94, Valdes) doc/dopcor.hlp Made a slight change to description of isvelocity to make as clear as possible that velocities are relativistic and not c*z velocities. (6/30/94, Valdes) t_rstext.x + rstext.par + rspectext.cl x_onedspec.e onedspec.cl mkpkg Added a compiled task to reformat the input RSPECTEXT file into the formats needed by RTEXTIMAGE and DISPCOR and modified RSPECTEXT to use it. This improves the speed of this script task enormously for large input text files since the CL facilities can be slow. (6/20/94, Valdes) splot/wrspect.x Failed to initialize a pointer to NULL. This became a seg vio after the changes for the BANDID info. (6/15/94, Valdes) scombine/generic/iccclip.x scombine/generic/icsclip.x Found and fixed another typo bug. (6/7/94, Valdes/Zhang) scombine/generic/icaclip.x scombine/generic/iccclip.x scombine/generic/icpclip.x scombine/generic/icsclip.x scombine/generic/icgrow.x scombine/generic/icmedian.x The restoration of deleted pixels to satisfy the nkeep parameter was being done inside the iteration loop causing the possiblity of a non-terminating loop; i.e. pixels are rejected, they are restored, and the number left then does not statisfy the termination condition. The restoration step was moved following the iterative rejection. There was a bug in how the restored points were added back when mclip=no and there are multiple residuals with the same value. Also updated icgrow and icmedian. All these files are the same as the generic files from IMCOMBINE reduced to only the real datatype. (6/13/94, Valdes) t_sbands.x When scanning the bandpass file, if there was an filter file then the scanning of the filter file caused the remaining scan of the bandpass line to be terminated. This was fixed by using getline instead of fscan in the scanning the bandpass file. (6/3/94, Valdes) doc/sbands.hlp Fixed a discrepancy in the bandpass file description between the description section and the examples. (6/2/94, Valdes) splot/splot.x splot/splotcolon.x splot/splot.key splot.par doc/splot.hlp Added an overplot options to permanently toggle overplotting. (5/31/94, Valdes) scombine/icscale.x The sigma scaling flag, doscale1, would not be set in the case of a mean offset of zero though the scale factors could be different. (5/25/94, Valdes/Zhang) scombine/generic/icsclip.gx There was a missing line: l = Memi[mp1]. (5/25/94, Valdes/Zhang) scombine/generic/icaclip.x scombine/generic/iccclip.x scombine/generic/icpclip.x scombine/generic/icsclip.x The reordering step when a central median is used during rejection but the final combining is average was incorrect if the number of rejected low pixels was greater than the number of pixel number of pixels not rejected. (5/25/94, Valdes) dispcor/dcio.x dispcor/t_dispcor.x All warning messages were being converted to a single warning which was not appropriate in all cases. Added an errcode check. (5/20/94, Valdes) ============================ V2.10.3beta internal release ============================ noao/lib/smw.h smw/shdr.x t_fitprofs.x t_sarith.x splot/wrspect.x The spectrum data structure was modified so that it can contain all the associated spectra such as the spectrum, raw spectrum, sky, continuum, and sigma. Also the STYPE field was changed to an array of string pointers SID to contain the specturm type strings for all the associated spectra. Except for the SID changes (in FITPROFS, SARITH, and SPLOT) the structure changes are invisible to any spectral task. (5/4/94, Valdes) scombine/icscale.x scombine/t_scombine.x There is now a warning error if the scale, zero, or weight type is unknown. (5/2/94, Valdes) t_sfit.x sfit.par continuum.par doc/sfit.hlp doc/continuum.hlp 1. The sample regions are now set to the task parameter after each fit. Previously this was only done for the first spectrum and after that it was set to "*". 2. A straightforward replication of the line selection mechanism to allow band selection was added. (4/29/94, Valdes) identify/t_reidentify.x The refit=no options would not work if there was not dispersion function even though it makes sense to do so. It was case of the if clauses not being defined correctly. (4/28/94, Valdes) dispcor/dcio.x A possibly very useful and common case is when IDENITFY/REIDENTIFY are used on previously dispersion corrected data to get only a shift with no dispersion function. DISPCOR was modified to allow this case. (4/21/94, Valdes) scombine/iclog.x Changed the mean, median, mode, and zero formats from 6g to 7.5g to insure 5 significant digits regardless of signs and decimal points. (4/13/94, Valdes) noao/lib/smw.h smw/shdr.x The standard spectrum data structure now includes a pointer for a continuum spectrum. Currently it is unused. (4/12/94, Valdes) scombine/icscale.x When the combine object is "sum" the task attempts to compute the total exposure time. Since a missing exposure time is represented as INDEF this caused an arithmetic error. The task was modified to not compute or output a total exposure time if any of the spectra have an undefined exposure time. (4/11/94, Valdes) identify/idmark.x Changed the mark and mark label color to be the tick label color currently in effect. Eventually the user should have more control over the color but this cannot be done without changing GTOOLS or IDENTIFY more than is appropriate at the moment. (4/11/94, Valdes) doc/identify.hlp Fixed a typo in the description of the Legendre polynomial formula. (4/11/94, Valdes) smw/shdr.x The case of DC-FLAG=-1 was not being handled by shdr_lw and shdr_wl. (4/9/93, Valdes) smw/shdr.x The flux units were not being copied when the spectrum header is copied. (3/31/94, Valdes) t_sarith.x The string used to read in the aperture, band, and beam lists was SZ_FNAME which is too short for possible input lines. Changed the lengths to SZ_LINE. (3/31/94, Valdes) splot.par Changed the mode of line and band to be query so that if SPLOT is run from epar line and band queries will still be made. (3/21/94, Valdes) scombine/generic/icaclip.x scombine/generic/iccclip.x scombine/generic/icsclip.x The image sigma was incorrectly computed when an offset scaling is used. (3/8/94, Valdes) smw/shdr.x The call to shdr_units can specify "default" to restore the original units. (3/7/94, Valdes) smw/shdr.x splot/wrspect.x t_sarith.x t_fitprofs. Fixed problems when NP1 > 1 due to a IMSHIFT operation that moves the first physical pixel higher logical coordinates (or the first logical pixel in the image corresponds to a negative physical pixel coordinate). (3/5/94, Valdes) t_deredden.x Fixed bug causing memory corruption. (3/2/94, Valdes) scombine/icscale.x scombine/iclog.x 1. The exposure time was not being summed when summing spectra. 2. The exposure time is now printed whenever the exposure time is used even if the times are all equal. (2/24/94, Valdes) t_deredden.x doc/deredden.hlp Overriding a previous correction will apply to the original data rather than being incremental. (2/23/94, Valdes) smw/shdr.x noao$lib/smw.h Added structure fields for the flux units and shdr_open sets the field if possible. The flux units are determined first by any BUNIT keyword, then if the flux calibration flag is set by the magnitude of the data. (2/22/94, Valdes) smw/funits.x + noao$lib/funits.h + Added a flux units package. (2/21/94, Valdes) smw/shdr.x Added a routine to change the units. (2/19/94, Valdes) splot/usercoord.x The routine was not correct for input log-linear spectra (dc-flag=1). (2/19/94, Valdes) dispcor/dispcor.x Fixed typo (out[1] -> out[i]) which was causing the non-flux conserving mode to fail. (2/18/94, Valdes) splot.par specplot.par doc/splot.hlp doc/specplot.hlp 1. SPLOT will write out the current display units to the WCS attribute "units_display". 2. The default "units" task parameter now has the null string value to allow selecting the units given by "units_display" or the WCS units in that order. (2/18/94, Valdes) smw/smwsaveim.x smw/smwesms.x smw/smwmerge.x smw/smwndes.x smw/shdr.x 1. A new WCS attribute "units_display" has been defined. It is now stored in the image and transfered when copying WCS if it is defined. 2. When a spectrum is opened with shdr_open the user units are set to that specified by "units_display" if present. Otherwise the units of the WCS are used. (2/18/94, Valdes) noao$lib/smw.h shdr.x Added a field to the standard spectrum data structure to contain an error array. This array is filled in by shdr_open if a new flag value is used. Since there are no current tasks which use the new value this feature is unused in current tasks. (2/7/94, Valdes) noao$lib/smw.h t_fitprofs.x t_sarith.x splot/wrspect.x smw/smwsaveim.x Added a field to the standard spectrum data structure to contain the type of spectrum; i.e. spectrum, background, sigma. This type is stored in the BANDIDn keywords for multispec format data extracted by APEXTRACT. This information, if present, is now updated on outputing a new spectrum. This is particularly important for SCOPY when the bands are adjusted. (2/4/94, Valdes) dispcor/t_dispcor.x Deleted unused variable, junk, which somehow snuck in. (2/7/94, Valdes) t_specplot.x specplot.key doc/specplot.hlp Extended the :units command to allow specifying individual spectra. This is intended to allow multiple spectra to be plotted on a velocity scale with different zero points. (2/4/94, Valdes) smw/shdr.x smw/smwmw.x Added checks for the aperture number to be outside of the range of spectra in N-dimensional spectra. (1/8/94, Valdes) splot/splot.x splot/splotcolon.x splot/splot.key doc/splot.hlp splot.par A new options, "flip", has been added to select plotting the spectra in decreasing wavelength. (12/8/93, Valdes) dispcor/dispcor.x doc/dispcor.hlp When flux=no DISPCOR now computes an average across the output pixel rather than interpolating to the pixel center. This allows flux density conservation. (12/6/93, Valdes) identify/idinit.x Changed aclrr to aclri. (12/1/93, Valdes) doc/identify.hlp Added a description of the function coefficients. (12/1/93, Valdes) t_calibrate.x Added a warning if the exposure time is not found. (11/19/93, Valdes) sensfunc/sfoutput.x Instead of using the dispersion range from a single standard star the code now uses the maximum range and minimum dispersion. (11/15/93, Valdes) t_sbands.x + sbands.par + doc/sbands.hlp + x_onedspec.x onedspec.cl onedspec.men onedspec.hd mkpkg Added a new task to do bandpass spectrophotometry. (11/1/93, Valdes) rspectext.cl wspectext.cl doc/rspectext.hlp doc/wspectext.hlp onedspec.cl onedspec.men onedspec.hd Added two script tasks to convert between 1D image spectra and ascii text spectra. (10/22/93, Valdes) splot/splot.x splot/getimage.x splot/splotfun.x doc/splot.hlp If a wavelength scale is set with 'p' or 'u' then all subsequent spectra which are not dispersion calibrated will use that wavelength scale. (9/2/93, Valdes) t_sapertures.x The negative beam number warning is only issued if verbose = yes. (9/1/93, Valdes) dispcor/t_dispcor.x smw/smwesms.x The aperture IDs were not being properly propagated. (9/1/93, Valdes) t_fitprofs.x fitprofs.par doc/fitprofs.hlp 1. Fixed bug with close MWCS 2. Add a bands parameter for 3D images. (8/31/93, Valdes) t_deredden.x There was an error in freeing the sh pointer causing a segmentation violation after the spectra are successfully dereddened. (8/13/93, Valdes) splot/splot.x doc/splot.hlp The '(' and ')' keys will now cycle in bands if there is only one line. (8/10/93, Valdes) t_sapertures.x Modified to ignore attempts to set a negative beam number. (8/9/93, Valdes) splot/wrspect.x Added check against an error opening an output image in shdr_open. (8/4/93, Valdes) splot/fudgex.x Added check against a divide by zero if the cursor is not moved. (8/4/93, Valdes) splot/splotcolon.x The call to ans_hdr in the COMMENT case was missing the key argument. (8/3/93, Valdes) smw/smwonedspec.x For spectra which are dispersion corrected (DC-FLAG set) but have no units the code was setting the "label" rather than "units" to "angstroms". (8/3/93, Valdes) ============ V2.10.3 beta ============ splot.par splot/smooth.x doc/splot.hlp 1. The parameter file parameter prompt for the smoothing box size was modified to request an odd number. 2. If an even number is given, a warning is printed. 3. The help for the parameter boxsize indicates the the value must be odd. (6/28/93, Valdes) scombine/icscale.x The result of reading an @file for the zero or weight parameter was being placed in the scales array. This has been fixed. This affected only one IRAFX users. (6/28/93, Valdes) specplot.key Added missing :redshift and :velocity commands in the summary. Also sorted and cleaned up the multicolumn lists. (6/15/93, Valdes) t_dopcor.x dopcor.par doc/dopcor.hlp An new parameter has been added to allow combining sequential corrections in "multispec" format spectra. (6/15/93, Valdes) usercoord.x wrspect.x t_dopcor.x When smw_swattrs is called it is possible that the smw pointer will be changes (promoting an equispec format to multispec). If this happens and the pointer is part of an open shdr structure then the routine must invalidate the mwcs stuff and possibly open or update the shdr structure. (6/14/93, Valdes) bplot.cl doc/bplot.hlp The query parameters from SPLOT were added as hidden parameters in BPLOT to allow such things as writing output spectra without generating queries. (6/8/93, Valdes) identify/ididentify.x Added newlines when printing to the status line. This is needed when redirecting the output to a file in the IMRED scripts. (6/4/93, Valdes) identify/iddelete.x The label pointers needed to be updated when deleting a feature. (6/4/93, Valdes) t_specplot.x Modified the log output format to include the aperture number. (5/25/93, Valdes) t_sarith.x t_fitprofs.x wrspect.x The conversion from logical to physical coordinates was incorrect in that it truncated the physical coordinates. This could cause a subtle error in the coordinate system. (5/20/93, Valdes) identify/idmap.x The user specified vector axis is interpreted as a logical axis rather than a physical axis. This is only significant for transposed images. (5/14/93, Valdes) smw/smwsaxes.x smw/smwsaveim.x Transposed NDSPEC images are now allowed. (5/11/93, Valdes) getcalib.x Added a search for alternate standard names in a file names.men if that file is present. (5/4/93, Valdes) splot/splot.x splot/anshdr.x splot/avgsnr.x Added logging of the 'm' key output. (5/4/93, Valdes) splot/splot.x splot/splotfun.x 1. fun_do was not initializing the pointers passed to getimage. This proves to be a problem if an error occurs in getting the second image data, such as due to a mistype, so that the next time the routine is called an invalid pointer is found and a segmentation error occurs. 2. Added a time delay on an error message in fun_do followed by the function mode prompt. (3/2/93, Valdes) sensfunc/sfstds.x 1. Eliminated input stars/apertures that have no data. 2. Eliminated input flux points outside the range of the star/aperture wavelength range. 3. Improved the iterative fitting to drop back to a polynomial function if the lowest order spline does not fit. (2/12/93, Valdes) identify/idgraph.x Because these procedures used the SX array as temporary storage it caused the initialize option to fail. (2/3/92, Valdes) onedspec.men Removed reference to dispaxis. (1/21/93, Valdes) scombine/generic/icaclip.x scombine/generic/iccclip.x scombine/generic/icpclip.x scombine/generic/icsclip.x When using mclip=yes and when more pixels are rejected than allowed by the nkeep parameter there was a subtle bug in how the pixels are added back which can result in a segmentation violation. if (nh == n2) ==> if (nh == n[i]) (1/20/93, Valdes) sensfunc/sensfunc.h sensfunc/sfgraph.x sensfunc/sfginit.x sensfunc/sfimage.x sensfunc/sfcgraph.x sensfunc/sfextinct.x sensfunc/sfcolors.x sensfunc/sfcolon.x sensfunc/sfmove.x sensfunc/sfundelete.x sensfunc/sfdelete.x sensfunc/sfadd.x sensfunc/mkpkg sensfunc/sensfunc.key sensfunc.par doc/sensfunc.hlp Added color support. (12/17/92, Valdes) splot/gfit.x splot/eqwidthcp.x splot/deblend.x splot/splot.x identify/idmark.x Added color support. (12/8/92, Valdes) splot/sumflux.x 1. There was no check of whether esum was INDEF (a possible value) before multiplying by wpc. A check was added. 2. Because of a change to fp_equalr which occured on (10/18) the equivalent widths of flux calibrated data would be INDEF. To compensate the test is made on scaled data. (12/7/92, Valdes) units.h The conversion factors for millimeter and centimeter were off by a factor of 10. (12/4/92, Valdes) dispcor/dcio.x The wrong axis was selected in computing the logical NW. (11/24/92, Valdes) splot/splot.x splot/usercoord.x splot/splot.key splot/mkpkg doc/splot.hlp splot.par Changed the 'u' and 'p' keys to include additional ways to adjust the dispersion scale. In particular a doppler and zeropoint adjustment can be made using the cursor and entering a coordinate. Note that these two adjustments apply to all coordinate systems and units and do not require assuming a linear dispersion. In effect these are interactive, cursor marking versions of DOPCOR (without the flux correction) and SPECSHIFT. The coordinates are specified in the current displayed units. The code that does the adjustment is now well integrated with the MWCS rather than fudging the W0 and WP entries. The output of a new spectrum with 'i' will properly handle the adjusted coordinate system. (11/20/92, Valdes) bplot.cl irsiids/bplot.cl doc/bplot.hlp gcurval -> gcurval.dat Changed the name of the default cursor file to avoid stripping. (11/20/92, Valdes) splot/wrspect.x Fixed typo affecting 3D images: PNDIM(out) --> PNDIM(sh2). (11/19/92, Valdes) splot/wrspect.x A spectrum was being written using the W0, WPC of the current units rather than Angstroms as it should be. A call to un_ctran to convert to the MWCS units was added. (11/17/92, Valdes) t_specplot.x specplot.h doc/specplot.hlp specplot.key Added a color parameter for specifying the color of each spectrum on color graphics terminals. (10/30/92, Valdes) t_sarith.x t_fitprofs.x splot/wrspect.x 1. The doppler correction was still not properly handled. Instead of dividing by (1 - z) it should multiple by (1 + z) in order to be symmetric with the WCS driver. 2. To avoid roundoff with multispec format W0 and W1 (which are real) are not used when recalculating the w1, dw attribute values. Instead shdr_lw is called to get the double precision values. (10/16/92, Valdes) dispcor/t_dispcor.x dispcor/dcio.x doc/dispcor.hlp DISPCOR will now allow multiple uses of IDENTIFY dispersion solutions in a simple way with but with continuing protection against accidental multiple uses of the same dispersion solutions. When a spectrum is first dispersion corrected using one or more reference spectra keywords the dispersion flag is set and the reference spectra keywords are moved to DCLOGn keywords. If DISPCOR is called again without setting new reference spectra keywords then the spectra are resampled (rebinned) using the current coordinate system. If new reference spectra are set then DISPCOR will apply these new dispersion functions. Thus the user now explicitly enables multiple dispersion functions by adding reference spectra keywords and DISPCOR eliminates accidental multiple uses of the same dispersion function by renaming the reference spectra. The renamed keywords also provide a history. Some additional log and verbose output was added to better inform the user about what is done. (10/15/92, Valdes) t_specshift.x + specshift.par + doc/specshift.hlp + x_onedspec.x mkpkg onedspec.cl onedspec.men onedspec.hd imred$argus/argus.cl imred$ctioslit/ctioslit.cl imred$echelle/echelle.cl imred$hydra/hydra.cl imred$iids/iids.cl imred$irs/irs.cl imred$kpnocoude/kpnocoude.cl imred$kpnoslit/kpnoslit.cl imred$specred/specred.cl imred$argus/argus.men imred$ctioslit/ctioslit.men imred$echelle/echelle.men imred$hydra/hydra.men imred$iids/iids.men imred$irs/irs.men imred$kpnocoude/kpnocoude.men imred$kpnoslit/kpnoslit.men imred$specred/specred.men The new task SPECSHIFT applies a coordinate system shift to selected spectra. For linear coordinate systems this is done by changing the wavelength of the first physical pixel. For nonlinear systems the existing shift coefficient is adjusted. (10/14/92, Valdes) dispcor/dcio.x Added step to update the linear part of the nonlinear WCS. This is mostly cosmetic. (10/14/92, Valdes) dispcor/idmap.x Changed the way the image is opened to avoid updating the WCS. (10/14/92, Valdes) *doc/onedspec.hlp smw.x 1. Spectra in a single image which all have the same linear dispersion are now stored with linear axis types. This gives a simpler header structure than the multispec axis type for this common case. This modification applies to 1, 2, and 3 dimensional images. 2. Extensions were added to allow importing spectra which use a different WCS driver than multispec or linear. (10/13/92, Valdes) doc/onedspec.hlp First an error in a font switch causing part of the text to all be in standout. (10/9/92, Valdes) scombine/t_scombine.x scombine/icombine.h scombine/icombine.com scombine/icombine.x scombine/icscale.x scombine/iclog.x scombine/generic/iccclip.x scombine/generic/icsclip.x scombine/generic/icpclip.x scombine/generic/icaclip.x scombine/generic/icgrow.x scombine.par doc/scombine.hlp The weighting was changed from using the square root of the exposure time or spectrum statistics to using the values directly. This corresponds to variance weighting. Other options for specifying the scaling and weighting factors were added; namely from a file or from a different image header keyword. The \fInkeep\fR parameter was added to allow controling the maximum number of pixels to be rejected by the clipping algorithms. The \fIsnoise\fR parameter was added to include a sensitivity or scale noise component to the noise model. (10/2/92, Valdes) splot/usercoords.x This routine no longer puts a default value in the wavelength parameters. This will allow using SPLOT to noninteractively set wavelengths. (9/17/92, Valdes) identify/idfitdata.x identify/idmark.x identify/idgdata.x identify/idcenter.x IDENITFY/REIDENTIFY use the standard SHDR interface which eliminates data with negative physical coordinates. This occurs because NP1 is then computed to be positive. The case where this can occur is using IMSHIFT with a positive shift though explicit use of NP1 could also do it. However, the above routines use the MWCS logical-physical and physical-logical conversions without accounting for NP1. This results in incorrect results. The routines were fixed to apply NP1. (9/16/92, Valdes) splot/splot.x splot/getimage.x Modified getimage to also allow specification of the aperture. This is needed in order for the scrolling through lines, the '(' and ')' keys, to work correctly by indicating that the aperture number is to be ignored. (9/8/92, Valdes) dispcor/dcio.x The computation of the aperture center was not prepared to deal with INDEF aperture limits. (9/3/92, Valdes) smw.x There was a type mismatch when setting aplow and aphigh to INDEF. Changed to set them to INDEFD. This bug caused the APLOW and APHIGH keywords to appear in the image header unexpectedly with IDENTIFY on the VaxStation port. (8/31/92, Valdes) ecidentify/ecgetim.x identify/idnoextn.x The algorithm for stripping the image extension could get confused with the name such as ec025.john.ec --> ec025n.ec. The routines were modified to use xt_imroot which does a better job. (8/31/92, Valdes) t_sarith.x smw.x Added provision to save multispec title in MSTITLE keyword when separating out multispec spectra or converting to simple 1D format and to restore the title when combining 1D spectra into a multispec spectrum. (8/24/92, Valdes) sensfunc/sfsvstats.x A real variable was used where a double should have been giving round off errors in the computation of the standard deviation. (8/13/92, Valdes) t_sfit.x Output images are of type real regardless of the input type. (8/11/92, Valdes) scombine/icscale.x The zero level offsets were being incorrectly scaled twice. (8/10/92, Valdes) dispcor/refgspec.x Arguments incompatible with intrinsic function: sortval = mod (sortval + 24. - timewrap, 24.) Changed second 24. to 24.0D0. (8/10/92, Valdes) splot/fixx.x Arguments incompatible with intrinsic function: z1 = max (0.5, min (double (SN(sh)+.499), shdr_wl(sh, z1))) z2 = max (0.5, min (double (SN(sh)+.499), shdr_wl(sh, z2))) The 0.5 should be double. (8/10/92, Valdes) shdr.x Arguments incompatible with intrinsic function: on lines 268-269, 319-320, need to real the image limits. (8/10/92, Valdes) units.x onedspec.hlp The velocity label was changed to "cz velocity" to show that it is c*z and not a true velocity. (7/30/92, Valdes) dispcor/t_dispcor.x Changed WCSDIM to be 3 in the case of a 3D image. (7/27/92, Valdes) splot/splot.x Getttng a new image always forces the data to be read even if the same image is given. (7/20/92, Valdes) smw.x Altered the way in which old APNUM keywords are deleted to avoid a problem with the limit on the number of keywords that can be mapped with imofnl in the imio$db package. (7/17/92, Valdes) splot/replot.x Replaced gascale with gt_ascale to do the autoscaling only within the GTOOLS window. (7/16/92, Valdes) t_sapertures.x sapertures.par doc/sapertures.hlp Modified this task to allow resetting the WCS to pixels and changing any of the WCS fields. (7/2/92, Valdes) splot/wrspect.x Harmless typo fix mwopen -> mw_open. (7/1/92, Valdes) t_sarith.x Modified to properly handle 3D images. (7/1/92, Valdes) t_sarith.x Onedspec output format now splits out the bands as well. (7/1/92, Valdes) ======= V2.10.2 ======= t_dopcor.x doc/dopcor.hlp 1. The conversion from velocity to z was incorrect. 2. Checks were added for reasonable velocities and redshifts. 3. A negative sign for a header parameter changes the sense of a redshift if the parameter is a redshift. ======= V2.10.1 ======= t_deredden.x The declaration for decode_ranges was incorrect. Changed from bool to int. (7/21/92, Valdes) shdr.x 1. An earlier fix left the aaxis parameter undefined for longslit images. This meant that references to IM_LEN(im,aaxis) yield the dimension of the image rather than the axis length. 2. Discovered that image sections don't automatically reset the lengths of the higher dimensions to 1 as assumed in several tasks. SHDR now resets these. (7/20/92, Valdes) ======= V2.10.0 ======= irsiids/batchred.cl The parameter "recformat" in STANDARD and CALIBRATE and "apertures" in CALIBRATE are no longer present. The BATCHRED task was modified to not add these parameters to the PROCESS script. (7/6/92, Valdes) shdr.x The resampling in shdr_linear and shdr_rebin is now an average rather than a sum. (6/23/92, Valdes) splot/wrspect.x New output spectra are created type real. (6/22/92, Valdes) scombine/icscale.x scombine/t_scombine.x The exposure time is only required now if scaling or weighting by the exposure time. (6/22/92, Valdes) mwcs$wfmspec.x The inverse coordinate transform could fail in some cases. An extra check was added to avoid this. (6/17/92, Valdes) smw.x Added special case to convert a 2D image which has a second dimension length of 1 to a 1D image. Note this is different than a 1D section of a 2D image. (6/17/92, Valdes) shdr.x Added additional check for a 2D image with the dispersion axis along a dimension of length 1; for example [800,1] with dispaxis=2. This will also give an warning and then choose the appropriate axis. (6/17/92, Valdes) t_sarith.x t_fitprofs.x splot/wrspect.x The doppler correction was not properly handled when creating a new output spectrum. (6/17/92, Valdes) shdr.x The change to catch an inappropriate dispersion axis for TWODSPEC images was not complete. I'm not fully sure anymore what should be done but I made the checking better. (6/3/92, Valdes) t_sinterp.x Change the roundoff when computing the number of pixels to nearest integer. (6/3/92, Valdes) scombine/t_scombine: There was a bug in which the j loop index was redefined in the loop when checkin the MINMAX rejection limits. (6/1/92, Valdes) t_sarith.hlp Needed to allocate the coeff pointer in sa_1d. Attempting to copy a long slit spectrum to onedspec format caused a segmentation violation. (5/27/92, Valdes) doc/scopy.hlp doc/sarith.hlp The examples incorrectly showed nsum to be a task parameter. (5/21/92, Valdes) bplot.cl The error when a nonexistent image was specified was not properly handled. (5/18/92, Valdes) splot/splot.key Clarified 'o' key description. (5/14/92, Valdes) smw.x scombine/t_scombine.x 1. Added additional commands to delete keywords which should not be present. 2. When mapping the output image a copy of the input image header is made. This header may contain WCS keywords which are invalid. A call is now made to smw_openim() which has the effect of cleaning up the header. (5/14/92, Valdes) ===== V2.10 ===== doc/*.hlp doc/sys/onedv210.ms + Make documentation changes to allow all revisions to be obtained with "help onedspec.* sec=rev". The package revisions summary was prepared and installed. (5/6/92, Valdes) splot/splot.x splot/splotcolon.x splot/splot.key splot.par doc/splot.hlp 1. Added the option "wreset" to have the graph limits automatically restored to the initial values for each new spectrum. 2. Added colon commands to change the options interactively. (5/6/92, Valdes) shdr.x A 1D image section of a 2D (not multispec) image which is not along the specified dispersion axis will now print a warning and use the specified axis rather than aborting. (5/6/92, Valdes) smw.x shdr.x Added checks in the case of log-linear dispersion (DC-FLAG=1) that the coordinates make sense. Otherwise a linear dispersion is used. This comes up when DC-FLAG is set to 1 but the other coordinate information is incorrect or missing resulting in pixel coordinates. Without this check there would be an attempt to take the dex of a pixel coordinate causing a floating overflow error. (5/5/92, Valdes) identify/t_reidentify.x Added call to strip whitespace from the reference image name accidentally entered by the user. Extra whitespace caused a mysterious behavior in finding a database entry which was hard to track down. (5/1/92, Valdes) identify/idinit.x Added check to not unmap the database if it was never openned. This would cause a segmentation error if a database was never accessed. (5/1/92, Valdes) identify/iddb.x identify/t_reidentify.x identify/identify.h The database interaction was poorly done resulting in repeatedly opening and reading the database file. If there are many entries this becomes very slow. The DTTEXT routines were modified to add a remap routine allowing a database file to remain open but automatically closing and opening a new database if the database name changes. It also allows changing access modes by closing and opening the file but leaving the rest of the data structure alone. This avoids the need to rescan the file each time the access mode changes and allows existence checks for entries (from the original scan) while still in APPEND mode without having to switch file access modes. The identify structure was extended to include the database pointer so that id_dbread and id_dbwrite could use the remap routine without closing the database between calls. Thus, repeated calls to id_dbread and id_dbwrite for the same image are much more efficient and the database is only scanned once in the first read. There is still a slight inefficiency in that switching between reading and writing requires reopening the file. For the purposes of simple checking for existing entries without needing to read the entry and change modes a new routine id_dbcheck was added. Finally, the logic in REIDENTIFY was modified so that repeated mode switches between reading and writing are avoided. The id_dbcheck routine is used when override checking is enabled. REIDENTIFY is now much faster when dealing with large numbers of spectra in images (long slit with a fine step size or multifiber spectra with many fibers). (4/30/92, Valdes) smw.x An axis map is set for 1D multispec images. (4/27/92, Valdes) shdr.x Shdr_system was changing the wrong pointers causing later calls to shdr_open to produce an invalid coordinate system. (2/18/92, Valdes) scombine/t_scombine.x scombine/iclog.x scombine/icscale.x scombine/icombine.x scombine.par doc/scombine.hlp 1. The gain and read noise must be read when the image is open and are stored in the RA and DEC spectrum structure parameters. 2. NCOMBINE is not used on input. 3. The exposure time is taken from the spectrum structure and the keyword name is no longer a parameter. (2/12/92, Valdes) scombine/icscale.x Changed action for negative scaling, etc. to a warning. (2/10/92, Valdes) calibrate.par sensfunc.par standard.par onedspec.par doc/calibrate.hlp doc/sensfunc.hlp doc/standard.hlp doc/package.hlp 1. Redirected observatory parameter to package parameter 2. Added observatory package parameter (2/6/92, Valdes) ecidentify/ecdofit.x ecidentify/ecffit/ecfcolon.x 1. The rejected points were not being reset between fits resulting in misleading RMS values. 2. Expanded the :show in fit mode. (2/6/92, Valdes) t_standard.x standard.key 1. The abbreviation of N or Y for NO or YES is now allowed. 2. The key file was moved from noaolib$scr to onedspec$ (2/6/92, Valdes) t_calibrate.x t_standard.x irsiids/t_bswitch.x Converted from obsimcheck to obsimopen. (2/4/92, Valdes) identify/* doc/identify.hlp Added feature labels. (1/30/92, Valdes) refspectra.par doc/refspectra.hlp dispcor/ref* 1. Added group parameter 2. Sort parameter is now used as a double 3. If group or sort keywords are specified but not found it is a fatal error. (1/29/92, Valdes) t_sfit.x sfit.par continuum.par eccontinuum.par doc/sfit.hlp doc/continuum.hlp Added the new "markrej" parameter used in ICFIT to control whether rejected points are marked. (1/21/92, Valdes) getcalib.x The standard star parameter query will now print the file "standards.men" in the calibration directory if the user supplied name does not match an available file. (1/20/92, Valdes) irsiids/t_widstape.x Modified the widstape task to support the new mag tape name syntax. (1/7/92, Davis) identify/t_reidentify.x If there is no dispersion function then no shift will now be computed. (11/18/91, Valdes) ecidentify/ecffit/ecffit.x Removed the progress print statements because they mess up the screen clear on XTERM. Someday it might be desirable to put them back again. (11/11/91, Valdes) doc/bswitch.hlp Fixed minor typo where the keyword BEAM-NUM was refered to as BEAM. (6/19/91, Valdes) t_combine.x 1. The final coord scale must have WPC > 0. Needed to add an abs(WPC) in case an input spectrum had negative WPC. (5/3/91, Valdes) getnimage.x t_bswitch.x Moved procedure add_spec from getnimage.x to t_bswitch.x (4/25/91, Valdes) t_calibrate.x MWCS modifications. Aperture selection option removed. (4/24/91, Valdes) splot/getimage.x splot/splotfun.x splot/splot.x splot/replot.x splot/autoexp.x Modified to use separate coordinate array. (3/29/91, Valdes) iwewcs.x gmwcs.x wfinit.x wfmspec.x mwopenim1.x mkpkg idsm_keywrds.x load_hdr.x Initial WCS modifications (3/28/91, Valdes) ==== V3.1 ==== t_calibrate.x Moved calibration messages outside of loop over bands. (3/26/91, Valdes) ecidentify/ecidentify.x ecidentify.par Added autowrite parameter which is similar to that of IDENTIFY. (3/21/91, Valdes) ecidentify/ecffit/ecfsolve.x The residual vector was not correctly set by ecf_solve. (3/18/91, Valdes) t_scopy.x 1. If no beam number is found for ONEDSPEC images it defaults to 1. 2. The image titles are converted to APID for ONEDSPEC images going to MULTISPEC if the title differs from the main MULTISPEC title. 3. Added checking for repeated aperture numbers in ONEDSPEC to MULTISPEC. (3/13/91, Valdes) identify/t_reidentify.x reidentify.par Interactive parameter is now four valued to allow better control of reidentification queries such as in the IMRED scripts. dispcor/ecio.x dispcor/ecdispcor.x 1. Fixed datatype error when reading the low and high values from the APNUM keywords. 2. Added REFSHFT capability for use with the FOE package. 3. Added support for third dimension produced by APEXTRACT. (1/31/91, Valdes) t_scopy.x Fixed bugs in renumber option. It was renumbering before checking the aperture list rather than after. (1/31/91, Valdes) ecdispcor.par The parameter override needed to be changed to the parameter rebin. (1/16/91, Valdes) identify/iddb.x REIDENTIFY checked if an entry in the database was absent by checking for an error return from id_dbread. The error return was made without first closing the database file. When reidentifying a large number of images/apertures the task would run out of file descriptors. The fix was to put a database close statement before the error call. (1/7/91, Valdes) splot/getimage.x load_hdr.x 1. Added error checking for aperture out of bounds in multispec format. 2. Added automatic limit on band specification in multispec format. 3. Added missing nband=0 for case of 1D image section. (1/7/91, Valdes) identify/idlinelist.x The 'l' did not find lines because the first pass to finding MAXFEATURES did not discriminate against finding the same line with different user coordinates. This locked out weaker features during the finding. Then when the features were added to the feature least the MINSEP parameter eliminated the duplicates resulting in fewer than MAXFEATURES features. (12/19/90, Valdes) splot/stshelp.key splot/getimage.x splot/anshdr.x splot/mktitle.x splot/mkpkg splot/splotfun.x splot/splot.x splot/splot.key splot.par 1. Added support for bands in 3D images. This involved adding a band task parameter and a '%' key. 2. The 'o' overplot key is now a toggle for the next graph. It does not query for the image. The user follows 'o' with 'g', '#', or '%'. (12/19/90, Valdes) splot/deblend.x splot/gfit.x + splot/stsfit.x splot/stsfit.key + splot/splot.x splot/mkpkg noao$lib/scr/splot.key - splot/splot.key + 1. The background was not subtracted in the initial amplitude estimate. 2. The tau parameter in the call the hfti was too large. Changed from .001 to 1E-10. 3. Added new gaussian fitting function, key 'G'. 4. Changed line help to use a file rather than coding the print statements. 5. Moved key file to source directory. (12/19/90, Valdes) t_scopy.x 1. Added a renumber option. 2. For an input list of 1D images without onedspec extensions one can uses a null aperture list to pack them into a single multispec image. (12/13/90, Valdes) splot/deblend.x 1. Fixed bug that was scaling twice in computing the initial peak values. This was also fixed in NEWIMRED. 2. Last deblending prompt was not erased. Replaced with exiting deblending message. (12/4/90, Valdes) t_sfit.x Fixed logfile prefix string from STFONTINUUM to SFIT. (11/20/90, Valdes and Seaman) t_bswitch.x t_calibrate.x t_standard.x sensfunc/sfimage.x bswitch.par calibrate.par standard.par sensfunc.par doc/bswitch.hlp doc/calibrate.hlp doc/standard.hlp doc/sensfunc.hlp Converted to using observatory database. (11/19/90, Valdes) t_fitprofs.x onedspec.hd doc/fitprofs.hlp + 1. Modified to write output model even if there is a fitting error to avoid output images with not pixel file. 2. The image title was not dereferenced when generating the log title string with onedspec format. 3. Added help page. (11/2/90, Valdes) identify/iddoshift.x Added image label shift info. (10/29/90, Valdes) indentify/t_reidentify.x 1. The entrance into the interactive mode was not initializing such things as the feature type and width. It now initializes using parameters from IDENTIFY if needed. 2. When not in verbose mode but when entering the interactive IDENTIFY it did not print the revised statistics line. This has been fixed. (10/22/90, Valdes) ecidentify.par noao$imred/echelle/doc/ecidentify.hlp ecidentify/ ecidentify/ecffit noao$lib/scr/ecidentify.key --> ecidentify/ecidentify.key noao$lib/scr/ecffit.key --> ecidentify/ecffit/ecffit.key 1. Moved key files to source directory. 2. Made changes allowing iterative rejection in the echelle dispersion tasks. This adds three parameters to the ECIDENTIFY parameter file, the database files (backwards compatible), and colon commands in fitting mode. The feature lists printed and in the database now include an additional column to indicated rejected lines. (10/15/90, Valdes) splot/splot.x Changed the temporary spool file to be in tmp$. (10/3/90, Valdes) doc/dispcor.hlp Added notes warning that flux conservation will change the units of the flux. (10/3/90, Valdes) splot/splot.x doc/splot.hlp noao$lib/scr/splot.key Added :log and :nolog commands to toggle logging of measurements. (10/3/90, Valdes) load_hdr.x Header keyword datatype conversion errors are now a warning. (10/3/90, Valdes) identify/idcolon.x Unrecognized or ambiguous colon commands are now noted. (10/2/90, Valdes) dispcor.par (also in imred.iids and imred.irs) dispcor/dispcor.x dispcor/dcio.x dispcor/ranges.x doc/dispcor.hlp 1. is_in_range not considers INDEF to be equivalent to MAX_INT. This has the effect that if no range is specified, "", then INDEF is in the range while is some specific range which is not open ended will not include INDEF in the list. 2. Added new verbose parameter and modified program to print messages when spectra are skipped. 3. Ignoreaps now only applies to the global wavelength determination. (10/2/90, Valdes) ecidentify/ecffit/ecfgraph.x Put a check to avoid trying to plot points outside the defined window. Plotting very deviant points outside the rescaled window causes a gio floating overflow error. This fix is a workaround before the real bug gets fixed. (9/20/90, Valdes) identify/idgdata.x identify/idmap.x Make changes to allow working with 3D multispec images. (9/14/90, Valdes) calibrate.x sensfunc/sfgimage.x Make simple changes to allow working with 3D multispec images. (9/12/90, Valdes) splot/splot.x splot/fudgex.x doc/splot.hlp 1. Changed the 'x' key to use only the x cursor values and connect the nearest pixels. (8/31/90, Valdes) 2. Added a new option, xydraw, to select drawing between x-y points instead of using nearest pixel values. (9/5/90, Valdes) bplot.cl doc/bplot.hlp BPLOT revised to use new SLIST. This is a much simpler and better script. It selects on aperture numbers. (8/24/90, Valdes) t_slist.x doc/slist.hlp SLIST now has a format parameter. In multispec mode more approriate output is obtained. The multispec mode allows selection by aperture. The short header listing is good for making lists for scripts to scan. (8/24/90, Valdes) ================================ V3 of ONEDSPEC installed 8/23/90 ================================ fortran/polft1.f Fixed bug in which reference was made to a part of some work arrays not used by the program. This caused an arithmetic error on the MIPS. (7/20/90, Valdes) onedspec.cl onedspec.men onedspec.cl bplot.cl doc/msdispcor.hlp + doc/bplot.hlp 1. Added MSDISPCOR to the package. 2. Replaced the old BPLOT with the code from MSBPLOT. This program also uses change to SPLOT which selects by aperture number. load_hdr.x splot/splot.x splot/mktitle.x splot/deblend.x splot/eqwidth.x splot/eqwidthcp.x splot/anshdr.x + splot/anssave.x - splot/mkpkg doc/splot.hlp noao$lib/scr/splot.key t_standard.x 1. Added mapping of APID keyword, if present, to the iids structure LABEL field. 2. SPLOT, STANDARD modified to use LABEL field instead of IM_TITLE. 3. SPLOT modified to use different line type during overplotting. 4. Removed maximum number limit for deblending. 5. SPLOT now uses aperture number if the image is multispec/echelle. 6. Added a new key, "#", to get new aperture without query about image. t_specplot.x load_hdr.x idsm_keywrds.x dispcor/dcio.x dispcor/dispcor.x dispcor/msdispcor.x dispcor/ecdispcor.x sensfunc/sfoutput.x Added CD1_1 as allowed substitute for WPC and CDELT1 onedspec.hd The revisions help is now a sys option. t_scopy.x + t_sapertures.x + scopy.par + sapertures.par + doc/scopy.hlp + doc/sapertures.hlp + mkpkg x_onedspec.x t_msselect.x - 1. New task SCOPY added to handle copying and extraction apertures between different formats 2. New task SAPERTURES added to modify APNUM and APID info using a text file. 3. Removed MSSELECT/ECSELECT as they are replaced by SCOPY. onedspec.cl onedspec.hd onedspec.men x_onedspec.x t_sfit.x + sfit.par + continuum.par t_ecctm.x - continuum.cl - mkpkg doc/sfit.hlp doc/continuum.hlp 1. New task SFIT added. This is a modification of Rob Seamans ECCONTINUUM task. 2. A new output option was added to output the data with any rejected points replaced by fitting values. This replacement also may be used with the difference and ratio output types. 3. ECCONTINUUM is just a different name for SFIT. 4. CONTINUUM is just a different name for SFIT. The script version based on FIT1D has been removed. onedspec.par Incremented version number to V3. t_specplot.x specplot.par specplot.key + doc/specplot.hlp noao$lib/scr/specplot.key - 1. Added apertures and logfile parameters. 2. Moved key file to source directory 3. Added to save sp_vshow parameters in logfile. 4. Added option to undelete last deleted spectrum. 5. Extended to also plot anything in third dimension. 6. Added sysid parameter. 7. Added ability to set line type to histogram dispcor/dispcor.x 1. Added aperture position information to APNUM keyword. msdispcor.par + dispcor/msdispcor.x dispcor/msio.x dispcor/msdispcor.com dispcor/mkpkg 1. Added logfile. This is particularly for logging reference shift interpolation information. 2. Added support for 3D format 3. Added aperture position info for spatial interpolation. The positions are read for the object from the APNUM keyword, propagated as needed, and read from the database for the dispersion functions. 3a. A reference shift spectrum may be specified. 4. Communicate aperture number through ms_seteval call and then do a lookup for all other parameters. 5. Propagate independent beam number. 6. The number of apertures in the reference spectrum need not be the same as the object spectrum though all object spectra must have a reference dispersion function. 7. Everything is now done by aperture number. This allows line numbers to change, particularly between the dispersion reference image and the data image. 8. Dependence of msdispcor.x on msdispcor.com removed. 9. Fixed rounding problem in wavelengths. dispcor/ecdispcor.x dispcor/ecio.x dispcor/ecdispcor.com dispcor/mkpkg 1. Everything is done by aperture number using a call to ec_seteval. This removes dependence on ecdispcor.com 2. Aperture limit info is propagated identify/identify.x --> identify/t_identify.x identify/identify.h identify/linelist.x + *.x identify/iddoshift.x identify/iddb.x identify.par mkpkg 1. Added an autowrite parameter to IDENTIFY. 2. Simplified linelist package by passing id pointer. This affects calling sequence of a number of procedures. 3. Zero weight points are ignored and the number of valid features used in the shift is printed. 4. New id structure made some minor changes in main task. 5. Dependence on center1d.h removed by including emmission/absorption definitions in identify.h and new field in id structure. identify/iddb.x identify/identify.h identify/idgdata.x identify/ididentify.x identify/idinit.x identify/identify.key + identify/idmap.x + identify/idnoextn.x + identify/idgetim.x - idreplot.x - mkpkg Added support for multispec format. 1. The database name string includes aperture number. 2. Image remains open for efficient movement through 2D image. 3. A number of new fields are part of the id structure including the image pointer, spectrum format, image axis, line number, aperture info, and structure for saving copies of id structure. 4. Added j, k, o keys to scroll through apertures. 5. Changes are saved internally for multiple apertures until done with the image. identify/idreidentify.x --> identify/t_reidentify.x reidentify.par reidentify.x - 1. REIDENTIFY completely rewritten for efficiency, support for multiaperture data, and for additional features and algorithms. 2. The same number or order of apertures is not required. 3. REIDENTIFY parameters changed to include interactive, track, override, addfeatures, coordlist, match, maxfeatures, minsep, graphics, cursor, and answer. ------------------------------------------------------------------------------ load_hdr.x splot/getimage.x 1. Fixed bug that was setting NP1 to 1 instead of zero. 2. Now load_hdr adjusts W0 to first good pixel. 3. SPLOT no longer adjust W0 to first good pixel since it is done by load_hdr. (7/11/90, Valdes) onedspec$ecidentify/ecidentify.x onedspec$ecidentify/t_ecreid.x onedspec$ecidentify/ecdofit.x onedspec$ecidentify/ecffit/ecffit.x onedspec$ecidentify/ecffit/ecfsolve.x 1. Added a fixed order fitting option so that ECREIDENTIFY will refit with order fixed. This is mostly just passing a parameter down to ecf_solve. (6/12/90, Valdes) onedspec$dispcor/msio.x If an aperture identify entry was missing from the database the task would quit with not error message. This is fixed now though the new version to be installed soon will not have this approach to mapping the dispersion solutions anyway. (6/4/90, Valdes) onedspec$doc/splot.hlp Included query parameters since a user was asking about them. (6/1/90, Valdes) ==== V2.9 ==== onedspec$t_sums.x onedspec$sums.par If an image already exists a new query parameter will be used to get a new image name. (3/29/90, Valdes) onedspec$batchred.cl Turned on extinction correction in calibrate for the case the spectra are not already extinction calibrated. (3/29/90, Valdes) onedspec$ecidentify/ecdofit.x When INDEF valued lines were used and features were deleted during fitting the resorting of the feature list would get messed up. This is a very rare condition which has now been fixed. (3/16/90, Valdes) onedspec$identify/idgdata.x onedspec$dispcor/dcio.x onedspec$dispcor/ecdispcor.x onedspec$dispcor/dispcor.x onedspec$dispcor/msdispcor.x onedspec$dispcor/disptable.r onedspec$sensfunc/sfoutput.x onedspec$load_hdr.x onedspec$idsm_keywrds.x onedspec$t_specplot.x Added CDn_n to the set of keywords which may be used for the dispersion. (2/8/90, Valdes) onedspec$splot/eqwidths.x onedspec$splot/sumflux.x The equivalent width is now computed using the ratio of the spectrum to the continuum. The previous approximation is printed in the log file for comparison. (3/5/90, Valdes) onedspec$splot/splot.x onedspec$splot/mktitle.x 1. For :show added test for existence of spool file and an appropriate message if it does not exist. 2. Increase length of plotted title to SZ_LINE from 32. (3/2/90, Valdes) onedspec$identify/iddofit.x When INDEF valued lines were used and features were deleted during fitting the resorting of the feature list would get messed up. This is a very rare condition which has now been fixed. (1/17/90, Valdes) onedspec$dispcor/ecdispcor.x The sum option was actually the same as the average option! (1/15/90, Valdes) 199c199 < call calloc (spec, nw, TY_REAL) --- > call malloc (spec, nw, TY_REAL) 208a209 > call aclrr (Memr[spec], nw) 212c213,218 < case SUM, AVERAGE: --- > case SUM: > do j = 1, nw > if (Memr[spec+j-1] != 0.) > Memr[outdata+j-1] = Memr[outdata+j-1] + > Memr[spec+j-1] > case AVERAGE: onedspec$load_hdr.x Add limit checks for NP1 and NP2. (11/8/89, Valdes) onedspec$sensfunc/sfstds.x The data for apertures which are in the aperture list when the ignoreaps flag is set was not being read unless the aperture list included aperture 1. This has been fixed. (11/8/89, Valdes) onedspec$load_hdr.x onedspec$t_specplot.x onedspec$splot/splot.x onedspec$splot/mktitle.x 1. The new APID titles for multispec format spectra is now mapped into the unused LABEL element of the IDS structure. For other formats or if the keyword is missing then the image title is substituted. 2. SPLOT now labels with the LABEL string rather the the image title to allow individual titles for multispec spectra. 3. SPECPLOT uses the APID titles if present. (10/27/89, Valdes) onedspec$identify/iddofit.x The order of evaluation in complex if statements is not necessarily left to right as I'd thought. This caused a bus error on the Convex. The particular change is as follows: old: if (rejpts != NULL && Memi[rejpts+k-1] == YES) WTS(id,j) = 0. else WTS(id,j) = Memd[wts+k-1] new: WTS(id,j) = Memd[wts+k-1] if (rejpts != NULL) if (Memi[rejpts+k-1] == YES) WTS(id,j) = 0. onedspec$load_hdr.x Modified header access to use imaccf to check if header parameter exists rather than rely on an error return. On a Sun3x the error checking results in an exception. (9/28/89, Valdes) onedspec$t_calibrate.x The data outside of calibration range message was changed to print how many pixels are outside of the calibration range is printed once. (8/8/89, Valdes) ==== V2.8 ==== onedspec$idsmtn.h onedspec$t_subsets.x onedspec$t_standard.x onedspec$t_slist.x onedspec$t_shedit.x onedspec$t_flatdiv.x onedspec$t_calibrate.x onedspec$t_bswitch.x onedspec$t_addsets.x onedspec$load_hdr.x onedspec$idsm_keywrds.x onedspec$sensfunc/sfimage.x onedspec$splot/mktitle.x onedspec$shparams.par The exposure time is used as a real rather than an integer (7/11/89, Valdes) onedspec$t_specplot.x The wavelengths were off by one pixel because CRPIX was uninitialized and so defaulting to zero instead of 1. (6/6/89, Valdes) onedspec$sensfunc/sfstds.x Previously added check for INDEF exposure time extended to also check for zero exposure time. (6/1/89, Valdes) onedspec$dispcor/msio.x Because of a recent change in IDENTIFY in which 2D images with a second dimension of 1 are treated as 1D images a related change was required to allow multispec format spectra to be dispersion corrected if there is only one spectrum. (5/15/89, Valdes) onedspec$load_hdr.x Airmass values less than 1 are mapped in INDEF to force an airmass computation. (5/8/89, Valdes) onedspec$splot/getimage.x If the spectrum has only 1 line (even if it is two dimensional) there is no query for the line number. Also the line number given by the user for 2D images is limited to the range of image lines to avoid an out of bounds error. (5/6/89, Valdes) onedspec$dispcor/dispcor.x onedspec$dispcor/dcio.x onedspec$doc/dispcor.hlp 1. The output spectrum will be of real datatype if the input spectrum is short datatype. 2. The last dispersion function defined for a 2D image is used for all lines of a 2D image. (5/6/89, Valdes) onedspec$doc/dispcor.hlp Fixed mistake in description of the ignoreaps parameter. (5/6/89, Valdes) onedspec$identify/identify.h onedspec$identify/*.x 1. Added weights to the IDENTIFY data structure. 2. Modified files to use the weights parameter. 3. The weights are currently used to flag iteratively rejected points during fitting of the dispersion function. 4. Reidentify now prints the RMS of only those lines used in the fit and shows the number of points fit. 5. The database files now include a column for the weights. (5/5/89, Valdes) onedspec$t_standard.x onedspec$standard.par 1. A warning message is printed if the exposure time is not found. 2. Removed ennumerated value in parameter file. (4/10/89, Valdes) onedspec$sensfunc/sfstds.x 1. Standard values with negative counts are ignored thus avoiding arithmetic problems. 2. Warning message is printed if the exposure time in not defined and a value of 1 is used. (4/10/89, Valdes) onedspec$dispcor/msio.x + onedspec$dispcor/msdispcor.com + onedspec$dispcor/msdispcor.x + onedspec$t_msselect.x + onedspec$dispcor/dispcor.x onedspec$dispcor/mkpkg onedspec$mkpkg onedspec$x_onedspec.x 1. New task MSDISPCOR to make dispersion correction in related spectra in "multispec" format. This is a cross between ECDISPCOR and DISPCOR. 2. New tasks MSSELECT and ECSELECT to extract subsets of spectra from echelle and multispec format. ECSELECT is simply an alternate task name for MSSELECT. 3. These new tasks use the procedures in the ONEDSPEC object library but appear as logical tasks in the new MSRED package and in the ECHELLE package. (3/29/89, Valdes) onedspec$dispcor/dispcor.x When not flux conserving the procedure asieval was being called with a double value instead of a real giving completely incorrect results. (3/22/89, Valdes) onedspec$dispcor/refmatch.x There was a bug in the matching option in which the object image was begin substituted for the reference image. (3/14/89, Valdes) onedspec$t_specplot.x onedspec$splot.par onedspec$splot/wrspect.x onedspec$load_hdr.x onedspec$identify/iddb.x 1. Modified SPECPLOT to accept "multispec" and "echelle" formats. 2. Modified SPLOT to accept "multispec" format for output. This is only cosmetic since it is the same as "echelle" format. 3. Modified ONEDSPEC header reader to accept "multispec" format. This is only cosmetic since it is the same as "echelle" format. 4. Modified IDENTIFY to not include the image section in the REFSPEC parameter for use with "multispec" format. (3/8/89, Valdes) onedspec$dispcor/dispcor.x onedspec$doc/dispcor.hlp Simple modification to allow task to operate on all lines in a 2D image. This is how the old program also worked. (3/8/89, Valdes) onedspec$t_calibrate.x 1. CALIBRATE did not take the differing lengths of the echelle orders into account and so gave many warnings about spectrum extends outside of flux calibration limits. 2. The warning is now only printed once per spectrum/order rather than for each pixel. (2/27/89, Valdes) onedspec$t_specplot.x Made CRPIX1 a real valued parameter. (2/27/89, Valdes) onedspec$t_widstape.x The function mtfile is now used to determine if the input file is a mag tape. Previously, the code was checking that the first two letters of the input file were 'mt', which fails for remote tape drives. (2/22/89 ShJ) onedspec$doc/refspectra.hlp A new help page for the refspectra task has been installed. (2/27/88, Davis) onedspec$doc/continuum.hlp Added a warning about near zero divisions. (2/14/89, Valdes) onedspec$identify/idlinelist.x onedspec$ecidentify/eclinelist.x Setting the coordinate line list to null no longer issues a warning. (2/13/89, Valdes) onedspec$specplot.x onedspec$doc/specplot.hlp noao$lib/scr/specplot.key 1. Added vertical shifts in scale. 2. Added horizontal shifts in velocity. 3. Added velocity and redshift colon commands. (2/8/89, Valdes) onedspec$splot/splot.x The default key now prints the spectrum value at the x coordinate in addition to the cursor x, y coordinates. (2/7/89, Valdes) onedspec$dispcor/dispcor.x onedspec$dispcor/ecdispcor.x onedspec$dispcor.par onedspec$ecdispcor.par imred$coude/dispcor.par imred$echelle/ecdispcor.par imred$iids/dispcor.par imred$irs/dispcor.par imred$specphot/dispcor.par onedspec$doc/dispcor.hlp imred$echelle/doc/ecdispcor.hlp Changed "override" parameter to "rebin". Also rebin=no acts only on nondispersion corrected spectra while rebin=yes acts only on dispersion corrected spectra. (2/2/89, Valdes) onedspec$dispcor/refaverage.x onedspec$dispcor/reffollow.x onedspec$dispcor/refgspec.x onedspec$dispcor/refinterp.x onedspec$dispcor/refmatch.x onedspec$dispcor/refnearest.x onedspec$dispcor/refprecede.x onedspec$refspectra.par onedspec$doc/refspectra.hlp imred$coude/refspectra.par imred$echelle/refspectra.par imred$iids/refspectra.par imred$irs/refspectra.par imred$specphot/refspectra.par Added timewrap parameter and reorganized calling sequences so the sortval is set only in refgspec. (2/2/89, Valdes) onedspec$reidentify.x Stripped the image extension from the reference spectrum. (1/31/89, Valdes) noao$lib/scr/ecidentify.key Fixed minor typo "j Go to next order" --> "k Go to next order". (1/26/89, Valdes) onedspec$dcio.x An erroneous sfree in dc_gspec was removed. (1/26/89, Valdes) onedspec$idsm_keywrds.x onedspec$load_hdr.x onedspec$dispcor/dispcor.x onedspec$dispcor/ecdispcor.x Changed CRPIX usage to real. (1/26/89, Valdes) onedspec$names.par imred$coude/names.par imred$iids/names.par imred$irs/names.par Made the "input" parameter prompt indicate it is a list rather than a single file. (1/24/89, Valdes) onedspec$splot.par imred$coude/splot.par imred$echelle/splot.par imred$iids/splot.par imred$irs/splot.par imred$specphot/splot.par Made the minimum line number be 1 instead of 0. (1/24/89, Valdes) onedspec$splot/splot.x The 'w' window option in SPLOT now only redraws automatically in "auto" mode. (1/24/89, Valdes) onedspec$ecidentify/ecffit/ecffit.x The 'o' key now accepts the default order for fitting; i.e. a carriage return for the prompt. Also the message about fitting now also includes the order offset being used. (1/24/89, Valdes) onedspec$idgdata.x Now allow 2D images with a second dimension of 1. (1/24/89, Valdes) onedspec$dispcor/refinterp.x When interpolating on a parameter that is the same for a set of arcs and an object one wants two arcs to be identified; i.e. the one before and after. This did not happen until this bug fix. (1/20/89 Valdes) onedspec$sensfunc.par imred$echelle/sensfunc.par imred$iids/sensfunc.par imred$irs/sensfunc.par imred$specphot/sensfunc.par onedspec$standard.par imred$echelle/standard.par imred$iids/standard.par imred$irs/standard.par imred$specphot/standard.par Fixed missing default value for answer parameter. (1/20/89, Valdes) onedspec$splot/pixind.x Removed use of AINT function which was misbehaving on Sun386i. (12/16/88 Valdes) onedspec$identify/reidentfy.x onedspec$identify/idreidentfy.x onedspec$identify/idreplot.x + onedspec$doc/reidentfy.hlp onedspec$reidentfy.par twodspec$longslit/reidentfy.par imred$coude/reidentfy.par imred$iids/reidentfy.par imred$irs/reidentfy.par imred$specplot/reidentfy.par Added plotfile for residuals. (12/16/88 Valdes) onedspec$dispcor/dcio.x If a reference spectrum is an image section its database entry will be the file with the section stripped. Since the database entry is written by IDENTIFY I copied the database access code that strips the image section. (12/8/88 Valdes) onedspec$dispcor/dispcor.x The use of some real variables in the flux conservation calculation resulted in incorrect results when the resolution was very high. The code was carefully rewritten to do all possible calculations in double precision. (12/8/88 Valdes) onedspec$t_specplot.x + onedspec$specplot.par + onedspec$specplot.h + onedspec$doc/specplot.hlp + noao$lib/scr/specplot.key + onedspec$x_onedspec.x onedspec$onedspec.cl onedspec$onedspec.men onedspec$onedspec.hd onedspec$mkpkg New task added (12/7/88 Valdes) onedspec$t_standard.x Fixed minor bug: missing parg in eprintf when dispersion solution missing. (11/4/88 & 11/17/88) onedspec$identify/ididentify.x onedspec$identify/idfitdata.x The nonmonotonic error message was being lost because it is flushed immediately to the screen and then the screen is cleared to redraw the graph. This has now been fixed by checking for an error just before the cursor read. (11/2/88) onedspec$identify/identify.x onedspec$identify/iddb.x onedspec$identify.par onedspec$doc/identify.hlp 1. Added the additional icfit parameters (except naverage) to IDENTIFY so the user can set the default fitting parameters more fully. 2. All the ICFIT fitting parameters are now written to the database and read back. This allows IDENTIFY and REIDENTIFY to start with exactly the same fitting parameters as previously used. (11/2/88) onedspec$t_bswitch.x Added a test for the extinction correction request before trying to compute the airmass. (11/1/88) onedspec$ecidentify/eccolon.x 1. When the label parameter was initially set to user all the labels were being printed not just those for the current aperture. The bug has been fixed. (9/9/88) onedspec$dispcor/dispcor.x 1. A bug was fixed in the log+ option of dispcor and ecdispcor. The problem was that the end points of the wavelength region were in linear wavelength units but the w1 and dw parameters were in log units, causing an erroneous computation of the index for the first pixel. This bug has been fixed. (9/9/88) onedspec$dispcor/refspectra.x onedspec$onedspec.cl onedspec$onedspec.men onedspec$batchred.cl + onedspec$batchred.par + onedspec$bswitch.par + onedspec$coefs.par - onedspec$standard.par onedspec$sensfunc.par 1. BATCHRED and BSWITCH were put back into this package. 2. COEFS was removed from this package. 3. Enumerated strings were added to SENSFUNC and STANDARD parameter files to prevent the tasks from dying on a bad value (i.e. clgwrd was causing an error). By putting the allowed values in the parameter file the CL will wait for an allowed value. 4. REFSPECTRA does not change the value of the confirm parameter now. (7/29/88 Valdes) onedspec$splot/deblend.x onedspec$doc/splot.hlp 1. The fitting parameter initialization was being done even before the 'q'. Thus, the '-' subtraction did not use the fit but the initial parameters. 2. Modified the initial sigma to be 1/4 of the range divided by the number of lines. The 1/2 was too large. (7/26/88 Valdes) onedspec$splot.par onedspec$splot/deblend.x onedspec$splot/scr_help.x - onedspec$doc/splot.hlp 1. Removed unused parameters inblend, fixsep, difference, subtract from parameter file. 2. Fixed bug with '-' in deblending (continuum was not being subtracted). 3. Removed unused source file. 4. Update the help page. (7/19/88 Valdes) onedspec$splot/deblend.x Fixed bug introduced below. (7/12/88 Valdes) onedspec$splot/deblend.x onedspec$onedspec.hd noao$lib/scr/deblend.key onedspec$doc/splot.hlp 1. After moving the parameter initialization to within the options loop the initializations were being done wrong. 2. The 'd' option was not doing what it was supposed to. 3. Added a print newline to clear the status line if four lines were entered since this does not go through the 'q' case which was doing the clear. 4. The n sigma cases had the wrong mneumonics in the help. 5. The src definitions in the help table were pointing to wrong files since the names and directories for the files have been changed (7/1/88 Valdes) onedspec$t_names.x onedspec$mkpkg Modified this task to use the ODR package. This also strips the image extension allowing the append option to work. (6/28/88 Valdes) onedspec$coincor.x When doing both coincidence and power law corrections failed to put the output of the coicidence correction as the input to the power law correction. (6/23/88 Valdes) onedspec$identify/idgdata.x Added an error check to IMMAP. Failure to do this gave a segmentation violation on the SUNS. (6/23/88 Valdes) onedspec$continuum.cl 1. Added a parameter to allow a cursor list text file to be passed to the normcontinuum task. onedspec$ecidentify/ecgdata.x onedspec$ecidentify/ecffit/ecfcolon.x onedspec$ecidentify/ecffit/ecfset.x onedspec$ecidentify/ecffit/ecfsolve.x onedspec$ecidentify/ecffit/ecfrms.x + onedspec$ecidentify/ecffit/mkpkg noao$lib/scr/ecidentify.key noao$lib/scr/ecffit.key + The following was fixed. (5/20/88 Valdes) 1. Error in graph title string. 2. Missing cursor key help. 3. Error in ":function" command in fitting mode. 4. Rms calculated with deleted points. onedspec$dispcor/dispcor.x onedspec$dispcor/ecdispcor.x 1. Failed to initialize the output spectrum to zero so that points outsided the input data range are zero. (5/17/88 Valdes) onedspec$dispcor/refaverage.x 1. Instead of checking the reference spectra for aperture and reference flag it was test the input image. This was changed. (5/17/88 Valdes) onedspec$load_hdr.x onedspec$splot/deblend.x 1. The deblending was fitting a function without the factor of 2 in the Gaussian sigma definition. This caused the printed Gaussian parameters to be off by a factor of sqrt(2). 2. Slight change to not have the header loading change the specified input line. It is up to the calling code to determine if this is a valid line. (5/17/88 Valdes) onedspec$identify/idreidentify.x 1. Added check for nonmonotonic dispersion solution. (4/30/88) onedspec$onedspec.cl onedspec$onedspec.men onedspec$onedspec.hd 1. Task EXTINCT was removed. The script and help page remain in case they are desired. Later they will also disappear. The function of this script is replaced by CALIBRATE. (4/26/88 Valdes) 2. Task BATCHRED was removed to the IMRED packages. (4/27/88 Valdes) onedspec$splot/splot.x onedspec$splot/deblend.x onedspec$t_flatfit.x onedspec$identify/ididentify.x onedspec$ecidentify/ecidentify.x onedspec$ecidentify/ecffit/ecffit.x noao$lib/scr/splot.key noao$lib/scr/identify.key noao$lib/scr/ecidentify.key noao$lib/scr/deblend.key noao$lib/scr/ecffit.key noao$lib/scr/flatfit.key Added 'I' interrupt key. (4/20/88 Valdes) onedspec$identify/identify.h Variables defined as integers instead of real (ID_MATCH, ID_MINSEP) (4/18/88 Valdes) onedspec$sensfunc/t_sensfunc.x onedspec$sensfunc/sfsensfunc.x onedspec$sensfunc/sfstds.x onedspec$sensfunc/sfginit.x onedspec$sensfunc/sfoutput.x onedspec$sensfunc.par onedspec$doc/sensfunc.hlp noao$lib/scr/sensfunc.key 1. Added beam number to output sensitivity image header. 2. Added 'I' interrupt key. 3. Added aperture number selection. 4. Added interactive query. (4/15/88 Valdes) onedspec$splot/getimage.x Modified to recognize echelle format spectra on input. (4/8/88 Valdes) onedspec$load_hdr.x Modified to recognize echelle format spectra on input. (4/8/88 Valdes) onedspec$mkpkg onedspec$splot/mkpkg onedspec$identify/mkpkg onedspec$fortran/mkpkg onedspec$onedutil.cl onedspec$onedspec.cl onedspec$onedspec.par onedspec$onedspec.men onedspec$onedspec.hd onedspec$identify/* onedspec$t_flatdiv.x onedspec$t_coefs.x onedspec$t_combine.x onedspec$dispcor.par onedspec$identify/identify.par --> onedspec$identify.par onedspec$identify/reidentify.par --> onedspec$reidentify.par onedspec$doc/dispcor.hlp onedspec$dispcor/* + onedspec$ecidentify/* + onedspec$x_onedspec.x + onedspec$refspectra.par + onedspec$dispcor1.par + onedspec$ecidentify.par + onedspec$ecreidentify.par + onedspec$doc/refspectra.hlp + onedspec$x_wavecal.x - onedspec$x_fluxcal.x - onedspec$x_onedutil.x - onedspec$identify/x_identify.x - onedspec$identify/libpkg.a - onedspec$dbx/ - onedspec$dbxio.h - onedspec$userstd/ - onedspec$t_dispcor.x - onedspec$fudge.x - onedspec$rlsq.x - onedspec$userstdc.x - onedspec$readstd.x - onedspec$qsortra.x - onedspec$statfile.x - onedspec$ascrcomp.x - onedspec$identify/icghelp.x - onedspec$splot/spflip.x - The ONEDSPEC package has been completely reorganized by combining executables, eliminating obsolete procedures, and adding new versions of IDENTIFY and DISPCOR as well and new tasks for echelle format data. (4/7/88 Valdes) ------------------------------------------------------------------------------- onedspec$mkpkg onedspec$splot/deblend.x Fixed bugs related to initial guesses for width and peak and scaling. Replaced Gauss-Jordan routine by Householder transformation routine for stability. (4/6/88 Valdes) onedspec$load_hdr.x The test for wavelengths in meters per second was W0 < 0.001. Now the test is abs(W0) < 0.001. (3/10/88 Valdes) onedspec$identify/ididentify.x The 't' was calling fit_to_pix with the real valued cursor position while the procedure expects a double. Added a double coercion to fix the bug. (2/18/88 Valdes) onedspec$splot/anssave.x onedspec$splot/mktitle.x onedspec$splot/getimage.x onedspec$splot/splot.x onedspec$splot/splotfun.x 1. Titles (on the graph and in the log file) for two dimensional images now contain the line number given as an image section. 2. The log file title now includes a time stamp. (1/29/88 Valdes) onedspec$identify/ididentify.x When recentering all the features the fitted coordinates are now updated and the tick marks moved to the new center position. (1/4/87 Valdes) onedspec$identify/iddb.x DBGETR was declared as real for the new shift parameter causing a wrong wavelength scale to appear. (12/22/87 Valdes) onedspec$doc/identify.hlp Fixed minor typo. (12/7/87 Valdes) onedspec$sextract.cl + onedspec$doc/sextract.cl + onedspec$onedutil.cl onedspec$onedutil.par onedspec$onedutil.men onedspec$onedutil.hd Added a new task, SEXTRACT, to extract subspectra. (11/19/87) onedspec$t_dispcor.x The default starting wavelength and wavelength interval are now printed in g format so that the user sees the full value. (11/9/87) onedspec$identify/identify.x onedspec$identify/reidentify.x onedspec$identify/idgraph.x 1. The XTOOLS change to XT_MK1D now permits the sections "column 51" and "column 051" to be recognized identically. 2. REIDENTIFY now aborts with a useful error message if their is not database record for the reference image instead of later causing a segmentation error. 3. IDENTIFY can now plot in point mode using the GTOOLS commands if desired. (11/9/97 Valdes) noao$onedspec$sensfunc/sfextinct.x noao$onedspec$sensfunc/sfsensfunc.x noao$onedspec$sensfunc/sfreset.x noao$onedspec$sensfunc/sfmarks.x noao$onedspec$sensfunc/sfadd.x noao$onedspec$sensfunc/sfdelete.x noao$onedspec$sensfunc/sfundelete.x noao$onedspec$sensfunc/sfmove.x noao$onedspec$sensfunc/sfgraph.x noao$onedspec$sensfunc/sfginit.x noao$onedspec$sensfunc/sfcomposite.x noao$onedspec$sensfunc/sfcolon.x noao$onedspec$sensfunc/sfshift.x noao$onedspec$sensfunc/sensfunc.h noao$onedspec$doc/sensfunc.hlp noao$lib/scr/sensfunc.key A number of changes were made based on user comments. 1. A bug was fixed which caused the ":order" command to crash the task. The integer valued order was being passed as a char in the colon decoding task. 2. The shift key 's' now toggles allowing a shift to be undone without initializing all the data. Also a message is printed to indicate what has been done. 3. The composite key 'c' now toggles allowing a composite to be undone without initializing all the data. Also a message is printed to indicate what has been done. A deleted composite point deletes the original data at that wavelength when toggling back. 4. The extinction key 'e' now toggles allowing an extinction correction to be undone without initializing all the data. Also a message is printed to indicate what has been done. 5. A different symbol may be used to indicated added points. 6. Changing the function or order does not automatically do a new fit. 7. A new key 'g' was added to do a fit and redraw the graph(s). The existing 'f' key does a fit and overplots as before. (11/6/87 Valdes) onedspec$splot/replot.x onedspec$splot/splot.x onedspec$splot/autoexp.x Modified REPLOT to use GTOOLS task GTVPLOT. This allows the user to select point mode. The calling sequence for REPLOT has a new argument to allow calling this procedure for overplotting. (11/5/87 Valdes) onedspec$identify/* onedspec$identify/iddoshift.x + Added shift options to IDENTIFY and a refit option to REIDENTIFY. This allows maintaining the same coordinate function with an additive shift. (11/3/87 Valdes) onedspec$sensfunc/sfgraphs.x - onedspec$sensfunc/mkpkg.x A zero length file, possibly confused with sfgraph.x was deleted and deleted from the mkpkg. (10/26/87 Valdes) onedspec$splot/deblend.x onedspec$splot/sumflux.x 1. The input data to the deblending routine are now scaled to values near unity. Also the fitting is iterated three times to make the results more consistent. 2. When computing the line center with 'e' the data is scaled to avoid underflows in summing residuals to the 1.5 power. (See bug report 16) (10/22/87 Valdes) onedspec$sensfunc/sfsensfunc.x onedspec$sensfunc/sfextinct.x 1. Aperture number for new aperture in title was undefined in the first graph. Set title after determining aperture number. 2. In a rare case it was possible for a square root of zero to occur in the extinction significance calculation which is fatal on VMS. Added check of argument before square root call. (Valdes) onedspec$splot.par Changed all interactive query parameters from auto mode to query mode to force a query even when run in menu mode and with :go. (9/15/87 Valdes) onedspec$t_standard.x onedspec$t_lcalib.x onedspec$splot/plotstd.x onedspec$standard.par onedspec$lcalib.par onedspec$splot.par onedspec$doc/standard.hlp onedspec$doc/lcalib.hlp onedspec$doc/splot.hlp The magnitude to absolute flux conversion constant has been made a user changable parameter in the three tasks dealing with the flux calibration tables. (9/3/87 Valdes) onedspec$t_sensfunc.x - onedspec$sensfunc/* + noao$lib/scr/sensfunc.key + onedspec$sensfunc.par onedspec$doc/sensfunc.hlp onedspec$t_standard.x onedspec$doc/standard.hlp onedspec$bswitch.par onedspec$getextn.x SENSFUNC has been completely rewritten. It now allows determination of extinction, display of flux calibrated spectra, and many nice features for displaying and manipulating the data. For full details read the new help page. The new sensfunc required some modifications to STANDARD in the format of the output file produced by standard. The parameters for BSWITCH no longer have the grey scale parameter add_const or the (never implemented) revised extinction file rev_ext_file which are not produced by SENSFUNC any more. The extinction loading procedure was modified to allow a null extinction file to correspond to no extinction and to eliminate the procedure get_new_ext and fix_ext which were used for the old grey constant and never implemented revised extinction file. (9/3/87 Valdes) onedspec$splot/mkpkg onedspec$splot/splot.x onedspec$splot/splotfun.x Errors getting a spectrum in function mode were ignored and the spectrum was replotted. Changed to return the error as a warning and not redraw the plot. onedspec$t_dispcor.x (routine reinterp) The reinterpolation now has additional tests: 1) When the interpolation point is within a minimum distance of an input pixel (0.001) it does not interpolate. This was done because the interpolation grid is sometimes meant to be identical with the input but the computation of the output grid is very slightly off (this was observed in COMBINE). 2) If one of the points to be interpolated between has a value of 0.0 (used to mark missing data in ONEDSPEC) then the rebinned point is set to 0.0 in order to propagate the missing point. This is important for combining spectra with COMBINE. (8/5/87 Valdes) ==== V2.5 ==== onedspec$t_sinterp.x Valdes, June 22, 1987 1. Removed a warning message to allow comments in the input table. onedspec$splot/avgsnr.x Valdes, June 19, 1987 1. A possible type of data is Fnu calibrated data with values in the range 1e-25. Attempting to determine an average, rms, and signal-to-noise ratio with SPLOT caused a divide by zero error due to underflowing the sum of squares. This has been modified to shift and scale the data before computing the sum of squares. onedspec$t_standard.x Valdes, June 12, 1987 1. There was an uninitialized memory problem with the space allocated for adding points. This bug was introduced with the May 15th modifications to the structure of the calibration files. onedspec$load_hdr.x onedspec$idsm_keywrds.x onedspec$t_calibrate.x Valdes, June 9, 1987 1. Added EXPTIME as a recognized exposure time keyword. 2. Added check against INDEF or 0 exposure time in CALIBRATE. onedspec$bplot.cl Valdes, June 4, 1987 1. The BPLOT script is now back the way it was earlier because the earlier bug with the CL and list files seems to have gone away while the new script relies on writing to parameter files which doesn't work in the background. onedspec$onedspec.cl onedspec$onedspec.hd onedspec$onedspec.men onedspec$powercor.cl + onedspec$powercor.par + onedspec$getcalib.x onedspec$doc/powercor.hlp + Valdes, June 1, 1987 1. Added task POWERCOR from IIDS. 2. Added an error check for a bad extinction file. onedspec$splot/deblend.x Valdes, May 19, 1987 1. A bug that was introduced into deblending during the last set of changes was fixed. onedspec$onedutil.par onedspec$lcalib.par onedspec$t_lcalib.x Valdes, May 19, 1987 1. Make the default for the calibration parameters in LCALIB to be package parameters of the same name in keeping with the way these parameters are used in the other ONEDSPEC tasks. 2. Added the calibration parameters to the ONEDUTIL package and the default is to refer to the parameters of the package that loaded it. This will be either ONEDSPEC or one of the IMRED packages. 3. Modified LCALIB to not require the extinction file when reading star calibration info. onedspec$mkpkg onedspec$bswitch.par onedspec$lcalib.par onedspec$onedspec.par onedspec$splot.par onedspec$standard.par onedspec$t_lcalib.x onedspec$t_standard.x onedspec$x_fluxcal.x onedspec$x_onedutil.x onedspec$getcalib.x onedspec$getextn.x onedspec$plotstd.x - onedspec$splot/mkpkg onedspec$splot/plotstd.x + onedspec$doc/standard.hlp onedspec$doc/lcalib.hlp onedspec$doc/onedspec.hlp onedspec$doc/splot.hlp onedspec$doc/bswitch.hlp noao$imred/echelle (par files) noao$imred/iids (par files) noao$imred/irs (par files) noao$imred/specphot (par files) noao$lib/onedstds (data files) Valdes, May 15, 1987 1. The major change was to change the format of the calibration data from the very constrained old format to a more flexible format. This also involved adding a new parameter "extinction" and changing "calib_file" to "caldir". 2. The calibration data files were converted to the new format in a number of subdirectories. 3. The parameter files in the IMRED directories were also updated. 4. Moved plotstd.x to splot directory. It is an splot routine and should be with the other splot source. 5. Moved LCALIB from the FLUXCAL executable to the ONEDUTIL executable. onedspec$splot/usercoord.x Valdes, May 8, 1987 1. When setting a wavelength scale using the 'u' key on data lacking any wavelength information (W0 and WPC == INDEF) there was a bug causing a message of the form "cursor not moved". onedspec$splot/deblend.x onedspec$splot/splot.x onedspec$splot/eqwidthcp.x Valdes, April 30, 1987 1. I missed a couple of places where READ_WRITE access was used in SPLOT (see March 13, 1987). These have been removed. 2. There was a bug in the 'k' and 'v' type equivalent width procedures which produced wrong results unless the cursor was very near the center. 3. When applying deblending to a single line the starting position is now the minimum or maximum point of the continuum subtracted profile rather than the center of the continuum limits. onedspec$splot/deblend.x onedspec$splot/splot.x onedspec$splot/anssave.x onedspec$splot/eqwidthcp.x onedspec$splot/eqwidth.x onedspec$doc/splot.hlp noao$lib/scr/splot.key Valdes, April 28, 1987 1. SPLOT now prints only one line of output on the graphics status line when doing deblending or equivalent width measurments. The full output is saved in the log file and also internally. These changes were made to allow reasonable behavior in terminals which cannot display text and graphics simultaneously (PC emulators, VT240's). 2. To get the full output of previous measurements during the course of the task execution a new command ":show" has been added. 3. It was possible for deblending to yeild negative sigmas. This has been fixed as well. onedspec$doc/names.hlp Valdes, April 27, 1987 1. A bug note was added to the task help stating that the append option is intended only for image sections. Appending any other string produces names not acceptable to ONEDSPEC. onedspec$identify/identify.x onedspec$identify/ididentify.x onedspec$identify/idlinelist.x onedspec$identify/idnewfeature.x Valdes, April 15, 1987 1. Added bell if feature not found with 'm'. 2. When automatically identifying lines, 'l' it now requires a new line to be within the matching distance relative to the current fit and if two centers are withing "minsep" then the closest match to the user coordinate is selected. 3. Default initial graph for fitting is residuals vs. wavelength. onedspec$t_standard.x Davis, April 13, 1987 1. At Frank's suggestion I added a test in STANDARD to make sure that the exposure time is never less than 1 second. onedspec$t_standard.x Davis, April 10, 1987 1. In order to check for an INDEF valued exposure time STANDARD on VMS/IRAF was testing a boolean compared to a fp 0.0. The test was always coming up true if the exposure keyword was defined; and exposure time was being set to 1. If no exposure keyword was present INDEFI was being used for the exposure time. I changed the test to test for an integer INDEF and every thing seemed ok. Lyra, IRAF and IRAFX were updated. onedspec$t_standard.x Valdes, April 3, 1987 1. STANDARD was using INDEF if there was no exposure time in the header rather than the intended 1.0 as described in the documentation. It now uses 1 for the exposure time if there is no exposure time in the header. onedspec$coincor.x Valdes, March 23, 1987 1. In the power correction the value of the output when the input was negative was undefined. Now it is the input value. onedspec$splot/getimage.x onedspec$splot/wrspect.x onedspec$splot/deblend.x onedspec$splot/eqwidth.x onedspec$splot/eqwidthcp.x Valdes, March 13, 1987 1. SPLOT no longer opens the image READ_WRITE. This was unnecessary and would prevent someone from examining data for which they don't have write permission. 2. Modified the deblend and eqivalent width options to deactivate the workstation since they produce multiline output. onedspec$t_dispcor.x onedspec$dispcor.par onedspec$doc/dispcor.par Valdes, March 5, 1987 1. It is now a fatal error if the dispersion solution (from IDENTIFY) is nonmonotonic. 2. The starting wavelength and wavelength intervals are now list structured parameters to allow files containing the values to be used. With no file the user is queried and a carriage return or nonnumeric value will use the default value. 3. The way wavelength information is printed out has been improved. 4. A missing carriage return was added to the error message when an image is not found. 5. The order of the parameters, some default values, some of the prompts, and their modes have been changed to be more consistent with other tasks and more easily useable with command line arguments. 6. The help page was modified to reflect these changes. onedspec$identify/ididentify.x onedspec$identify/idreidentify.x onedspec$identify/idfitdata.x onedspec$identify/idcolon.x Valdes, March 5, 1987 1. IDENTIFY now prints a warning about a nonmonotonic coordinate solution. 2. Changes were made to not print the current feature when error messages are printed thus giving the user a change to read them. 3. When attempting to change images to a nonexistant image the immap was improperly error checked. This could result in fatal errors (particularly on VMS). onedspec$dispcor.par Valdes, February 27, 1987 1. Prompt was changed from "File containing ..." to "Database containing ..." onedspec$userstd/nearpt.x onedspec$oned.h Valdes, February 25, 1987 1. Changed nearest point algorithm to use NDC coordinates. This required adding the GIO pointer to the arguments. 2. Change all procedures calling near_pt to include GIO pointer argument. 3. Changed maximum distance to 0.05 (NDC) onedspec$splot/splot.x Valdes, February 25, 1987 1. When exiting from the 'f' function mode in SPLOT the function status line is now erased. noao$onedspec Valdes, February 19, 1987 1. Made required GIO modifications. The tasks affected are SPLOT, STANDARD, FLATFIT, SENSFUNC, and IDENTIFY. Please report any bugs. onedspec$coincor.x onedspec$t_coincor.x onedspec$t_flatdiv.x onedspec$t_flatfit.x onedspec$doc/coincor.hlp Valdes, February 9, 1987 1. A number of interface errors were fixed. 2. The coincidence correction procedure now takes an input and output array. Previously it modified the given array. 3. The basic IIDS correction is now checked for values which would cause the log function to give an exception or instruction error. 4. The major change in COINCOR is that if the output root image name is null then the operation is done in place. When dealing with ~1000 images this saves on disk space and directory manipulations. 5. The help page for COINCOR was appropriately updated. onedspec$fortran/polft1.f onedspec$getextn.x onedspec$t_calibrate.x onedspec$t_sensfunc.x Valdes, February 5, 1987 1. The following errors reported by Skip Schaller (Steward Obs, AOS port) were fixed. polft1.f: Minus sign out of place in expression getextn.x: Remove declaration for max(), min(), log10() t_calibrate.x: Remove declaration for min() t_sensfunc.x: Remove declaration for log10() onedspec$oned.h Valdes, January 30, 1987 1. The maximum number of beams the package can handle has been increased from 50 to 100. onedspec$t_combine.x onedspec$combine.par onedspec$doc/combine.hlp Valdes, January 30, 1987 1. An new parameter called "combine" was added which specifies the type of combining (either average or sum). The help documentation was updated. onedspec$identify/idcolon.x onedspec$identify/ididentify.x Valdes, January 16, 1987 1. Colon command dictionary and switch rewritten to use macro definitions. 2. ? help facility rewritten to use system paging facility instead of ad hoc menu facility. onedspec$gcurval Valdes, January 12, 1987 1. Changed "0 0 0 q" to "0 0 1 q" since this was detected as an error in V2.5. This file is used by BPLOT. onedspec$batchred.cl noao$imred/iids/batchred.cl noao$imred/irs/batchred.cl Valdes, December 29, 1986 1. This script creates the user script "process.cl". It was creating it with an out-of-date syntax which no longer worked. Modified BATCHRED to create a valid script. onedspec$lcalib.par Valdes, December 18, 1986 1. The default for the calibration file in task LCALIB is now that for the task STANDARD. onedspec$identify/idreidentify.x Valdes, December 3, 1986 1. REIDENTIFY was not correctly tracking when there was no fit. 75: FIT(j) = FIT(i) ==> FIT(j) = fit onedspec$t_flatfit.x onedspec$t_flatdiv.x onedspec$flatfit.par onedspec$flatdiv.par onedspec$doc/flatfit.hlp onedspec$doc/flatdiv.hlp Valdes, December 2, 1986 1. The tasks FLATFIT and FLATDIV may optionally apply coincidence corrections. They were not updated to include the IIDS nonlinear correction made earlier. They have now been updated. onedspec$t_bswitch.x onedspec$t_flatfit.x onedspec$t_sums.x Valdes, December 1, 1986 1. The tasks BSWITCH, FLATFIT, and SUMS created new images with only the standard ONEDSPEC header information and without any other user parameters. These tasks worked this way because they may sum many spectra for each beam and the connection between the input image header and output image header was not obvious. They have been modified to use the last input image for each beam as the image header template for the output image of that beam. When there is no summing then the output image header will be a copy of the input image header with updated ONEDSPEC parameters. onedspec$identify/idlinelist.x Valdes, November 25, 1986 1. It used to be that if there were no coordinate list then the default user coordinate was the pixel coordinate. This changed at some point. This has been fixed. onedspec$identify/identify.x Valdes, November 21, 1986 1. The common variable labels is now initialized every time the task runs. onedspec$load_hdr.x onedspec$splot/splot.x onedspec$splot/usercoord.x Valdes, November 17, 1986 1. Since people insist on using W0 and WPC to define the wavelength coordinates and are then confused because CRVAL1 and CDELT1 are used I changed the default precedence. The ONEDSPEC package now looks for W0 and WPC first and then resorts to the FITS coordinate keywords. Also if the coordinate values are less the 0.001 it assumes that the units are meters and converts to Angstroms. This arises when a strict interpretation of the FITS coordinates (units of meters) is used for optical spectral data. 2. The key 'p' in SPLOT has been modified to query for the starting and ending wavelength. The default values are those last defined. Thus, this key may be used at any time to set the wavelength scale. To return to wavelength scale after '$' the user simply types carriage return to accept the defaults. 3. The key 'u' in SPLOT has been modified to work in all cases. Previously it only worked if the plot was in pixel coordinates. If run in wavelength coordinates funny results would be obtained. Now the user may mark two points even in wavelength coordinates. onedspec$coincor.x Valdes, November 13, 1986 1. The power law correction is applied only to positive data. Negative data is not changed. onedspec$splot/eqwidth.x onedspec$splot/deblend.x onedspec$splot/eqwidthcp.x Valdes, November 3, 1986 1. Changed print format statements to keep columns from running together for flux calibrated data. onedspec$splot/*.x onedspec$splot/mkpkg onedspec$splot/idsmtn.h - onedspec$splot/oned.h - Valdes, October 28, 1986 1. Changed include references to point to include files in the main package directory ("idsmtn.h" -> "../idsmtn.h" and "oned.h" -> "../oned.h"). 2. Deleted the copies of the include file in this directory. onedspec$t_coincor.x onedspec$coincor.x onedspec$coincor.par onedspec$doc/coincor.hlp onedspec$oned.h onedspec$onedspec.par onedspec$onedspec.men Valdes, October 21, 1986 1. Modified COINCOR to include a power law correction as part of the IIDS correction. 2. A new paramter was added to COINCOR and ONEDSPEC, called "power", for the IIDS power law correction. 3. The help page for COINCOR was revised. onedspec$splot/splot.x onedspec$splot/getimage.x onedspec$splot/wrspect.x Valdes, October 20, 1986 1. Added ability to write modified spectrum to the current image in SPLOT. 2. There were several errors in the code which were fixed. These included modifying an IMIO buffer and extra arguments. onedspec$splot/splot.x onedspec$splot/eqwidth.x onedspec$splot/eqwidthcp.x onedspec$splot/deblend.x onedspec$splot/saveans.x onedspec$doc/splot.hlp Valdes, October 15, 1986 1. The routines for the keys 'd', 'e', 'h', 'k', and 'v' now print information in a same format. They all have a header line and a line containing the values. There reason for this is that, with the additional information now included, it requires two lines for "quantity: value" format anyway. They also print the information which is common to all methods in the same order. 2. The deblending routine 'd' now includes the continuum, equivalent width, and sigma of the Gaussian fits. It also plots the continuum slope as is done with the 'e' key. 3. The equivalent width routine 'e' now includes the continuum. 4. The 'h', 'k', and 'v' routines now include flux and FWHM. 5. The 'h', 'k', and 'v' routines now work on emission lines as well as absorption lines. 6. The 'h', 'k', and 'v' routines define the gaussian profile in the same way as the deblend routine; i.e. exp (-0.5 * (dw/sigma)**2) 7. Help revised. onedspec$splot/splot.x onedspec$splot/autoexp.x Valdes, October 14, 1986 1. The SPLOT windowing keys 'a', 'z', ',', and '.' were not compatible with the GTOOLS windowing. AUTOEXP.X was rewritten to use the GTOOLS structure while operating as before. onedspec$splot/splot.x onedspec$splot/eqwidthcp.x onedspec$splot/scrhelp.x onedspec$splot/stshelp.x onedspec$doc/splot.hlp Valdes, October 8, 1986 1. There are two methods of measuring equivalent widths using a simple Gaussian line model. The original method which requires a unit continuum has been restored as the 'k' key. (See the revision of September 18, 1986). 2. The second method recently added which uses the y cursor to mark the continuum and uses the half flux level for determining the line width is available with the last available key; the 'v' key. 3. The 'h' key for one sided measurements still requires a second key but now in addition to defining which side of the line to use it also defines which method to used. 4. The help page has been updated to reflect the changes. onedspec$doc/rebin.hlp Valdes, October 7, 1986 1. Typo in V2.3 documentation fixed: "set to know" -> "set to no". onedspec$t_shedit.x + onedspec$shedit.par + onedspec$shparams.par + onedspec$doc/shedit.hlp + onedspec$onedspec.cl onedspec$onedspec.men onedspec$onedspec.hd Valdes, September 29, 1986 1. A onedspec header editor called SHEDIT has been added. It uses EPARAM as the editor. 2. A help page is available. onedspec$identify/reidentify.x Valdes, September 25, 1986 1. REIDENTIFY was passing a constant 0. to ID_REIDENTIFY which expects a double. Replaced 0. with "double (0.)" as the argument. This caused a failure in the AOS IRAF. onedspec$splot/eqwidthcp.x onedspec$splot/doc/splot.hlp Valdes, September 18, 1986 1. The 'k' key used to determine equivalent widths by fitting a Gaussian profile based only on the depth of the core, the line width at some point, and the continuum had several problems. First, people failed to realize that the continuum had to be 1. Second, the y cursor position was used for measuring the width of the line. Third, if the y cursor position was not within the line then square root and logarithm exceptions occured. These problems have been fixed as follows: 1. The y cursor is now used to mark the continuum. This has been made very clear in the documentation. 2. This allows equivalent widths to be measured for any absorption line even when the continuum is not 1! 3. The level at which the width of the line is measured is now the point half way between the continuum and the minimum point in the line. Previously this point was set by the y cursor position. 4. If the y cursor position is below the line minimum or the left and right edges of the line are not found at the half flux point an informative error is printed and the equivalent width is not evaluated. 5. The search for the left and right edges was previously limited to +- 9 pixels. This limit has been removed. The search now extends to the limits of the spectrum if necessary. 6. The information printed includes the gaussian parameters as well as the equivalent width. 7. The gaussian model is plotted over the spectrum in order to judge the reasonableness of the equivalent width measurement. onedspec$splot.par onedspec$doc/splot.hlp Valdes, September 11, 1986 1. Added ? to boolean prompts. The prompt Fix separation of lines: was confusing a user who tried to give the value of the separation. The new prompt is Fix separation of lines?: 2. This parameter was also not in the documentation! onedspec$t_dispcor.x Valdes, September 11, 1986 1. DISPCOR requires reference spectra to exist as well as the identify database entry. The error message was misleading. The error message is now more specific. onedspec$splot/splot.x onedspec$splot/anssave.x Valdes, September 8, 1986 1. Modified SPLOT to append to the answer file each time an aswer is written rather than opening the answer file at the beginning and closing it at the end. This eliminates the annoying creation of a file everytime SPLOT is used. onedspec$t_dispcor.x Valdes, September 8, 1986 1. Procedure dcorrect was defined as a function but used as a subroutine. This was found and corrected during the Alliant port. onedspec$identify/xtpage.x + onedspec$identify/xtmenu.x + onedspec$identify/ididentify.x Valdes, September 5, 1986 1. Added paging and menu features to '?' help. onedspec$bplot.cl Valdes, August 26, 1986 1. The BPLOT script has been rewritten. Rather than calling SPLOT in a loop, once for each image, a cursor command file is created containing cursor commands for all the images and then SPLOT is called with a list of images. This fixes an undiagnosed bug and is more efficient. onedspec$identify/ididentify.x onedspec$identify/iddofit.x onedspec$identify/idgdata.x onedspec$identify/idfitdata.x Valdes, August 22, 1986 1. ICFIT no longer inherits the window from IDENTIFY. Entering ICFIT will do autoscaling. 2. IDENTIFY now uses the image header coordinate information if there is no database dispersion solution. The parameters used are CRPIX, CRVAL, and CDELT. This allows IDENTIFY to be used with linearized spectra in the ONEDSPEC related packages. onedspec$identify/identify.com onedspec$identify/identify.x onedspec$identify/idcenter.x onedspec$identify/idcolon.x onedspec$identify/idshow.x onedspec$identify/reidentify.x onedspec$identify/identify.par onedspec$identify/reidentify.par Valdes, August 18, 1986 1. IDENTIFY and REIDENTIFY modified to include a detection threshold parameter for feature centering. 2. The help pages were updated. ==================================== Version 2.3 Release, August 18, 1986 ==================================== onedspec$splot/wrspect.hlp: Valdes, August 14, 1986 1. The test for whether a new image will overwrite an existing image used ACCESS which is for nonimage files only. This caused a problem with recognizing the automatic image extensions. The modification uses IMMAP and IFERR to check if the new image would overwrite an existing image. onedspec$doc/setdisp.hlp: Valdes, August 8, 1986 1. The wording defining the meaning of "dispaxis" was changed because of user confusion. onedspec$identify/idmark.x: Valdes, August 8, 1986 1. The optional labels have been adjusted to be half size and to have a path of up. Note that on a vt640 the default text quality uses hardware generation so this change will not be visible unless you reset the text quality to high. 2. The size of the ticks and the gaps have changed slightly. onedspec$t_dispcor.x: Davis, July 28, 1986 1. DISPCOR was failing with a bus error on class2. It turned out that the get_feature1 routine was trying to get the flex_par parameter out of the image header after the image had been closed. I moved the imunmap call to the end of the routine. onedspec$t_dispcor.x: Valdes, July 7, 1986 1. DISPCOR was opening comparison images when collecting dispersion solutions from the database and failing to close them. In one particular large usage 509 images were opened before an out of memory failure! onedspec$splot: Valdes, July 7, 1986 1. In SPLOT the 'w' key has been redefined to 'i' (create a new image). Key 'w' now windows the graph. 2. The help page and menus updated. onedspec$identify/: Valdes, July 7, 1986 1. Redefined the 'r' key to be 't' so that 'r' can be the standard redraw key. 2. Help page and '?' menu updated. onedspec$doc/standard.hlp, lcalib.hlp, sinterp.hlp: Valdes, July 7, 1986 1. Help pages updated to reflect name changes in the standard calibration files. onedspec$identify/: Valdes, July 3, 1986 1. Modified package to use new ICFIT package. 2. Changed coordinate list parameter to onedstds$henear.dat. 3. Updated help page for IDENTIFY to refect new default coordlist. onedspec$identify/identify.x,reidentify.x,idgetim.x: Valdes, July 1, 1986 1. Replaced calls to imtgetim with idgetim. Idgetim calls imtgetim to get next image name but it then removes any image extension. This is necessary to prevent having two different names by which an image may be identified in the database. ===================================== STScI Pre-release and SUN 2.3 Release ===================================== ondespec$getnimage.x: Valdes, June 19, 1986 1. Changed BOOLS in common to INTS for safety's sake. onedspec$(t_sensfunc.x,fudge.x,userstd.x): Valdes, June 19, 1986 1. SENSFUNC was not correctly accumulating grey constant corrections between different apertures. This was fixed by rewriting the RLSQ procedures (moved into a file of their own, rlsq.x) and making appropriate changes in the rest of the code. 2. The grey constant was being computed incorrectly. onedspec$t_flatfit.x: Valdes, June 18, 1986 1. FLATFIT aborted when an error is made specifying a nonexistant image. It now prints an error message and goes on to the next spectrum. onedspec$t_coefs.x: Valdes, June 16, 1986 1. Task was calling the wrong database package. This produced totally wrong code since one package returns a structure pointer and the other returns FIO channel number. This error was probably introduced in May. onedspec$t_standard.x: Valdes, June 12, 1986 1. Minor bug in STANDARD introduced when fixing problem with wavelengths (May 19). Title was no longer being written to the STD file. onedspec$t_dispcor.x: Valdes, June 12, 1986 1. DISPCOR had a fixed limit of 100 comparison spectra for all apertures in the database. If this limit was exceeded memory would be corrupted (i.e. no check for exceeding the end of the array). This has been changed to use dynamic memory allocation so that there is no limit on the number of comparison spectra. onedspec$identify/ididentify.x: Valdes, June 11, 1986 1. Windowing key 'w' added. 2. Help page updated to reflect the 'w' and 'y' keys. onedspec$splot.x: Valdes, June 10, 1986 1. Now sets dispersion correction flag when the user defines a wavelength scale and writes a new image. onedspec$identify/splot.x: Valdes, June 9, 1986 1. Added check on the validity of the imio pointer when attempting to unmap the image. This occured with a next image failed to access the specified image. onedspec$identify/ididentify.x: Valdes, June 9, 1986 1. Changed Memr to Memd in 'y' option. onedspec$identify/reidentify.x: Valdes, June 2, 1986 1. Changed from file template to image template. onedspec$t_sensfunc.x: Valdes, June 2, 1986 1. Added check for square root of zero which is a fatal error on VMS. onedspec$t_standard.x,t_sensfunc.x: Valdes, May 19, 1986 1. The output of STANDARD gave the wavelengths of the left edge of the first pixel and the right edge of the last pixel instead of the centers. This causes slight errors downstream in SENSFUNC. This has been changed to give the actual W0 and WEND. I tried to check that all wavelengths were being calculated and used correctly. 2. SENSFUNC was not correctly using the output of STANDARD. In some cases it assumed the starting and ending wavelengths were at the edges of the pixel and in other cases it assumed they were at the centers of the pixels. The errors largely canceled out except that the W0 in the header for the SENSITIVITY image was wrong but WPC and the number of points was correct. Again, I tried to check that everything is now consistent. 3. SENSFUNC was extrapolating observations when forming the composite sensitivity curve. This leads to significant errors when some observations do not extend as far as others in wavelength. This was noticed as a large increase in the RMS relative to the original RMS based only on the observations. Now extrapolations are not allowed and only observations covering a given range of wavelengths are used in forming the composite curve. Note that interpolations are still used if an observation does not contain a point at a particular wavelength. 4. The help page for SENSFUNC was modified to explain the difference between the RMS of the input points and the RMS of the composite points. 5. INTRP.F had to be modified because it considered a wavelength equal to the first wavelength in the table as an extrapolation. onedspec$bswitch.par: Valdes, May 19, 1986 1. The BSWITCH parameter "add_const" has been changed to use the value from SENSFUNC of the same name. The help page was also modified onedspec$t_sensfunc.x: Valdes, May 16, 1986 1. SENSFUNC was not writing a complete header needed by LONGSLIT. Now it goes through the standard ONEDSPEC header package to create the senstivity images. onedspec$t_bswitch.x: Valdes, May 14, 1986 1. BSWITCH was not reinitializing properly when not using IDSMODE. The effect was to give extraneous output. 2. All occurances of "== INDEFI" where changed to use the "IS_INDEF" macro. onedspec$t_rebin.x: Valdes, May 14, 1986 1. If the image has not been dispersion corrected then an error is printed and the next image is processed. onedspec$bplot.cl: Valdes, May 13, 1986 1. BPLOT has been modified to call SPLOT separately for each input image. This has the effect of repeating the cursor file for each image. onedspec$t_coefs.x: Valdes, May 12, 1986 1. COEFS was not writing a correct IDENTIFY database entry. onedspec$t_rebin.x: Valdes, May 10, 1986 1. Rebinning into logarithmic intervals was not working. This has been fixed. A number of logical changes were required. 2. Rather than use an interative method for determining the coordinate transformation the transformation can be determined explicitly since both the input and output coordinates are linear. 3. The logarithm flag was previously ignored if a primary spectrum was used. This prevented making the input and primary spectrum the same and then specifying either log or linear output. This is a common way to use this task for converting to log intervals. 4. The primary spectrum was not being unmapped. onedutil$bplot.cl: Valdes, May 9, 1986 1. BPLOT has been modified to use the new SPLOT. The script is now a simple one line call to splot. 2. The input is now a image list instead of a file containing image names. Note that to use a file containing image names the syntax is now "@file". 3. The cursor input file is now a parameter of the task allowing users to define their own set of commands. 4. The graphics device parameter is now standardized with other graphics tasks. 5. A modified help page is available. onedspec$splot.x: Valdes, May 9, 1986 1. SPLOT now accepts a list of input spectra and processes them sequentially. The parameter name has been changed from "image" to "images". 2. New SPLOT parameters XMIN, XMAX, YMIN, YMAX allow the user to set the limits of the initial plot. These values may be modified interactively with :/xwindow and :/ywindow. 3. A modified help page is available. onedspec$identify/reidentify.x: Valdes, May 8, 1986 1. Set log output to be flushed with every line written instead of being buffered. onedspec$sflip.x: Valdes, May 8, 1986 1. A new task has been added to the ONEDUTIL package call SFLIP. It flips the dispersion direction of spectra while maintaining the proper dispersion image header parameters. 2. A help page has been added for the task SFLIP. onedspec$splot: Valdes, May 7, 1986 1. Changed interpretation of W0 in logarithmic binning to be the logarithm of the wavelength of the first pixel. onedspec$t_dispcor.x, t_rebin.x, t_combine.x: Valdes, May 7, 1986 1. Changed meaning of w0 in logarithmic coordinates to be consistent with usual linear formula. That is with a logarithmic wavelength interval the zero point is the logarithm of the starting wavelength. 2. Assumed increasing wavelengths in both the output spectra and the input spectra. This restriction has been lifted. 3. Default output bins are in increasing wavelength with increasing pixel coordinate even when the input dispersion relation has the opposite sense. 4. The logic in REBIN for col_out = 0 was modified appropriately. 5. The help page for DISPCOR has been modified to indicate the new ability to have arbitrary input and output dispersion directions. onedspec$userstd: Valdes, May 6, 1986 1. Previously no graph of the errors would be made if the residuals were all the same. 2. Warning message was removed. 3. Boxes now drawn in NDC with standard size and do not depend on the range of the data or the size of the graph. onedspec$userstdc.x: Valdes, May 6, 1986 1. Code incorrectly limited highest order for fit to one less than the number of points. The order is now limited to the number of points. 2. Previously no graph of the errors would be made if the residuals were all the same. 3. Warning messages were removed. 4. Boxes now drawn in NDC with standard size and do not depend on the range of the data or the size of the graph. onedspec$identify/idlog.x: Valdes, May 1, 1986 1. Column headings were adjusted. onedspec$onedspec.cl: Valdes, May 1, 1986 1. Removed loading of list and plot packages in ONEDSPEC package script. These packages are loaded with the NOAO package. onedspec: Valdes, April 27, 1986 1. Package pathname "noao.onedspec.onedutil" added to help pages for ONEDUTIL package tasks. onedspec: Valdes, April 7, 1986 1. OBSERVATORY task from IMRED package loaded with ONEDSPEC. 2. Latitude parameter removed from the ONEDSPEC package parameters. 3. DISPCOR, STANDARD, and BSWITCH latitude parameters changed to reference OBSERVATORY parameters. 4. The help pages for these tasks were revised. onedspec$t_flatfit.x: Valdes, April 7, 1986 1. Fixed minor bug. onedspec$t_sinterp.x: Valdes, April 6, 1986 1. Fixed bug in SINTERP. It was using CURFIT with a pointer argument for the weights instead of a real array. CURFIT is used only if the interpolation mode is one of the CURFIT types. Obviously this option was never tested. 2. Entry points removed for portability. 3. The interpolation wavelengths when generating a curve were strongly subject to accumulated roundoff error; x = x + dx. This was modified to use the construct, x = x1 + (i - 1) * dx, which may still have a precision limitation but not an accumulated roundoff error. onedspec: Valdes, April 5, 1986 1. Found very bad error in numerous places. The arguments to CLGCUR were too few and of those that were there one was of the wrong datatype!!! This was not a problem on the VAXes but very bad and hard to find on the SUN. 2. Fixed SUN bugs in SENSFUNC due to the statement: call amovks (1, Mems[flags], npts) Apparently numeric constants are integer sized which causes problems on the SUN which has high order bytes first. Watch out for this construct! onedspec$getnimage: Valdes, April 4, 1986 1. The entry points in this procedure caused tasks to fail on the SUN. USE OF ENTRY POINTS IS HAZARDOUS TO THE HEALTH OF PORTABLE PROGRAMS. I shall have to see if there are any more entry points in ONEDSPEC. onedspec$getairm: Valdes, April 4, 1986 1. Fixed minor bug in determining HA from ST and RA. ST was still assumed to be in seconds which is not the case any more. onedspec: Valdes, March 28, 1986 1. ADDSETS would fail if an image was missing. I modified it to detect missing files and continue on. onedspec: Valdes, March 27, 1986 1. The header parameters CRPIXn, CRVALn, CDELTn have been added to the image headers. They replace W0 and WPC though W0 and WPC are still recorded in the header (for now). 2. A new task, SETDISP, has been added to set the dispersion axis (must be 1 for ONEDSPEC), the dispersion type, and the dispersion unit. These are currently only used for labeling in IDENTIFY and thus the task is optional for the moment. 3. SPLOT modified to label the wavelength axis using CTYPE1 and CUNIT1. onedspec$splot/deblend.x: Valdes, March 27, 1986 1. Moved deblend.x and eqwidthcp.x to splot directory. 2. There was a typo(?) in deblend.x of SPLOT which converted sigma to FWHM as FWHM = 2.345 * sigma. This has been corrected to FWHM = 2.355 * sigma. 3. The help page for SPLOT was updated. onedspec$identify: Valdes, March 26, 1986 1. Fixed bug in IDENTIFY which failed to add new lines with the 'l' command when the initial wavelength axis was pixels. onedspec$identify: Valdes, March 24, 1986 1. Fixed minor bug in REIDENTIFY. It was calling IC_FREE instead of IC_FREED (the new double precision version) while the rest of the package was in double precision. onedspec: Valdes, March 21-22, 1986 1. Continued changes in the ONEDSPEC header parameters. All the internal ONEDSPEC header parameters are initialized. Those not in the image header are initialized to INDEF if no other default makes sense. Then when a new image is created only the parameters which are not INDEF are written to the new image header. Hopefully there isn't a obscure use in the package that assumes the default value of a parameter is zero (this was the previous default default). A bug of this sort occurred in SPLOT which assumed that W0 and WPC are zero if the image has not been dispersion corrected. This was changed. 2. SLIST now prints INDEF for the parameters which are indefinite. 3. UT and ST are now stored internally as real values like all the other time and angle parameters. Previously the were stored as integer seconds. 4. UT, ST, RA, DEC, and HA are written to new images as sexigesimal strings instead of real values. This is contrary to the FITS standard but this is the way its been done previously. 5. Comments for parameters which are updated by ONEDSPEC are deleted when a new image is created. This is because the database interface does not allow comments and when entering a new value the comment could be partially overwritten resulting in a nonsensical FITS cards. Parameters which ONEDSPEC does not use are not touched. onedspec$fortran/intrp.f: Valdes, March 20, 1986 1. Converted entry points into separate procedures. Entry points, while legal FORTRAN, tend to cause problems except in the very best compilers. The change was sparked by the failure of the SUN optimizer. It is not 100% certain that this caused the failure but it works now. onedspec: Valdes, March 19, 1986 1. All double precision variables have been change to single precision. The double precision is an anachronism. There were numerous type mismatches with calling procedures using double precision and the called procedure expecting single precision. These problems were only found recently on the SUN workstation which has a reversed order to the bytes. On the VAX this error is not caught. 2. The header parameters are accessed through the image database interface rather than directly. This cleans things up alot and will make the transition to a real database easier. It does, however, mean that comments and sexigesimal notation are no longer used. 3. Most tasks creating an output image now make a copy of the relevant input image header. This allows header parameters which are not recognized by ONEDSPEC to be propagated to the new images. onedspec$t_combine.x: Valdes, March 19, 1986 1. Rebinning did not work after fix to DISPCOR (Feb 14) because macro codes were wrong. onedspec$t_rebin.x: Valdes, March 19, 1986 1. Did not work after fix to DISPCOR (Feb 14) because macro codes were wrong. onedspec$identify: Valdes, March 14, 1986 1. Modified IDENTIFY to store the line list internally instead of scanning the line list file every time. onedspec: Valdes, March 14, 1986 1. Fixed a bug in LOAD_HDR.X which caused a roundoff error in the UT and ST values. This was a problem when creating a new image since it inherited slightly different values than the original image. 2. A double precision airmass variable was being passed to GET_AIRM which expected a single precisions variable. This bug became apparent on the SUN workstation. Modified GET_AIRM to expect a double precision airmass variable. onedspec: Valdes, March 13, 1986 1. Modified IDENTIFY and REIDENTIFY to be double precision. It uses the double precision ICFIT and CURFIT procedures. 2. The help pages for IDENTIFY and REIDENTIFY were updated for the changes since Release 2.2 3. Fixed bug in SLIST which printed W0, WPC, and AIRMASS incorrectly on the SUN workstation. Pargr was used instead of pargd. Also fixed possible problem with assigning INDEFR to a double variable. onedspec: Valdes, March 11, 1986 1. SENSFUNC was not putting the dispersion correction flag, DC-FLAG, in the header for the sensitivity image. This causes LONGSLIT.FLUXCAL to fail. This has been fixed. onedspec: Valdes, March 6, 1986 1. Added parameter to SPLOT to allow selection of the graphics output device. 2. Help page for SPLOT modified. 3. New parameter file for SPLOT. Also installed in IMRED packages. onedspec: Valdes, Feb 27, 1986 1. IDENTIFY and REIDENTIFY have been modified to do shifts in user coordinates instead of pixel coordinates. This applies to the 's' and 'x' keys in IDENTIFY and to REIDENTIFY. The shift specified in REIDENTIFY is now in user coordinates. Unless otherwise specified the shifts printed by these tasks are in user coordinates instead of pixels. 2. A new key has been added to IDENTIFY. The key 'r' resets the current feature to the position of the cursor. This replaces the need to mark the new position and then delete the old position. 3. The output of 's' and 'x' in IDENTIFY is slightly different. =========== Release 2.2 =========== From Valdes Feb 28, 1986: 1. Fixed bug in FLATDIV which printed the image title as garbage. Also the output record number is increment for each input spectrum regardless of whether the input spectrum is found, has already been flatted, or is flattened. ------ From Valdes Feb 24, 1986: 1. Removed junk file identify/isdir.x. ------ From Valdes Feb 14, 1986: 1. t_sensfunc.x, userstd.x, and fudge.x have been modified to allow the grey scale correction to be determined interactively even when points are deleted. 2. Fixed bug in DISPCOR to allow interpolation between solutions. This did not work before. ------ From Valdes Feb 10, 1986: 1. FLATDIV has been modified to do in-place flattening when the input and output spectra are the same. ------ From Valdes Jan 24, 1986: 1. In IDENTIFY the 'l' always does a fit first before identifying additional lines. ------ From Valdes Jan 21, 1986: 1. HELP pages updated. 2. The log information written by REIDENTIFY has been made more compact and a option to futher reduce this log information "verbose" has been added. ------ From Valdes Jan 17, 1986: 1. Bugs fixed affecting SPLOT and DISPCOR. ------ From Valdes Jan 6, 1986: 1. Problem with cursor key 'o' in SENSFUNC fixed. 2. The 's' shift option in IDENTIFY has been modified. It now prints the initial shift, the mean pixel shift, and the mean fractional shift in user units. This can be conveniently used for determining velocity shifts from a standard. ------ From Valdes Jan 2, 1986: 1. If the HA field was missing from a field it was being initialized to 0. which is a valid HA value. This has been changed to initialize to -100. This value will force recomputation of the HA when determining the air mass. 2. A bug in computing the air mass when the HA is not defined was found and fixed. ------ From Valdes Dec 30, 1985: 1. A bug in DISPCOR when using a reference image and the directory structured database has been fixed. ------ From Valdes Dec 9, 1985: 1. NORMCONTINUUM has been renamed to CONTINUUM and modified to have the output type as a hidden parameter. 2. The standard line lists have been put in the directory stdlines$. ------ From Valdes Nov 26, 1985: 1. SPLOT modified to use gtools graphics options. These options are accessed with :/ commands; i.e. ":/xwindow x1 x2" sets the x display window. 2. SPLOT parameter "auto" replaced by parameter "options" which allows several plotting options to be given. The options are given as a list of possibly abbreviated strings. The two options currently defined are "auto" and "zero". Auto is the same as before; it replots the graph after any command that changes the graph. Zero makes the initial default for the graph have zero as the minimum Y. ------ From Valdes Nov 15, 1985: 1. Modified IDENTIFY, REIDENTIFY, and DISPCOR to use directory type database structure. Instead of a single massive database textfile separate database text files are created for each image in the database directory. ------ From Valdes Oct 28, 1985: 1. Increased the efficiency of widstape from 7 seconds per spectrum to about 2 seconds per spectrum by using low level formating. ------ From Valdes Oct 23, 1985: 1. Bug fix to allow zero entries in the calibration files. ------ From Valdes Oct 9, 1985: 1. Cursor parameter added to the tasks flatfit, splot, and standard. 2. Defined widstape from ONEDSPEC package in the DATAIO package. The source and executable, however, still reside in ONEDSPEC (x_onedutil.e). Widstape and widsout should be combined and the source put in DATAIO at some point. ------ From Valdes Oct 7, 1985: 1. Parameter indirections removed. 2. Tasks IRS and IIDS moved to the IMRED package. ONEDSPEC need not be loaded directly. The usually method should be to load IMRED and then the appropriate instrument package. ------ From Valdes Oct 4, 1985: 1. Add script task normcontinuum to fit the continuum of spectra and output a continuum normalized spectrum. This script is based on images.fit1d. ------ From Valdes October 1, 1985: 1. The source code for identify and reidentify has been moved from the longslit package to the onedspec package since these tasks are essentially one dimensional. ------ From Valdes August 19, 1985: 1. Makelib file created to maintain archive for the onedspec package. The archive is libods.a. Makefile modified to use the library. This removes all the .o files making directory easier to list. 2. An attempt to write to an existing image in splot requires the user to confirm. Overwriting an existing image now maintains the pixel files correctly. 3. New script task revisions pages the package revision file. .endhelp sptable-1.0.pre20180612/src/xonedspec/aidpars.par000066400000000000000000000022611331023215600213200ustar00rootroot00000000000000# Parameters for autoidentify task. reflist,s,h,"",,,Reference coordinate list refspec,s,h,"",,,Reference spectrum #crval,s,h,"INDEF",,,Coordinate reference value #cdelt,s,h,"INDEF",,,Coordinate interval per pixel crpix,s,h,"INDEF",,,Coordinate reference pixel crquad,s,h,"INDEF",,,Quadratic pixel distortion at reference pixel cddir,s,h,"sign","unknown|sign|increasing|decreasing",,Dispersion direction crsearch,s,h,"INDEF",,,Coordinate value search radius cdsearch,s,h,"INDEF",,,Coordinate interval search radius ntarget,i,h,100,,,Number of target features #nreference,i,h,40,,,Number of reference features npattern,i,h,5,3,10,Number of lines in patterns nneighbors,i,h,10,2,,Number of nearest neighbors in patterns nbins,i,h,6,1,,Maximum number of search bins ndmax,i,h,500,1,,Maximum number of dispersions to evaluate aidord,i,h,3,2,,Dispersion fitting order maxnl,r,h,0.02,0.,,Maximum non-linearity nfound,i,h,6,3,,Minimum number of lines in final solution sigma,r,h,.05,0.,,Sigma of line centering (pixels) minratio,r,h,0.1,0., 1.,Minimum spacing ratio to use rms,r,h,0.1,0.,,RMS goal (fwidths) fmatch,r,h,0.2,0.,1.,Matching goal (fraction unmatched) debug,s,h,"",,,Print debugging information sptable-1.0.pre20180612/src/xonedspec/autoidentify.par000066400000000000000000000031221331023215600223760ustar00rootroot00000000000000# Parameters for AUTOIDENTIFY. images,s,a,,,,"Images containing features to be identified" crval,s,a,,,,"Approximate coordinate (at reference pixel)" cdelt,s,a,,,,"Approximate dispersion" coordlist,f,h,,,,"Coordinate list" units,s,h,"",,,Coordinate units interactive,s,h,"yes","no|yes|NO|YES",,"Examine identifications interactively?" aidpars,pset,h,,,,"Automatic identification algorithm parameters " section,s,h,"middle line",,,"Section to apply to two dimensional images" nsum,s,h,"1",,,"Number of lines/columns/bands to sum in 2D/3D images " ftype,s,h,"emission","emission|absorption",,Feature type fwidth,r,h,4.,,,Feature width in pixels cradius,r,h,5.,,,Centering radius in pixels threshold,r,h,0.,0.,,Feature threshold for centering minsep,r,h,2.,0.,,"Minimum pixel separation" match,r,h,-3.,,,"Coordinate list matching limit " function,s,h,"spline3","legendre|chebyshev|spline1|spline3",,"Coordinate function" order,i,h,1,1,,"Order of coordinate function" sample,s,h,"*",,,"Coordinate sample regions" niterate,i,h,10,0,,"Rejection iterations" low_reject,r,h,2.,0.,,"Lower rejection sigma" high_reject,r,h,2.,0.,,"Upper rejection sigma" grow,r,h,0.,0.,,"Rejection growing radius " dbwrite,s,h,"yes","no|yes|NO|YES",,"Write results to database?" overwrite,b,h,"yes",,,"Overwrite existing database entries?" database,f,h,database,,,"Database in which to record feature data" verbose,b,h,yes,,,"Verbose output?" logfile,s,h,"logfile",,,"List of log files" plotfile,s,h,"",,,"Plot file for residuals" graphics,s,h,"stdgraph",,,"Graphics output device" cursor,*gcur,h,"",,,"Graphics cursor input " query,s,q,,,," " sptable-1.0.pre20180612/src/xonedspec/bplot.cl000066400000000000000000000033001331023215600206240ustar00rootroot00000000000000# BPLOT -- Batch plotting of spectra with SPLOT procedure bplot (images) string images {prompt="List of images to plot"} string apertures = "" {prompt="List of apertures to plot"} int band = 1 {prompt="Band to plot"} string graphics = "stdgraph" {prompt="Graphics output device"} string cursor = "onedspec$gcurval.dat" {prompt="Cursor file(s)\n\nSPLOT query parameters to fix"} string next_image = "" {prompt="Next image to plot"} string new_image = "" {prompt="Image to create"} bool overwrite = yes {prompt="Overwrite image?"} string spec2 = "" {prompt="Spectrum"} real constant = 0. {prompt="Constant to be applied"} real wavelength = 0. {prompt="Dispersion coordinate"} file linelist = "" {prompt="File"} real wstart = 0. {prompt="Starting wavelength"} real wend = 0. {prompt="Ending wavelength"} real dw = 0. {prompt="Wavelength per pixel"} int boxsize = 2 {prompt="Smoothing box size\n"} struct *ilist, *clist begin int line, ap file ifile, cfile, cur, image ifile = mktemp ("bplot") cfile = mktemp ("bplot") slist (images, apertures=apertures, long_header=no, > ifile) files (cursor, > cfile) cur = "" ilist = ifile; clist = cfile while (fscan (ilist, image, line, ap) != EOF) { if (nscan() < 3) next if ((cursor != "") && (fscan (clist, cur) == EOF)) { clist = cfile line = fscan (clist, cur) } splot (image, line=ap, band=band, graphics=graphics, cursor=cur, next_image=next_image, new_image=new_image, overwrite=overwrite, spec2=spec2, constant=constant, wavelength=wavelength, linelist=linelist, wstart=wstart, wend=wend, dw=dw, boxsize=boxsize) } clist = ""; ilist = "" delete (ifile, verify=no) delete (cfile, verify=no) end sptable-1.0.pre20180612/src/xonedspec/calibrate.par000066400000000000000000000010221331023215600216150ustar00rootroot00000000000000# CALIBRATE parameter file input,s,a,,,,Input spectra to calibrate output,s,a,,,,Output calibrated spectra extinct,b,h,yes,,,Apply extinction correction? flux,b,h,yes,,,Apply flux calibration? extinction,s,h,,,,Extinction file observatory,s,h,)_.observatory,,,Observatory of observation ignoreaps,b,h,no,,,Ignore aperture numbers in flux calibration? sensitivity,s,h,"sens",,,Image root name for sensitivity spectra fnu,b,h,no,,,Create spectra having units of FNU? airmass,r,q,,1.,,Airmass exptime,r,q,,,,Exposure time (seconds) sptable-1.0.pre20180612/src/xonedspec/continuum.par000066400000000000000000000022561331023215600217220ustar00rootroot00000000000000input,s,a,,,,Input images output,s,a,,,,Output images lines,s,h,"*",,,Image lines to be fit bands,s,h,"1",,,Image bands to be fit type,s,h,"ratio","data|fit|difference|ratio",,Type of output replace,b,h,no,,,Replace rejected points by fit? wavescale,b,h,yes,,,Scale the X axis with wavelength? logscale,b,h,no,,,Take the log (base 10) of both axes? override,b,h,no,,,Override previously fit lines? listonly,b,h,no,,,List fit but don't modify any images? logfiles,s,h,"logfile",,,List of log files interactive,b,h,yes,,,Set fitting parameters interactively? sample,s,h,"*",,,Sample points to use in fit naverage,i,h,1,,,Number of points in sample averaging function,s,h,"spline3","spline3|legendre|chebyshev|spline1",,Fitting function order,i,h,1,1,,Order of fitting function low_reject,r,h,2.,0.,,Low rejection in sigma of fit high_reject,r,h,0.,0.,,High rejection in sigma of fit niterate,i,h,10,0,,Number of rejection iterations grow,r,h,1.,0.,,Rejection growing radius markrej,b,h,yes,,,Mark rejected points? graphics,s,h,"stdgraph",,,Graphics output device cursor,*gcur,h,"",,,Graphics cursor input ask,s,q,"yes","yes|no|skip|YES|NO|SKIP",," " mode,s,h,"ql" sptable-1.0.pre20180612/src/xonedspec/deredden.par000066400000000000000000000005631331023215600214520ustar00rootroot00000000000000# DEREDDEN parameter file input,s,a,,,,Input spectra to correct output,s,a,,,,Output corrected spectra value,r,a,,,,Extinction parameter value R,r,h,3.1,,,A(V)/E(B-V) type,s,h,"E(B-V)","A(V)|E(B-V)|c",,Type of extinction parameter apertures,s,h,"",,,Apertures to correct override,b,h,no,,,Override previous correction? uncorrect,b,h,yes,,,Uncorrect previous correction? sptable-1.0.pre20180612/src/xonedspec/dispcor.par000066400000000000000000000014661331023215600213460ustar00rootroot00000000000000input,s,a,,,,List of input spectra output,s,a,,,,List of output spectra linearize,b,h,yes,,,Linearize (interpolate) spectra? database,s,h,"database",,,Dispersion solution database table,s,h,"",,,Wavelength table for apertures w1,r,h,INDEF,,,Starting wavelength w2,r,h,INDEF,,,Ending wavelength dw,r,h,INDEF,,,Wavelength interval per pixel nw,i,h,INDEF,,,Number of output pixels log,b,h,no,,,Logarithmic wavelength scale? flux,b,h,yes,,,Conserve total flux? blank,r,h,0.,,,Output value of points not in input samedisp,b,h,no,,,Same dispersion in all apertures? global,b,h,no,,,Apply global defaults? ignoreaps,b,h,no,,,Ignore apertures? confirm,b,h,no,,,Confirm dispersion coordinates? listonly,b,h,no,,,List the dispersion coordinates only? verbose,b,h,yes,,,Print linear dispersion assignments? logfile,s,h,"",,,Log file sptable-1.0.pre20180612/src/xonedspec/dispcor/000077500000000000000000000000001331023215600206335ustar00rootroot00000000000000sptable-1.0.pre20180612/src/xonedspec/dispcor/dcio.x000066400000000000000000001027721331023215600217530ustar00rootroot00000000000000include include include include include include include "dispcor.h" # Symbol table structure for the dispersion solutions. define LEN_DC 11 # Length of dispersion solution struct. define DC_FORMAT Memi[$1] # Type of dispersion define DC_PAPS Memi[$1+1] # Pointer to aperture numbers define DC_PAPCEN Memi[$1+2] # Pointer to aperture centers define DC_PUN Memi[$1+3] # Pointer to units define DC_PSHIFT Memi[$1+4] # Pointer to shifts define DC_PCOEFF Memi[$1+5] # Pointer to coefficients define DC_NAPS Memi[$1+6] # Number of apertures define DC_OFFSET Memi[$1+7] # Aperture to order offset define DC_SLOPE Memi[$1+8] # Aperture to order slope define DC_COEFFS Memi[$1+9] # Dispersion coefficients define DC_SHIFT Memr[P2R($1+10)]# Dispersion function shift # DC_OPEN -- Initialize the dispersion data structures # DC_CLOSE -- Close the dispersion data structures # DC_GMS -- Get a multispec spectrum # DC_GMSDB -- Get a multispec dispersion database entry # DC_REFSHFT -- Get a reference shift # DC_GEC -- Get an echelle spectrum # DC_GECDB -- Get an echelle dispersion database entry # DC_ECMS -- Convert echelle dispersion coeffs to multispec coeffs # DC_OPEN -- Initialize the dispersion routines. This consists # of opening a symbol table for the dispersion solution functions. A # symbol table is used since the same dispersion reference (arc image) # may be be used multiple times and the database access is slow. procedure dc_open (stp, db) pointer stp # Symbol table pointer char db[SZ_FNAME] # Database name pointer sym, stopen(), stenter(), stpstr() begin stp = stopen ("disp", 10, 10, 10*SZ_FNAME) sym = stenter (stp, "database", 1) Memi[sym] = stpstr (stp, db, 0) end # DC_CLOSE -- Close the dispersion data structures. procedure dc_close (stp) int i pointer stp, sym, sthead, stnext begin # Close each dispersion function and then the symbol table. for (sym = sthead (stp); sym != NULL; sym = stnext (stp, sym)) { if (DC_FORMAT(sym) == 1) { do i = 1, DC_NAPS(sym) { call un_close (Memi[DC_PUN(sym)+i-1]) call mfree (Memi[DC_PCOEFF(sym)+i-1], TY_DOUBLE) } call mfree (DC_PAPS(sym), TY_INT) call mfree (DC_PAPCEN(sym), TY_REAL) call mfree (DC_PUN(sym), TY_POINTER) call mfree (DC_PSHIFT(sym), TY_DOUBLE) call mfree (DC_PCOEFF(sym), TY_POINTER) } else if (DC_FORMAT(sym) == 2) { call un_close (DC_PUN(sym)) call mfree (DC_COEFFS(sym), TY_DOUBLE) } } call stclose (stp) end # DC_GMS -- Get a multispec spectrum. This consists of mapping the image # and setting a MWCS coordinate transformation. If not dispersion corrected # the dispersion function is found in the database for the reference # spectra and set in the SMW. procedure dc_gms (spec, im, smw, stp, ignoreaps, ap, fd1, fd2) char spec[ARB] #I Spectrum name pointer im #I IMIO pointer pointer smw #I SMW pointer pointer stp #I Dispersion symbol table int ignoreaps #I Ignore aperture numbers? pointer ap #O Aperture data structure int fd1 #I Logfile descriptor int fd2 #I Logfile descriptor double wt1, wt2, dval int i, j, k, k1, k2, l, dc, sfd, naps, naps1, naps2, ncoeffs pointer sp, str1, str2, papcen, pshift, coeffs, ct1, ct2, un, un1, un2 pointer paps1, paps2, punits1, punits2, pshift1, pshift2, pcoeff1, pcoeff2 bool un_compare() double smw_c1trand() int s_accf(), nscan(), stropen() pointer smw_sctran(), un_open() errchk dc_gmsdb, dc_refshft, s_gstr, smw_sctran, un_open errchk s_gstr define done_ 90 begin call smark (sp) call salloc (str1, SZ_LINE, TY_CHAR) call salloc (str2, SZ_LINE, TY_CHAR) # Set WCS attributes naps = S_NSPEC(im) call calloc (ap, LEN_AP(naps), TY_STRUCT) do i = 1, naps { DC_PL(ap,i) = i DC_CF(ap,i) = NULL call smw_gwattrs (smw, DC_PL(ap,i), 1, DC_AP(ap,i), DC_BM(ap,i), DC_DT(ap,i), DC_W1(ap,i), DC_DW(ap,i), DC_NW(ap,i), DC_Z(ap,i), DC_LW(ap,i), DC_UP(ap,i), DC_CF(ap,i)) if (i == 1) { iferr (call mw_gwattrs (SMW_MW(smw,0), 1, "units", Memc[str1], SZ_LINE)) Memc[str1] = EOS DC_UN(ap,i) = un_open (Memc[str1]) } dc = DC_DT(ap,i) } # Check if the spectra have been dispersion corrected # by an earlier version of DISPCOR. If so then don't allow # another database dispersion correction. This assumes all # spectra have the same dispersion type. Check for a # reference spectrum. if ((s_accf (im, "REFSPEC1") == NO) || (dc > -1 && s_accf (im, "DCLOG1") == NO)) { if (fd1 != NULL) { call fprintf (fd1, "%s: Resampling using current coordinate system\n") call pargstr (spec) } if (fd2 != NULL) { call fprintf (fd2, "%s: Resampling using current coordinate system\n") call pargstr (spec) } goto done_ } # Get the reference spectra dispersion function from the database # and determine a reference shift. iferr { call s_gstr (im, "REFSPEC1", Memc[str1], SZ_LINE) call sscan (Memc[str1]) call gargwrd (Memc[str1], SZ_LINE) call gargd (wt1) if (nscan() == 1) wt1 = 1. } then { call strcpy (spec, Memc[str1], SZ_FNAME) wt1 = 1. } iferr (call dc_gmsdb (Memc[str1], stp, paps1, papcen, punits1, pshift, pcoeff1, naps1)) { call sfree (sp) call erract (EA_ERROR) } call salloc (pshift1, naps1, TY_DOUBLE) call amovd (Memd[pshift], Memd[pshift1], naps1) if (fd1 != NULL) { call fprintf (fd1, "%s: REFSPEC1 = '%s %.8g'\n") call pargstr (spec) call pargstr (Memc[str1]) call pargd (wt1) } if (fd2 != NULL) { call fprintf (fd2, "%s: REFSPEC1 = '%s %.8g'\n") call pargstr (spec) call pargstr (Memc[str1]) call pargd (wt1) } iferr (call dc_refshft (spec, stp, Memc[str1], "REFSHFT1", im, Memi[paps1], Memr[papcen], Memd[pshift1], naps1, fd1, fd2)) ; iferr { call s_gstr (im, "REFSPEC2", Memc[str1], SZ_LINE) call sscan (Memc[str1]) call gargwrd (Memc[str1], SZ_LINE) call gargd (wt2) if (nscan() == 1) wt2 = 1. call dc_gmsdb (Memc[str1], stp, paps2, papcen, punits2, pshift, pcoeff2, naps2) call salloc (pshift2, naps2, TY_DOUBLE) call amovd (Memd[pshift], Memd[pshift2], naps2) if (fd1 != NULL) { call fprintf (fd1, "%s: REFSPEC2 = '%s %.8g'\n") call pargstr (spec) call pargstr (Memc[str1]) call pargd (wt2) } if (fd2 != NULL) { call fprintf (fd2, "%s: REFSPEC2 = '%s %.8g'\n") call pargstr (spec) call pargstr (Memc[str1]) call pargd (wt2) } iferr (call dc_refshft (spec, stp, Memc[str1], "REFSHFT2", im, Memi[paps2], Memr[papcen], Memd[pshift2], naps2, fd1, fd2)) ; } then wt2 = 0. # Adjust weights to unit sum. dval = wt1 + wt2 wt1 = wt1 / dval wt2 = wt2 / dval # Enter dispersion function in the MWCS. do i = 1, naps { j = DC_AP(ap,i) for (k1=0; k1 0.) l = 2 * l call realloc (DC_CF(ap,i), l, TY_CHAR) call aclrc (Memc[DC_CF(ap,i)], l) sfd = stropen (Memc[DC_CF(ap,i)], l, NEW_FILE) call fprintf (sfd, "%.8g %g") call pargd (wt1) call pargd (Memd[pshift1+k1]) dval = DC_DW(ap,i) * (DC_NW(ap,i) - 1) / 2. call fprintf (sfd, " 1 2 1 %d %g %g") call pargi (DC_NW(ap,i)) call pargd (DC_W1(ap,i) + dval) call pargd (dval) } } else { ncoeffs = nint (Memd[coeffs]) l = 20 * (ncoeffs + 2) if (wt2 > 0.) l = 2 * l call realloc (DC_CF(ap,i), l, TY_CHAR) call aclrc (Memc[DC_CF(ap,i)], l) sfd = stropen (Memc[DC_CF(ap,i)], l, NEW_FILE) call fprintf (sfd, "%.8g %g %d %d") call pargd (wt1) call pargd (Memd[pshift1+k1]) call pargi (nint (Memd[coeffs+1])) call pargi (nint (Memd[coeffs+2])) do k = 3, ncoeffs { call fprintf (sfd, " %.15g") call pargd (Memd[coeffs+k]) } } if (wt2 > 0.) { for (k2=0; k2 0) { for (i = 1; i <= naps; i = i + 1) { iferr (Memi[paps+i-1] = dtgeti (dt, i, "aperture")) Memi[paps+i-1] = INDEFI iferr (low = dtgetr (dt, i, "aplow")) low = INDEF iferr (high = dtgetr (dt, i, "aphigh")) high = INDEF if (IS_INDEF(low) || IS_INDEF(high)) Memr[papcen+i-1] = 0. else Memr[papcen+i-1] = (low + high) / 2. iferr (call dtgstr (dt, i, "units", Memc[str], SZ_LINE)) call strcpy ("Angstroms", Memc[str], SZ_LINE) Memi[punits+i-1] = un_open (Memc[str]) iferr (Memd[pshift+i-1] = dtgetr (dt, i, "shift")) Memd[pshift+i-1] = 0. iferr { n = dtgeti (dt, i, "coefficients") call malloc (coeffs, 1+n, TY_DOUBLE) Memd[coeffs] = n call dtgad (dt, i, "coefficients", Memd[coeffs+1], n, n) Memi[pcoeff+i-1] = coeffs } then Memi[pcoeff+i-1] = NULL } } else { Memi[paps] = INDEFI Memr[papcen] = INDEFR Memi[punits] = un_open ("") Memd[pshift] = 0. call malloc (coeffs, 100, TY_DOUBLE) n = 3 call seek (Memi[dt], BOF) while (getline (Memi[dt], Memc[str]) != EOF) { i = 1 if (ctod (Memc[str], i, dval) == 0) next if (mod (n, 100) == 0) call realloc (coeffs, n+100, TY_DOUBLE) Memd[coeffs+n] = dval n = n + 1 } Memd[coeffs] = n - 1 Memd[coeffs+1] = 5 Memd[coeffs+2] = n - 3 Memi[pcoeff] = coeffs } call dtunmap (dt) call sfree (sp) sym = stenter (stp, spec, LEN_DC) DC_FORMAT(sym) = 1 DC_PAPS(sym) = paps DC_PAPCEN(sym) = papcen DC_PUN(sym) = punits DC_PSHIFT(sym) = pshift DC_PCOEFF(sym) = pcoeff DC_NAPS(sym) = naps } else { if (DC_FORMAT(sym) != 1) call error (1, "Not a multispec dispersion function") paps = DC_PAPS(sym) papcen = DC_PAPCEN(sym) punits = DC_PUN(sym) pshift = DC_PSHIFT(sym) pcoeff = DC_PCOEFF(sym) naps = DC_NAPS(sym) } end # DC_REFSHFT -- Compute dispersion shift. procedure dc_refshft (spec, stp, refspec, keywrd, im, aps, apcens, shifts, naps, fd1, fd2) char spec[ARB] # Spectrum to be corrected pointer stp # Symbol table pointer char refspec[ARB] # Reference spectrum char keywrd[ARB] # Header keyword (for log only) pointer im # IMIO pointer to spectrum to be corrected int aps[naps] # Reference apertures real apcens[naps] # Reference aperture centers double shifts[naps] # Reference aperture shifts (to be modified) int naps # Number of refernce apertures int fd1 # Logfile descriptor int fd2 # Logfile descriptor int i, j, k, pnaps double apcen, shift, sumx, sumy, sumxx, sumyy, sumxy, a, b pointer sp, refshft, option, paps, papcen, punits, pshift, pcoeff bool streq() errchk s_gstr, dc_gmsdb begin call smark (sp) call salloc (refshft, SZ_FNAME, TY_CHAR) call salloc (option, SZ_FNAME, TY_CHAR) # Parse header parameter. call s_gstr (im, keywrd, Memc[refshft], SZ_FNAME) call sscan (Memc[refshft]) call gargwrd (Memc[refshft], SZ_FNAME) if (streq (Memc[refshft], refspec)) { call sfree (sp) return } call gargwrd (Memc[option], SZ_FNAME) # Get reference shift apertures. call dc_gmsdb (Memc[refshft], stp, paps, papcen, punits, pshift, pcoeff, pnaps) if (pnaps == 0) { call sfree (sp) return } # Compute mean shift and RMS. sumy = 0. sumyy = 0. do i = 1, pnaps { sumy = sumy + Memd[pshift+i-1] sumyy = sumyy + Memd[pshift+i-1] ** 2 } sumy = sumy / pnaps sumyy = sqrt (max (0.D0, sumyy / pnaps - sumy ** 2)) # Print. if (fd1 != NULL) { call fprintf (fd1, "%s: %s = '%s %s', shift = %.6g, rms = %.6g\n") call pargstr (spec) call pargstr (keywrd) call pargstr (Memc[refshft]) call pargstr (Memc[option]) call pargd (sumy) call pargd (sumyy) } if (fd2 != NULL) { call fprintf (fd2, "%s: %s = '%s %s', shift = %.6g, rms = %.6g\n") call pargstr (spec) call pargstr (keywrd) call pargstr (Memc[refshft]) call pargstr (Memc[option]) call pargd (sumy) call pargd (sumyy) } if (streq (Memc[option], "interp")) { if (pnaps > 1) { sumx = 0. sumy = 0. sumxx = 0. sumyy = 0. sumxy = 0. do i = 0, pnaps-1 { apcen = Memr[papcen+i] shift = Memd[pshift+i] sumx = sumx + apcen sumy = sumy + shift sumxx = sumxx + apcen * apcen sumyy = sumyy + shift * shift sumxy = sumxy + apcen * shift } b = pnaps * sumxx - sumx * sumx a = (sumy * sumxx - sumx * sumxy) / b b = (pnaps * sumxy - sumx * sumy) / b } else { a = sumy b = 0. } do i = 1, naps shifts[i] = shifts[i] + a + b * apcens[i] if (fd1 != NULL) { call fprintf (fd1, "\tintercept = %.6g, slope = %.6g\n") call pargd (a) call pargd (b) } if (fd2 != NULL) { call fprintf (fd2, "\tintercept = %.6g, slope = %.6g\n") call pargd (a) call pargd (b) } } else if (streq (Memc[option], "nearest")) { do i = 1, naps { k = 0 sumy = abs (apcens[i] - Memr[papcen]) for (j = 1; j < pnaps; j = j + 1) if (abs (apcens[i] - Memr[papcen+j]) < sumy) { k = j sumy = abs (apcens[i] - Memr[papcen+k]) } shifts[i] = shifts[i] + Memd[pshift+k] if (fd1 != NULL) { call fprintf (fd1, "\t%4d %7.2f %4d %7.2f %.6g\n") call pargi (aps[i]) call pargr (apcens[i]) call pargi (Memi[paps+k]) call pargr (Memr[papcen+k]) call pargd (Memd[pshift+k]) } if (fd2 != NULL) { call fprintf (fd2, "\t%4d %7.2f %4d %7.2f %.6g\n") call pargi (aps[i]) call pargr (apcens[i]) call pargi (Memi[paps+k]) call pargr (Memr[papcen+k]) call pargd (Memd[pshift+k]) } } } else call aaddkd (shifts, sumy, shifts, naps) call sfree (sp) end # DC_GEC -- Get an echelle spectrum. This consists of mapping the image # and setting a MWCS coordinate transformation. If not dispersion corrected # the dispersion function is found in the database for the reference # spectra and set in the SMW. procedure dc_gec (spec, im, smw, stp, ap, fd1, fd2) char spec[ARB] #I Spectrum name pointer im #I IMIO pointer pointer smw #I SMW pointers pointer stp #I Symbol table pointer ap #O Aperture data structure int fd1 #I Logfile descriptor int fd2 #I Logfile descriptor double wt1, wt2, dval int i, j, k, l, dc, sfd, naps, ncoeffs, offset, slope pointer sp, str1, str2, coeff, coeffs, ct1, ct2, un1, un2, un3 pointer pshift1, pshift2, pshift3, pcoeff1, pcoeff2, pcoeff3 bool un_compare() double smw_c1trand() int s_accf(), nscan(), stropen() pointer smw_sctran(), un_open() errchk dc_gecdb, s_gstr, smw_sctran, un_open define done_ 90 begin call smark (sp) call salloc (str1, SZ_LINE, TY_CHAR) call salloc (str2, SZ_LINE, TY_CHAR) coeff = NULL # Set WCS attributes naps = S_NSPEC(im) call calloc (ap, LEN_AP(naps), TY_STRUCT) do i = 1, naps { DC_PL(ap,i) = i call smw_gwattrs (smw, DC_PL(ap,i), 1, DC_AP(ap,i), DC_BM(ap,i), DC_DT(ap,i), DC_W1(ap,i), DC_DW(ap,i), DC_NW(ap,i), DC_Z(ap,i), DC_LW(ap,i), DC_UP(ap,i), coeff) if (i == 1) { iferr (call mw_gwattrs (SMW_MW(smw,0), 1, "units", Memc[str1], SZ_LINE)) Memc[str1] = EOS DC_UN(ap,i) = un_open (Memc[str1]) } dc = DC_DT(ap,i) } # Check if the spectra have been dispersion corrected # by an earlier version of DISPCOR. If so then don't allow # another database dispersion correction. This assumes all # spectra have the same dispersion type. Check for a # reference spectrum. if ((s_accf (im, "REFSPEC1") == NO) || (dc > -1 && s_accf (im, "DCLOG1") == NO)) { if (fd1 != NULL) { call fprintf (fd1, "%s: Resampling using current coordinate system\n") call pargstr (spec) } if (fd2 != NULL) { call fprintf (fd2, "%s: Resampling using current coordinate system\n") call pargstr (spec) } goto done_ } # Get the reference spectra dispersion function from the database # and determine a reference shift. iferr { call s_gstr (im, "REFSPEC1", Memc[str1], SZ_LINE) call sscan (Memc[str1]) call gargwrd (Memc[str1], SZ_LINE) call gargd (wt1) if (nscan() == 1) wt1 = 1. } then { call strcpy (spec, Memc[str1], SZ_LINE) wt1 = 1. } call salloc (pshift1, naps, TY_DOUBLE) call salloc (pcoeff1, naps, TY_POINTER) slope = 0 iferr (call dc_gecdb (Memc[str1], stp, ap, un1, Memd[pshift1], Memi[pcoeff1], naps, offset, slope)) { call sfree (sp) call erract (EA_ERROR) } if (fd1 != NULL) { call fprintf (fd1, "%s: REFSPEC1 = '%s %.8g'\n") call pargstr (spec) call pargstr (Memc[str1]) call pargd (wt1) } if (fd2 != NULL) { call fprintf (fd2, "%s: REFSPEC1 = '%s %.8g'\n") call pargstr (spec) call pargstr (Memc[str1]) call pargd (wt1) } iferr { call s_gstr (im, "refshft1", Memc[str1], SZ_LINE) call salloc (pshift3, naps, TY_DOUBLE) call salloc (pcoeff3, naps, TY_POINTER) call dc_gecdb (Memc[str1], stp, ap, un3, Memd[pshift3], Memi[pcoeff3], naps, offset, slope) if (fd1 != NULL) { call fprintf (fd1, "%s: REFSHFT1 = '%s', shift = %.6g\n") call pargstr (spec) call pargstr (Memc[str1]) call pargd (Memd[pshift3]) } if (fd2 != NULL) { call fprintf (fd2, "%s: REFSHFT1 = '%s', shift = %.6g\n") call pargstr (spec) call pargstr (Memc[str1]) call pargd (Memd[pshift3]) } call aaddd (Memd[pshift1], Memd[pshift3], Memd[pshift1], naps) } then ; iferr { call s_gstr (im, "REFSPEC2", Memc[str1], SZ_LINE) call sscan (Memc[str1]) call gargwrd (Memc[str1], SZ_LINE) call gargd (wt2) if (nscan() == 1) wt2 = 1. call salloc (pshift2, naps, TY_DOUBLE) call salloc (pcoeff2, naps, TY_POINTER) call dc_gecdb (Memc[str1], stp, ap, un2, Memd[pshift2], Memi[pcoeff2], naps, offset, slope) if (fd1 != NULL) { call fprintf (fd1, "%s: REFSPEC2 = '%s %.8g'\n") call pargstr (spec) call pargstr (Memc[str1]) call pargd (wt2) } if (fd2 != NULL) { call fprintf (fd2, "%s: REFSPEC2 = '%s %.8g'\n") call pargstr (spec) call pargstr (Memc[str1]) call pargd (wt2) } iferr { call s_gstr (im, "refshft2", Memc[str1], SZ_LINE) call salloc (pshift3, naps, TY_DOUBLE) call salloc (pcoeff3, naps, TY_POINTER) call dc_gecdb (Memc[str1], stp, ap, un3, Memd[pshift3], Memi[pcoeff3], naps, offset, slope) if (fd1 != NULL) { call fprintf (fd1, "%s: REFSHFT2 = '%s', shift = %.6g\n") call pargstr (spec) call pargstr (Memc[str1]) call pargd (Memd[pshift3]) } if (fd2 != NULL) { call fprintf (fd2, "%s: REFSHFT2 = '%s', shift = %.6g\n") call pargstr (spec) call pargstr (Memc[str1]) call pargd (Memd[pshift3]) } call aaddd (Memd[pshift1], Memd[pshift3], Memd[pshift1], naps) } then ; } then wt2 = 0. # Adjust weights to unit sum. dval = wt1 + wt2 wt1 = wt1 / dval wt2 = wt2 / dval # Enter dispersion function in the MWCS. do i = 1, naps { coeffs = Memi[pcoeff1+i-1] ncoeffs = nint (Memd[coeffs]) l = 20 * (ncoeffs + 2) if (wt2 > 0.) l = 2 * l call realloc (coeff, l, TY_CHAR) call aclrc (Memc[coeff], l) sfd = stropen (Memc[coeff], l, NEW_FILE) call fprintf (sfd, "%.8g %g") call pargd (wt1) call pargd (Memd[pshift1+i-1]) # The following assumes some knowledge of the data structure in # order to shortten the the attribute string. call fprintf (sfd, " %d %d %.8g %.8g") call pargi (nint (Memd[coeffs+1])) call pargi (nint (Memd[coeffs+2])) call pargd (Memd[coeffs+3]) call pargd (Memd[coeffs+4]) do j = 5, ncoeffs { call fprintf (sfd, " %.15g") call pargd (Memd[coeffs+j]) } if (wt2 > 0.) { coeffs = Memi[pcoeff2+i-1] ncoeffs = nint (Memd[coeffs]) call fprintf (sfd, "%.8g %g") call pargd (wt2) call pargd (Memd[pshift2+i-1]) call fprintf (sfd, " %d %d %.8g %.8g") call pargi (nint (Memd[coeffs+1])) call pargi (nint (Memd[coeffs+2])) call pargd (Memd[coeffs+3]) call pargd (Memd[coeffs+4]) do j = 5, ncoeffs { call fprintf (sfd, " %.15g") call pargd (Memd[coeffs+j]) } if (!un_compare (un1, un2)) { call sfree (sp) call error (2, "Can't combine references with different units") } } if (i == 1) { if (UN_LABEL(un1) != EOS) call mw_swattrs (SMW_MW(smw,0), 1, "label", UN_LABEL(un1)) if (UN_UNITS(un1) != EOS) call mw_swattrs (SMW_MW(smw,0), 1, "units", UN_UNITS(un1)) call un_close (DC_UN(ap,i)) DC_UN(ap,i) = un1 } DC_DT(ap,i) = 2 call smw_swattrs (smw, DC_PL(ap,i), 1, DC_AP(ap,i), DC_BM(ap,i), DC_DT(ap,i), DC_W1(ap,i), DC_DW(ap,i), DC_NW(ap,i), DC_Z(ap,i), DC_LW(ap,i), DC_UP(ap,i), Memc[coeff]) call strclose (sfd) } # Update the linear part of WCS. ct1 = smw_sctran (smw, "logical", "physical", 2) ct2 = smw_sctran (smw, "physical", "world", 3) do i = 1, naps { call smw_gwattrs (smw, DC_PL(ap,i), 1, DC_AP(ap,i), DC_BM(ap,i), DC_DT(ap,i), DC_W1(ap,i), DC_DW(ap,i), DC_NW(ap,i), DC_Z(ap,i), DC_LW(ap,i), DC_UP(ap,i), coeff) wt1 = nint (smw_c1trand (ct1, double(i))) call smw_c2trand (ct2, 1D0, wt1, DC_W1(ap,i), wt2) call smw_c2trand (ct2, double(DC_NW(ap,i)), wt1, DC_W2(ap,i), wt2) DC_DW(ap,i) = (DC_W2(ap,i) - DC_W1(ap,i)) / (DC_NW(ap,i) - 1) call smw_swattrs (smw, DC_PL(ap,i), 1, DC_AP(ap,i), DC_BM(ap,i), DC_DT(ap,i), DC_W1(ap,i), DC_DW(ap,i), DC_NW(ap,i), DC_Z(ap,i), DC_LW(ap,i), DC_UP(ap,i), Memc[coeff]) } call smw_ctfree (ct1) call smw_ctfree (ct2) done_ # Set aperture parameters in terms of logical image. ct1 = smw_sctran (smw, "physical", "logical", 1) j = nint (smw_c1trand (ct1, 1D0)) do i = 1, naps { k = nint (smw_c1trand (ct1, double(DC_NW(ap,i)))) DC_NW(ap,i) = min (S_NDISP(im), max (j, k)) } call smw_ctfree (ct1) ct1 = smw_sctran (smw, "logical", "world", 3) do i = 1, naps { wt1 = i call smw_c2trand (ct1, 1D0, wt1, DC_W1(ap,i), wt2) call smw_c2trand (ct1, double(DC_NW(ap,i)), wt1, DC_W2(ap,i), wt2) DC_DW(ap,i) = (DC_W2(ap,i) - DC_W1(ap,i)) / (DC_NW(ap,i) - 1) } call smw_ctfree (ct1) call mfree (coeff, TY_CHAR) call sfree (sp) end # DC_GECDB -- Get a dispersion database entry. # The database entry is read only once from the database and stored in a # symbol table keyed by the spectrum name. Subsequent requests for the # reference spectrum returns the data from the symbol table. procedure dc_gecdb (spec, stp, ap, un, shifts, pcoeff, naps, offset, slope) char spec[ARB] # Spectrum image name pointer stp # Symbol table pointer pointer ap # Aperture data structure pointer un # Units double shifts[naps] # Shifts pointer pcoeff[naps] # Pointer to coefficients int naps # Number of apertures int offset # Aperture to order offset int slope # Aperture to order slope double shift real dtgetr() int i, rec, offst, slpe, n, dtlocate(), dtgeti() pointer sp, str, coeffs, sym, db, dt pointer stfind(), stenter(), strefsbuf(), dtmap1(), un_open() errchk dtmap1, dtlocate, dtgeti, dtgad, un_open begin # Check if dispersion solution is in the symbol table from a previous # call. If not in the symbol table get it from the database and # store it in the symbol table. sym = stfind (stp, spec) if (sym == NULL) { call smark (sp) call salloc (str, SZ_LINE, TY_CHAR) call strcpy ("ec", Memc[str], SZ_LINE) call imgcluster (spec, Memc[str+2], SZ_LINE-2) call xt_imroot (Memc[str+2], Memc[str+2], SZ_LINE-2) db = strefsbuf (stp, Memi[stfind (stp, "database")]) dt = dtmap1 (Memc[db], Memc[str], READ_ONLY) call sprintf (Memc[str], SZ_LINE, "ecidentify %s") call pargstr (spec) iferr (rec = dtlocate (dt, Memc[str])) { call sprintf (Memc[str], SZ_LINE, "DISPCOR: Echelle dispersion function not found (%s/%s)") call pargstr (DT_DNAME(dt)) call pargstr (DT_FNAME(dt)) call fatal (0, Memc[str]) } iferr (call dtgstr (dt, rec, "units", Memc[str], SZ_LINE)) call strcpy ("Angstroms", Memc[str], SZ_LINE) un = un_open (Memc[str]) iferr (offst = dtgeti (dt, rec, "offset")) offst = 0 iferr (slpe = dtgeti (dt, rec, "slope")) slpe = 1 iferr (shift = dtgetr (dt, rec, "shift")) shift = 0. n = dtgeti (dt, rec, "coefficients") call malloc (coeffs, n, TY_DOUBLE) call dtgad (dt, rec, "coefficients", Memd[coeffs], n, n) sym = stenter (stp, spec, LEN_DC) DC_FORMAT(sym) = 2 DC_PUN(sym) = un DC_OFFSET(sym) = offst DC_SLOPE(sym) = slpe DC_SHIFT(sym) = shift DC_COEFFS(sym) = coeffs call dtunmap (dt) call sfree (sp) } else { if (DC_FORMAT(sym) != 2) call error (1, "Not an echelle dispersion function") un = DC_PUN(sym) offst = DC_OFFSET(sym) slpe = DC_SLOPE(sym) coeffs = DC_COEFFS(sym) shift = DC_SHIFT(sym) } # Check aperture to order parameters. if (slope == 0) { offset = offst slope = slpe } else if (offset != offst || slope != slpe) { call eprintf ( "WARNING: Echelle order offsets/slopes are not the same.\n") } # Convert to multispec coefficients do i = 1, naps { DC_BM(ap,i) = offset + slope * DC_AP(ap,i) call dc_ecms (DC_BM(ap,i), Memd[coeffs], pcoeff[i]) shifts[i] = shift / DC_BM(ap,i) } end # DC_ECMS -- Convert echelle dispersion coefficients to multispec coefficients procedure dc_ecms (order, eccoeff, mscoeff) int order # Echelle order double eccoeff[ARB] # Echelle dispersion coefficients pointer mscoeff # Pointer to multispec coefficients int i, j, k, type, xorder, yorder double xmin, xmax, ymin, ymax, ymaxmin, yrange, y, coeff, a, b, c begin type = nint (eccoeff[1]) xorder = nint (eccoeff[2]) yorder = nint (eccoeff[3]) xmin = eccoeff[5] xmax = eccoeff[6] ymin = eccoeff[7] ymax = eccoeff[8] yrange = 2. / (ymax - ymin) ymaxmin = (ymax + ymin) / 2 y = (order - ymaxmin) * yrange call malloc (mscoeff, 5+xorder, TY_DOUBLE) Memd[mscoeff] = 4+xorder Memd[mscoeff+1] = type Memd[mscoeff+2] = xorder Memd[mscoeff+3] = xmin Memd[mscoeff+4] = xmax switch (type) { case 1: do k = 1, xorder { j = 9 + k - 1 coeff = eccoeff[j] if (yorder > 1) { j = j + xorder coeff = coeff + eccoeff[j] * y } if (yorder > 2) { a = 1 b = y do i = 3, yorder { c = 2 * y * b - a j = j + xorder coeff = coeff + eccoeff[j] * c a = b b = c } } Memd[mscoeff+4+k] = coeff / order } case 2: do k = 1, xorder { j = 9 + k - 1 coeff = eccoeff[j] if (yorder > 1) { j = j + xorder coeff = coeff + eccoeff[j] * y } if (yorder > 2) { a = 1 b = y do i = 3, yorder { c = ((2 * i - 3) * y * b - (i - 2) * a) / (i - 1) j = j + xorder coeff = coeff + eccoeff[j] * c a = b b = c } } Memd[mscoeff+4+k] = coeff / order } } end sptable-1.0.pre20180612/src/xonedspec/dispcor/dctable.h000066400000000000000000000010141331023215600223760ustar00rootroot00000000000000# Wavelength table structure define TBL_LEN 14 define TBL_W1 Memd[P2D($1)] # Starting wavelength define TBL_W2 Memd[P2D($1+2)] # Ending wavelength define TBL_DW Memd[P2D($1+4)] # Wavelength interval define TBL_WMIN Memd[P2D($1+6)] # Minimum wavelength for global define TBL_WMAX Memd[P2D($1+8)] # Maximum wavelength for global define TBL_AP Memi[$1+10] # Aperture define TBL_NW Memi[$1+11] # Number of points define TBL_NWMAX Memi[$1+12] # Maximum number of points for global define TBL_CONFIRM Memi[$1+13] # Confirm? sptable-1.0.pre20180612/src/xonedspec/dispcor/dctable.x000066400000000000000000000074631331023215600224340ustar00rootroot00000000000000include include include "dctable.h" include # DC_TABLE -- Set default wavelengths. # This may be specified by the task parameters alone, from a reference image, # or from a text table. A reference image or table allows separate # wavelength parameters for each aperture. The text table columns are the # aperture number, starting wavelength, ending wavelength, wavelength # interval per pixel, and number of pixels. Any of these values may be # INDEF. procedure dc_table (table, naps) pointer table # Table pointer (returned) int naps # Number of apertures (returned) int i, j, ap, nw, fd, clgeti(), open(), fscan(), nscan(), btoi(), nowhite() double ws, we, dw, clgetd() pointer sp, fname, tbl, mw, sh, s_map(), smw_openim() bool clgetb() errchk smw_openim(), shdr_open() begin call smark (sp) call salloc (fname, SZ_FNAME, TY_CHAR) call clgstr ("table", Memc[fname], SZ_FNAME) # Set defaults. naps = 0 call malloc (table, 10, TY_INT) call malloc (Memi[table], TBL_LEN, TY_STRUCT) tbl= Memi[table] TBL_W1(tbl) = clgetd ("w1") TBL_W2(tbl) = clgetd ("w2") TBL_DW(tbl) = clgetd ("dw") TBL_NW(tbl) = clgeti ("nw") TBL_WMIN(tbl) = MAX_REAL TBL_WMAX(tbl) = -MAX_REAL TBL_NWMAX(tbl) = 0 TBL_CONFIRM(tbl) = btoi (clgetb ("confirm")) # Read a reference image or table if specified and add entries to # the table array. if (nowhite (Memc[fname], Memc[fname], SZ_FNAME) > 0) { ifnoerr (fd = s_map (Memc[fname], READ_ONLY, 0)) { mw = smw_openim (fd) call shdr_open (fd, mw, 1, 1, INDEFI, SHHDR, sh) if (DC(sh) == DCLINEAR || DC(sh) == DCLOG) { do j = 1, S_NSPEC(fd) { call shdr_open (fd, mw, j, 1, INDEFI, SHHDR, sh) call dc_getentry (false, AP(sh), table, naps, i) tbl = Memi[table+i] TBL_AP(tbl) = AP(sh) TBL_NW(tbl) = SN(sh) TBL_W1(tbl) = W0(sh) TBL_W2(tbl) = W1(sh) TBL_DW(tbl) = WP(sh) } } call shdr_close (sh) call smw_close (mw) call s_unmap (fd) } else { ifnoerr (fd = open (Memc[fname], READ_ONLY, TEXT_FILE)) { while (fscan (fd) != EOF) { call gargi (ap) call gargd (ws) call gargd (we) call gargd (dw) call gargi (nw) if (nscan() < 5) next call dc_getentry (false, ap, table, naps, i) tbl = Memi[table+i] TBL_AP(tbl) = ap TBL_W1(tbl) = ws TBL_W2(tbl) = we TBL_DW(tbl) = dw TBL_NW(tbl) = nw } call close (fd) } else call error (1, "Can't access wavelength table") } } # If ignoreaps=yes then replace INDEFs in the default entry with # the first non-INDEF entry. if (clgetb ("ignoreaps") && naps > 0) { tbl= Memi[table] if (IS_INDEFD(TBL_W1(tbl))) TBL_W1(tbl) = TBL_W1(Memi[table+1]) if (IS_INDEFD(TBL_W2(tbl))) TBL_W2(tbl) = TBL_W2(Memi[table+1]) if (IS_INDEFD(TBL_DW(tbl))) TBL_DW(tbl) = TBL_DW(Memi[table+1]) if (IS_INDEFI(TBL_NW(tbl))) TBL_NW(tbl) = TBL_NW(Memi[table+1]) } call sfree (sp) end # DC_GETENTRY -- Get entry from wavelength table. Return the index. Allocate # a new entry if needed. procedure dc_getentry (apflag, ap, table, naps, index) bool apflag # Ignore aperture numbers? int ap # Aperture pointer table # Wavelength table int naps # Number of apertures int index # Table index of entry pointer tbl begin for (index=1; index<=naps; index=index+1) if (apflag || TBL_AP(Memi[table+index]) == ap) return naps = naps + 1 if (mod (naps, 10) == 0) call realloc (table, naps+10, TY_INT) call malloc (Memi[table+naps], TBL_LEN, TY_STRUCT) index = naps tbl = Memi[table+index] TBL_AP(tbl) = ap TBL_W1(tbl) = TBL_W1(Memi[table]) TBL_W2(tbl) = TBL_W2(Memi[table]) TBL_DW(tbl) = TBL_DW(Memi[table]) TBL_NW(tbl) = TBL_NW(Memi[table]) TBL_WMIN(tbl) = TBL_WMIN(Memi[table]) TBL_WMAX(tbl) = TBL_WMAX(Memi[table]) TBL_NWMAX(tbl) = TBL_NWMAX(Memi[table]) TBL_CONFIRM(tbl) = TBL_CONFIRM(Memi[table]) end sptable-1.0.pre20180612/src/xonedspec/dispcor/dispcor.h000066400000000000000000000015301331023215600224460ustar00rootroot00000000000000# Aperture data structure define LEN_AP ($1*20) # Length of DC data structure define DC_PL Memi[$1+($2-1)*20+1] # Physical line number define DC_AP Memi[$1+($2-1)*20+2] # Aperture number define DC_BM Memi[$1+($2-1)*20+3] # Beam number define DC_DT Memi[$1+($2-1)*20+4] # Dispersion type define DC_NW Memi[$1+($2-1)*20+5] # Number of pixels in spectrum define DC_W1 Memd[P2D($1+($2-1)*20+6)] # Wavelength of first pixel define DC_W2 Memd[P2D($1+($2-1)*20+8)] # Wavelength of last pixel define DC_DW Memd[P2D($1+($2-1)*20+10)] # Wavelength interval per pixel define DC_Z Memd[P2D($1+($2-1)*20+12)] # Redshift define DC_LW Memr[P2R($1+($2-1)*20+14)] # Aperture lower limit (2) define DC_UP Memr[P2R($1+($2-1)*20+16)] # Aperture upper limit (2) define DC_CF Memi[$1+($2-1)*20+18] # Pointer to coefficients define DC_UN Memi[$1+($2-1)*20+19] # Units sptable-1.0.pre20180612/src/xonedspec/dispcor/dispcor.x000066400000000000000000000141411331023215600224700ustar00rootroot00000000000000include # DISPCOR -- Dispersion correct input spectrum to output spectrum. # This procedure uses the MWCS forward and inverse transformations # and interpolate the input data, conserving flux if desired. Image # interpolation uses the image interpolation package and flux conservation # integrates the interpolation function across the output pixel. This # procedure does some CLIO to get the interpolation function and to # query whether to conserve flux. procedure dispcor (cti, linei, cto, lineo, in, npts, out, nw, flux) pointer cti #I MWCS input inverse transformation int linei #I Spectrum line pointer cto #I MWCS output forward transformation int lineo #I Spectrum line real in[npts] #I Input spectrum int npts #I Number of input pixels real out[nw] #O Output spectrum int nw #I Number of output pixels bool flux #I Conserve flux char interp[10] bool ofb_a, ofb_b int i, j, ia, ib, clgwrd() real a, b, sum, asieval(), asigrl() double x, xmin, xmax, w, y1, y2, smw_c1trand() pointer asi, temp begin # Get the image buffers fit the interpolation function to the # input spectrum. Extend the interpolation by one pixel at each end. call malloc (temp, npts+2, TY_REAL) call amovr (in, Memr[temp+1], npts) Memr[temp] = in[1] Memr[temp+npts+1] = in[npts] call asiinit (asi, clgwrd ("interp", interp, 10, II_FUNCTIONS)) call asifit (asi, Memr[temp], npts+2) call mfree (temp, TY_REAL) # Determine edges of output pixels in input spectrum and integrate # using ASIGRL. If not flux conserving take the average. xmin = 0.5 xmax = npts + 0.5 x = 0.5 if (IS_INDEFI(lineo)) w = smw_c1trand (cto, x) else { y1 = lineo call smw_c2trand (cto, x, y1, w, y2) } if (IS_INDEFI(linei)) x = smw_c1trand (cti, w) else { #y2 = linei call smw_c2trand (cti, w, y2, x, y1) } ofb_b = (x < xmin || x > xmax) b = max (xmin, min (xmax, x)) + 1 do i = 1, nw { ofb_a = ofb_b a = b x = i + 0.5 if (IS_INDEFI(lineo)) w = smw_c1trand (cto, x) else { y1 = lineo call smw_c2trand (cto, x, y1, w, y2) } if (IS_INDEFI(linei)) x = smw_c1trand (cti, w) else { #y2 = linei call smw_c2trand (cti, w, y2, x, y1) } ofb_b = (x < xmin || x > xmax) b = max (xmin, min (xmax, x)) + 1 if (ofb_a && ofb_b) out[i] = 0. else if (a <= b) { ia = nint (a + 0.5) ib = nint (b - 0.5) if (abs (a+0.5-ia) < 0.00001 && abs (b-0.5-ib) < 0.00001) { sum = 0. do j = ia, ib sum = sum + asieval (asi, real(j)) out[i] = sum } else out[i] = asigrl (asi, a, b) if (!flux) out[i] = out[i] / max (b - a, 1e-4) } else { ib = nint (b + 0.5) ia = nint (a - 0.5) if (abs (a-0.5-ia) < 0.00001 && abs (b+0.5-ib) < 0.00001) { sum = 0. do j = ib, ia sum = sum + asieval (asi, real(j)) out[i] = sum } else out[i] = asigrl (asi, b, a) if (!flux) out[i] = out[i] / max (a - b, 1e-4) } } call asifree (asi) end # DISPCORA -- Dispersion correct input spectrum to output spectrum. # This procedure uses the MWCS forward and inverse transformations # and interpolate the input data, conserving flux if desired. Image # interpolation uses the image interpolation package and flux conservation # integrates the interpolation function across the output pixel. This # procedure does some CLIO to get the interpolation function and to # query whether to conserve flux. # # This differs from DISPCOR by the "blank" argument. procedure dispcora (cti, linei, cto, lineo, in, npts, out, nw, flux, blank) pointer cti #I MWCS input inverse transformation int linei #I Spectrum line pointer cto #I MWCS output forward transformation int lineo #I Spectrum line real in[npts] #I Input spectrum int npts #I Number of input pixels real out[nw] #O Output spectrum int nw #I Number of output pixels bool flux #I Conserve flux real blank #I Out of bounds value (INDEF to leave unchanged char interp[10] bool ofb_a, ofb_b int i, j, ia, ib, clgwrd() real a, b, sum, asieval(), asigrl() double x, xmin, xmax, w, y1, y2, smw_c1trand() pointer asi, temp begin # Get the image buffers fit the interpolation function to the # input spectrum. Extend the interpolation by one pixel at each end. call malloc (temp, npts+2, TY_REAL) call amovr (in, Memr[temp+1], npts) Memr[temp] = in[1] Memr[temp+npts+1] = in[npts] call asiinit (asi, clgwrd ("interp", interp, 10, II_FUNCTIONS)) call asifit (asi, Memr[temp], npts+2) call mfree (temp, TY_REAL) # Determine edges of output pixels in input spectrum and integrate # using ASIGRL. If not flux conserving take the average. xmin = 0.5 xmax = npts + 0.5 x = 0.5 if (IS_INDEFI(lineo)) w = smw_c1trand (cto, x) else { y1 = lineo call smw_c2trand (cto, x, y1, w, y2) } if (IS_INDEFI(linei)) x = smw_c1trand (cti, w) else { #y2 = linei call smw_c2trand (cti, w, y2, x, y1) } ofb_b = (x < xmin || x > xmax) b = max (xmin, min (xmax, x)) + 1 do i = 1, nw { ofb_a = ofb_b a = b x = i + 0.5 if (IS_INDEFI(lineo)) w = smw_c1trand (cto, x) else { y1 = lineo call smw_c2trand (cto, x, y1, w, y2) } if (IS_INDEFI(linei)) x = smw_c1trand (cti, w) else { #y2 = linei call smw_c2trand (cti, w, y2, x, y1) } ofb_b = (x < xmin || x > xmax) b = max (xmin, min (xmax, x)) + 1 if (ofb_a && ofb_b) { if (!IS_INDEFR(blank)) out[i] = blank } else if (a == b) { if (!IS_INDEFR(blank)) out[i] = blank } else if (a < b) { ia = nint (a + 0.5) ib = nint (b - 0.5) if (abs (a+0.5-ia) < 0.00001 && abs (b-0.5-ib) < 0.00001) { sum = 0. do j = ia, ib sum = sum + asieval (asi, real(j)) out[i] = sum } else out[i] = asigrl (asi, a, b) if (!flux) out[i] = out[i] / max (b - a, 1e-4) } else { ib = nint (b + 0.5) ia = nint (a - 0.5) if (abs (a-0.5-ia) < 0.00001 && abs (b+0.5-ib) < 0.00001) { sum = 0. do j = ib, ia sum = sum + asieval (asi, real(j)) out[i] = sum } else out[i] = asigrl (asi, b, a) if (!flux) out[i] = out[i] / max (a - b, 1e-4) } } call asifree (asi) end �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������sptable-1.0.pre20180612/src/xonedspec/dispcor/mkpkg�������������������������������������������������0000664�0000000�0000000�00000001505�13310232156�0021670�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# DISPCOR Task $checkout libpkg.a .. $update libpkg.a $checkin libpkg.a .. $exit libpkg.a: dcio.x dispcor.h \ dctable.x dctable.h dispcor.x ranges.x refaverage.x refspectra.h reffollow.x refspectra.h refgspec.x refspectra.com refspectra.h refinterp.x refspectra.h refmatch.x refspectra.h refmsgs.x refspectra.com refspectra.h refnearest.x refspectra.h refnoextn.x refprecede.x refspectra.h refspectra.x refspectra.com refspectra.h reftable.x refspectra.h t_dispcor.x dctable.h dispcor.h \ t_disptrans.x ; �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������sptable-1.0.pre20180612/src/xonedspec/dispcor/ranges.x����������������������������������������������0000664�0000000�0000000�00000014627�13310232156�0022315�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������include include define FIRST 0 # Default starting range define LAST MAX_INT # Default ending range define STEP 1 # Default step define EOLIST -1 # End of list # DECODE_RANGES -- Parse a string containing a list of integer numbers or # ranges, delimited by either spaces or commas. Return as output a list # of ranges defining a list of numbers, and the count of list numbers. # Range limits must be positive nonnegative integers. ERR is returned as # the function value if a conversion error occurs. The list of ranges is # delimited by EOLIST. int procedure decode_ranges (range_string, ranges, max_ranges, nvalues) char range_string[ARB] # Range string to be decoded int ranges[3, max_ranges] # Range array int max_ranges # Maximum number of ranges int nvalues # The number of values in the ranges int ip, nrange, first, last, step, ctoi() begin ip = 1 nvalues = 0 do nrange = 1, max_ranges - 1 { # Defaults to all nonnegative integers first = FIRST last = LAST step = STEP # Skip delimiters while (IS_WHITE(range_string[ip]) || range_string[ip] == ',') ip = ip + 1 # Get first limit. # Must be a number, '-', 'x', or EOS. If not return ERR. if (range_string[ip] == EOS) { # end of list if (nrange == 1) { # Null string defaults ranges[1, 1] = first ranges[2, 1] = last ranges[3, 1] = step ranges[1, 2] = EOLIST nvalues = MAX_INT return (OK) } else { ranges[1, nrange] = EOLIST return (OK) } } else if (range_string[ip] == '-') ; else if (range_string[ip] == 'x') ; else if (IS_DIGIT(range_string[ip])) { # ,n.. if (ctoi (range_string, ip, first) == 0) return (ERR) } else return (ERR) # Skip delimiters while (IS_WHITE(range_string[ip]) || range_string[ip] == ',') ip = ip + 1 # Get last limit # Must be '-', or 'x' otherwise last = first. if (range_string[ip] == 'x') ; else if (range_string[ip] == '-') { ip = ip + 1 while (IS_WHITE(range_string[ip]) || range_string[ip] == ',') ip = ip + 1 if (range_string[ip] == EOS) ; else if (IS_DIGIT(range_string[ip])) { if (ctoi (range_string, ip, last) == 0) return (ERR) } else if (range_string[ip] == 'x') ; else return (ERR) } else last = first # Skip delimiters while (IS_WHITE(range_string[ip]) || range_string[ip] == ',') ip = ip + 1 # Get step. # Must be 'x' or assume default step. if (range_string[ip] == 'x') { ip = ip + 1 while (IS_WHITE(range_string[ip]) || range_string[ip] == ',') ip = ip + 1 if (range_string[ip] == EOS) ; else if (IS_DIGIT(range_string[ip])) { if (ctoi (range_string, ip, step) == 0) ; } else if (range_string[ip] == '-') ; else return (ERR) } # Output the range triple. ranges[1, nrange] = first ranges[2, nrange] = last ranges[3, nrange] = step nvalues = nvalues + abs (last-first) / step + 1 } return (ERR) # ran out of space end # GET_NEXT_NUMBER -- Given a list of ranges and the current file number, # find and return the next file number. Selection is done in such a way # that list numbers are always returned in monotonically increasing order, # regardless of the order in which the ranges are given. Duplicate entries # are ignored. EOF is returned at the end of the list. int procedure get_next_number (ranges, number) int ranges[ARB] # Range array int number # Both input and output parameter int ip, first, last, step, next_number, remainder begin # If number+1 is anywhere in the list, that is the next number, # otherwise the next number is the smallest number in the list which # is greater than number+1. number = number + 1 next_number = MAX_INT for (ip=1; ranges[ip] != EOLIST; ip=ip+3) { first = min (ranges[ip], ranges[ip+1]) last = max (ranges[ip], ranges[ip+1]) step = ranges[ip+2] if (number >= first && number <= last) { remainder = mod (number - first, step) if (remainder == 0) return (number) if (number - remainder + step <= last) next_number = number - remainder + step } else if (first > number) next_number = min (next_number, first) } if (next_number == MAX_INT) return (EOF) else { number = next_number return (number) } end # GET_PREVIOUS_NUMBER -- Given a list of ranges and the current file number, # find and return the previous file number. Selection is done in such a way # that list numbers are always returned in monotonically decreasing order, # regardless of the order in which the ranges are given. Duplicate entries # are ignored. EOF is returned at the end of the list. int procedure get_previous_number (ranges, number) int ranges[ARB] # Range array int number # Both input and output parameter int ip, first, last, step, next_number, remainder begin # If number-1 is anywhere in the list, that is the previous number, # otherwise the previous number is the largest number in the list which # is less than number-1. number = number - 1 next_number = 0 for (ip=1; ranges[ip] != EOLIST; ip=ip+3) { first = min (ranges[ip], ranges[ip+1]) last = max (ranges[ip], ranges[ip+1]) step = ranges[ip+2] if (number >= first && number <= last) { remainder = mod (number - first, step) if (remainder == 0) return (number) if (number - remainder >= first) next_number = number - remainder } else if (last < number) { remainder = mod (last - first, step) if (remainder == 0) next_number = max (next_number, last) else if (last - remainder >= first) next_number = max (next_number, last - remainder) } } if (next_number == 0) return (EOF) else { number = next_number return (number) } end # IS_IN_RANGE -- Test number to see if it is in range. # If the number is INDEFI then it is mapped to the maximum integer. bool procedure is_in_range (ranges, number) int ranges[ARB] # Range array int number # Number to be tested against ranges int ip, first, last, step, num begin if (IS_INDEFI (number)) num = MAX_INT else num = number for (ip=1; ranges[ip] != EOLIST; ip=ip+3) { first = min (ranges[ip], ranges[ip+1]) last = max (ranges[ip], ranges[ip+1]) step = ranges[ip+2] if (num >= first && num <= last) if (mod (num - first, step) == 0) return (true) } return (false) end ���������������������������������������������������������������������������������������������������������sptable-1.0.pre20180612/src/xonedspec/dispcor/refaverage.x������������������������������������������0000664�0000000�0000000�00000004122�13310232156�0023132�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������include "refspectra.h" # REFAVERAGE -- Assign reference spectrum by averageing reference list. # In earlier version the reference apertures were always set to all procedure refaverage (input, refs) pointer input # List of input spectra pointer refs # List of reference spectra int ap double sortval real wt1, wt2 pointer sp, image, ref1, ref2, gval bool refgref(), refginput() int imtgetim(), imtlen() begin call smark (sp) call salloc (image, SZ_FNAME, TY_CHAR) call salloc (ref1, SZ_FNAME, TY_CHAR) call salloc (ref2, SZ_FNAME, TY_CHAR) # Get reference spectra to average. switch (imtlen (refs)) { case 0: call error (0, "No reference spectra specified") case 1: ap = imtgetim (refs, Memc[ref1], SZ_FNAME) call refnoextn (Memc[ref1]) if (!refgref (Memc[ref1], ap, sortval, gval)) { call sfree (sp) return } wt1 = 1. wt2 = 0. case 2: ap = imtgetim (refs, Memc[ref1], SZ_FNAME) ap = imtgetim (refs, Memc[ref2], SZ_FNAME) call refnoextn (Memc[ref1]) call refnoextn (Memc[ref2]) if (!refgref (Memc[ref1], ap, sortval, gval)) { call sfree (sp) return } if (!refgref (Memc[ref2], ap, sortval, gval)) { call sfree (sp) return } wt1 = 0.5 wt2 = 0.5 default: ap = imtgetim (refs, Memc[ref1], SZ_FNAME) ap = imtgetim (refs, Memc[ref2], SZ_FNAME) call refnoextn (Memc[ref1]) call refnoextn (Memc[ref2]) if (!refgref (Memc[ref1], ap, sortval, gval)) { call sfree (sp) return } if (!refgref (Memc[ref2], ap, sortval, gval)) { call sfree (sp) return } wt1 = 0.5 wt2 = 0.5 call eprintf ("WARNING: Averaging only first two reference spectra") } # Assign reference spectra to each input spectrum. # Skip spectra which are not of the appropriate aperture # or have been assigned previously (unless overriding). while (imtgetim (input, Memc[image], SZ_FNAME) != EOF) { call refnoextn (Memc[image]) if (!refginput (Memc[image], ap, sortval, gval)) next call refspectra (Memc[image], Memc[ref1], wt1, Memc[ref2], wt2) } call sfree (sp) end ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������sptable-1.0.pre20180612/src/xonedspec/dispcor/reffollow.x�������������������������������������������0000664�0000000�0000000�00000006362�13310232156�0023032�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������include include "refspectra.h" # REFFOLLOW -- Assign following reference spectrum based on sort key. # If there is no following spectrum assign the nearest preceding spectrum. procedure reffollow (input, refs) pointer input # List of input spectra pointer refs # List of reference spectra bool ignoreaps # Ignore apertures? int i, i1, i2, nrefs, ap double sortval, d, d1, d2 pointer sp, image, gval, refimages, refaps, refvals, refgvals bool clgetb(), streq(), refginput(), refgref() int imtgetim(), imtlen() begin call smark (sp) call salloc (image, SZ_FNAME, TY_CHAR) # Task parameters ignoreaps = clgetb ("ignoreaps") # Tabulate reference spectra. This expands the reference list, # checks the spectrum is a reference spectrum of the appropriate # aperture. call salloc (refimages, imtlen (refs), TY_INT) call salloc (refaps, imtlen (refs), TY_INT) call salloc (refvals, imtlen (refs), TY_DOUBLE) call salloc (refgvals, imtlen (refs), TY_INT) nrefs = 0 while (imtgetim (refs, Memc[image], SZ_FNAME) != EOF) { call refnoextn (Memc[image]) if (!refgref (Memc[image], ap, sortval, gval)) next for (i=0; i 0.) && (d < d1)) { i1 = i d1 = d } if ((d <= 0.) && (d > d2)) { i2 = i d2 = d } } if (i2 > 0) # Nearest following spectrum call refspectra (Memc[image], Memc[Memi[refimages+i2-1]], 1., Memc[Memi[refimages+i2-1]], 0.) else if (i1 > 0) # Nearest preceding spectrum call refspectra (Memc[image], Memc[Memi[refimages+i1-1]], 1., Memc[Memi[refimages+i1-1]], 0.) else { # No reference spectrum found call refprint (STDERR, NO_REFSPEC, Memc[image], "", "", "", ap, 0, "") do i = 1, nrefs { if (!streq (Memc[gval], Memc[Memi[refgvals+i-1]])) { call refprint (STDERR, REF_GROUP, Memc[image], Memc[Memi[refimages+i-1]], Memc[gval], Memc[Memi[refgvals+i-1]], ap, Memi[refaps+i-1], "") next } if (!ignoreaps && ap != Memi[refaps+i-1]) call refprint (STDERR, REF_AP, Memc[image], Memc[Memi[refimages+i-1]], Memc[gval], Memc[Memi[refgvals+i-1]], ap, Memi[refaps+i-1], "") next } } } call sfree (sp) end ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������sptable-1.0.pre20180612/src/xonedspec/dispcor/refgspec.x��������������������������������������������0000664�0000000�0000000�00000016274�13310232156�0022634�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������include include include "refspectra.h" # REFOPEN -- Set verbose and log file descriptors and open symbol table. # REFCLOSE -- Close file descriptors and symbol table # REFGSPEC -- Get a spectrum from the symbol table. Map it only once. # REFGINPUT -- Get input spectrum. Apply various checks. # REFGREF -- Get reference spectrum. Apply various checks. define REF_LEN 6 # Length of reference structure define REF_SORTVAL Memd[P2D($1)] # Sort value define REF_AP Memi[$1+2] # Aperture number define REF_GVAL Memi[$1+3] # Sort value define REF_SPEC1 Memi[$1+4] # Offset for reference spectrum 1 define REF_SPEC2 Memi[$1+5] # Offset for reference spectrum 2 # REFOPEN -- Set verbose and log file descriptors and open symbol table. # The file descriptors and symbol table pointer are in common. A null # file descriptor indicates no output. procedure refopen () bool clgetb() real clgetr() pointer rng_open(), stopen() int fd, btoi(), clpopnu(), clgfil(), open(), nowhite() errchk open() include "refspectra.com" begin call malloc (sort, SZ_FNAME, TY_CHAR) call malloc (group, SZ_FNAME, TY_CHAR) # Check log files logfiles = clpopnu ("logfiles") while (clgfil (logfiles, Memc[sort], SZ_FNAME) != EOF) { fd = open (Memc[sort], APPEND, TEXT_FILE) call close (fd) } call clprew (logfiles) # Get other parameters call clgstr ("apertures", Memc[sort], SZ_FNAME) iferr (aps = rng_open (Memc[sort], INDEF, INDEF, INDEF)) call error (0, "Bad aperture list") call clgstr ("refaps", Memc[sort], SZ_FNAME) iferr (raps = rng_open (Memc[sort], INDEF, INDEF, INDEF)) call error (0, "Bad reference aperture list") call clgstr ("sort", Memc[sort], SZ_FNAME) call clgstr ("group", Memc[group], SZ_FNAME) time = btoi (clgetb ("time")) timewrap = clgetr ("timewrap") verbose = btoi (clgetb ("verbose")) fd = nowhite (Memc[sort], Memc[sort], SZ_FNAME) fd = nowhite (Memc[group], Memc[group], SZ_FNAME) # Open symbol table. stp = stopen ("refspectra", 10, 20, 10*SZ_FNAME) end # REFCLOSE -- Finish up procedure refclose () include "refspectra.com" begin call mfree (sort, TY_CHAR) call mfree (group, TY_CHAR) call clpcls (logfiles) call stclose (stp) call rng_close (raps) call rng_close (aps) end # REFGSPEC -- Get a spectrum from the symbol table. Map it only once. # All access to spectra is through this routine. It returns header parameters. # Because the spectra may be accessed in very random order and many times # the information is stored in a symbol table keyed on the spectrum name. # The spectrum need be mapped only once! Any error from IMMAP is returned. procedure refgspec (spec, ap, sortval, gval, ref1, ref2) char spec[ARB] # Spectrum image name int ap # Spectrum aperture number double sortval # Spectrum sort value pointer gval # Group string pointer ref1 # Reference spectrum 1 pointer ref2 # Reference spectrum 2 pointer sym, stfind(), stenter(), stpstr(), strefsbuf() pointer im, str, s_map() bool streq() int s_geti(), strlen() double s_getd() errchk s_map, s_getd, s_gstr include "refspectra.com" begin # Check if spectrum is in the symbol table from a previous call. # If not in the symbol table map the image, get the header parameters, # and store them in the symbol table. sym = stfind (stp, spec) if (sym == NULL) { im = s_map (spec, READ_ONLY, 0) iferr (ap = s_geti (im, "BEAM-NUM")) ap = 1 # Failure to find a specified keyword is a fatal error. iferr { if (Memc[sort] == EOS || streq (Memc[sort], "none")) sortval = INDEFD else { sortval = s_getd (im, Memc[sort]) if (time == YES) sortval = mod (sortval + 24. - timewrap, 24.0D0) } call malloc (str, SZ_FNAME, TY_CHAR) if (Memc[group] == EOS || streq (Memc[group], "none")) Memc[str] = EOS else call s_gstr (im, Memc[group], Memc[str], SZ_FNAME) gval = stpstr (stp, Memc[str], strlen (Memc[str])+1) } then call erract (EA_FATAL) iferr (call s_gstr (im, "refspec1", Memc[str], SZ_FNAME)) Memc[str] = EOS ref1 = stpstr (stp, Memc[str], strlen (Memc[str])+1) iferr (call s_gstr (im, "refspec2", Memc[str], SZ_FNAME)) Memc[str] = EOS ref2 = stpstr (stp, Memc[str], strlen (Memc[str])+1) call mfree (str, TY_CHAR) call s_unmap (im) sym = stenter (stp, spec, REF_LEN) REF_AP(sym) = ap REF_SORTVAL(sym) = sortval REF_GVAL(sym) = gval REF_SPEC1(sym) = ref1 REF_SPEC2(sym) = ref2 } ap = REF_AP(sym) sortval = REF_SORTVAL(sym) gval = strefsbuf (stp, REF_GVAL(sym)) ref1 = strefsbuf (stp, REF_SPEC1(sym)) ref2 = strefsbuf (stp, REF_SPEC2(sym)) end # REFGINPUT -- Get input spectrum. Apply various checks. # This calls REFGSPEC and then checks: # 1. The spectrum is found. # 2. The spectrum has not been assigned reference spectra previously. # If it has then determine whether to override the assignment. # 3. Check if the aperture is correct. # Return true if the spectrum is acceptable and false if not. bool procedure refginput (spec, ap, val, gval) char spec[ARB] # Spectrum image name int ap # Spectrum aperture number (returned) double val # Spectrum sort value (returned) pointer gval # Spectrum group value (returned) bool clgetb(), rng_elementi() pointer ref1, ref2 errchk refgspec include "refspectra.com" define err_ 99 begin # Get the spectrum from the symbol table. iferr (call refgspec (spec, ap, val, gval, ref1, ref2)) { call refmsgs (NO_SPEC, spec, "", "", "", ap, 0, "") goto err_ } # Check if it has a previous reference spectrum. Override if desired. if (Memc[ref1] != EOS) { if (!clgetb ("override")) { call refmsgs (DEF_REFSPEC, spec, Memc[ref1], "", "", ap, 0, Memc[ref2]) goto err_ } else { call refmsgs (OVR_REFSPEC, spec, Memc[ref1], "", "", ap, 0, Memc[ref2]) } } # Check aperture numbers. if (aps != NULL) { if (!rng_elementi (aps, ap)) { call refmsgs (BAD_AP, spec, "", "", "", ap, 0, "") goto err_ } } return (true) err_ return (false) end # REFGREF -- Get reference spectrum. Apply various checks. # This calls REFGSPEC and then checks: # 1. The spectrum is found. # 2. The spectrum is a reference spectrum, i.e. has an IDENTIFY # record. This is signaled by having a reference equivalent to # itself. # 3. Check if the aperture is correct. # Return true if the spectrum is acceptable and false if not. bool procedure refgref (spec, ap, val, gval) char spec[ARB] # Spectrum image name int ap # Spectrum aperture number (returned) double val # Spectrum sort value (returned) pointer gval # Spectrum group value (returned) bool strne(), rng_elementi() pointer ref1, ref2 errchk refgspec include "refspectra.com" define err_ 99 begin # Get spectrum from symbol table. iferr (call refgspec (spec, ap, val, gval, ref1, ref2)) { call refmsgs (NO_REF, spec, "", "", "", ap, 0, "") goto err_ } # Check if spectrum is a reference spectrum. if (strne (spec, Memc[ref1])) { call refmsgs (NOT_REFSPEC, spec, "", "", "", ap, 0, "") goto err_ } # Check aperture numbers. if (raps != NULL) { if (!rng_elementi (raps, ap)) { call refmsgs (BAD_REFAP, spec, "", "", "", ap, 0, "") goto err_ } } return (true) err_ return (false) end ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������sptable-1.0.pre20180612/src/xonedspec/dispcor/refinterp.x�������������������������������������������0000664�0000000�0000000�00000007222�13310232156�0023025�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������include include "refspectra.h" # REFINTERP -- Assign reference spectra to interpolate between based on sort # key. The nearest preceding and following spectra are assigned weights based # on their distance. If there is no preceding and following spectrum then # the nearest spectrum is assigned. procedure refinterp (input, refs) pointer input # List of input spectra pointer refs # List of reference spectra bool ignoreaps # Ignore apertures? int i, i1, i2, nrefs, ap double sortval, d, d1, d2 real wt1, wt2 pointer sp, image, gval, refimages, refaps, refvals, refgvals bool clgetb(), streq(), refginput(), refgref() int imtgetim(), imtlen() begin call smark (sp) call salloc (image, SZ_FNAME, TY_CHAR) # Task parameters ignoreaps = clgetb ("ignoreaps") # Tabulate reference spectra. This expands the reference list, # checks the spectrum is a reference spectrum of the appropriate # aperture. call salloc (refimages, imtlen (refs), TY_INT) call salloc (refaps, imtlen (refs), TY_INT) call salloc (refvals, imtlen (refs), TY_DOUBLE) call salloc (refgvals, imtlen (refs), TY_INT) nrefs = 0 while (imtgetim (refs, Memc[image], SZ_FNAME) != EOF) { call refnoextn (Memc[image]) if (!refgref (Memc[image], ap, sortval, gval)) next for (i=0; i= 0.) && (d < d1)) { i1 = i d1 = d } else if ((d <= 0.) && (d > d2)) { i2 = i d2 = d } } if (i1 > 0 && i2 > 0) { # Weight spectra if (d1 - d2 == 0.) { wt1 = 0.5 wt2 = 0.5 } else { wt1 = -d2 / (d1 - d2) wt2 = d1 / (d1 - d2) } call refspectra (Memc[image], Memc[Memi[refimages+i1-1]], wt1, Memc[Memi[refimages+i2-1]], wt2) } else if (i1 > 0) # Nearest preceding spectrum call refspectra (Memc[image], Memc[Memi[refimages+i1-1]], 1., Memc[Memi[refimages+i1-1]], 0.) else if (i2 > 0) # Nearest following spectrum call refspectra (Memc[image], Memc[Memi[refimages+i2-1]], 1., Memc[Memi[refimages+i2-1]], 0.) else { # No reference spectrum found call refprint (STDERR, NO_REFSPEC, Memc[image], "", "", "", ap, 0, "") do i = 1, nrefs { if (!streq (Memc[gval], Memc[Memi[refgvals+i-1]])) { call refprint (STDERR, REF_GROUP, Memc[image], Memc[Memi[refimages+i-1]], Memc[gval], Memc[Memi[refgvals+i-1]], ap, Memi[refaps+i-1], "") next } if (!ignoreaps && ap != Memi[refaps+i-1]) call refprint (STDERR, REF_AP, Memc[image], Memc[Memi[refimages+i-1]], Memc[gval], Memc[Memi[refgvals+i-1]], ap, Memi[refaps+i-1], "") next } } } call sfree (sp) end ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������sptable-1.0.pre20180612/src/xonedspec/dispcor/refmatch.x��������������������������������������������0000664�0000000�0000000�00000002157�13310232156�0022622�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������include "refspectra.h" # REFMATCH -- Assign reference spectrum by match against reference list. procedure refmatch (input, refs) pointer input # List of input spectra pointer refs # List of reference spectra int ap double sortval pointer sp, image, refimage, gval bool refgref(), refginput() int imtgetim(), imtlen() begin if (imtlen (input) != imtlen (refs)) call error (0, "Input and reference list have different lengths") call smark (sp) call salloc (image, SZ_FNAME, TY_CHAR) call salloc (refimage, SZ_FNAME, TY_CHAR) # Assign reference spectra to each input spectrum. # Skip spectra which are not of the appropriate aperture # or have been assigned previously (unless overriding). while ((imtgetim (input, Memc[image], SZ_FNAME) != EOF) && (imtgetim (refs, Memc[refimage], SZ_FNAME) != EOF)) { call refnoextn (Memc[image]) call refnoextn (Memc[refimage]) if (!refginput (Memc[image], ap, sortval, gval)) next if (!refgref (Memc[refimage], ap, sortval, gval)) next call refspectra (Memc[image], Memc[refimage], 1., Memc[refimage], 0.) } call sfree (sp) end �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������sptable-1.0.pre20180612/src/xonedspec/dispcor/refmsgs.x���������������������������������������������0000664�0000000�0000000�00000005362�13310232156�0022500�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������include "refspectra.h" # REFMSGS -- Print any verbose messages to log files. All messages # except the assignments go through this procedure. It calls REFPRINT with # each output stream. procedure refmsgs (msg, spec, ref, gval, gvalref, ap, apref, ref2) int msg # Message code char spec[ARB] # Spectrum char ref[ARB] # Reference spectrum char gval[ARB] # Group value char gvalref[ARB] # Group value in reference int ap # Aperture int apref # Aperture in reference char ref2[ARB] # Reference spectrum 2 int fd, clgfil(), open() pointer sp, logfile include "refspectra.com" begin if (verbose == NO) return call smark (sp) call salloc (logfile, SZ_FNAME, TY_CHAR) while (clgfil (logfiles, Memc[logfile], SZ_FNAME) != EOF) { fd = open (Memc[logfile], APPEND, TEXT_FILE) call refprint (fd, msg, spec, ref, gval, gvalref, ap, apref, ref2) call close (fd) } call clprew (logfiles) call sfree (sp) end # REFPRINT -- Print requested message with appropriate parameters if non-null # stream is specified. procedure refprint (fd, msg, spec, ref, gval, gvalref, ap, apref, ref2) int fd # File descriptor int msg # Message code char spec[ARB] # Spectrum char ref[ARB] # Reference spectrum char gval[ARB] # Group value char gvalref[ARB] # Group value in reference int ap # Aperture int apref # Aperture in reference char ref2[ARB] # Reference spectrum 2 include "refspectra.com" begin if (fd == NULL) return switch (msg) { case NO_SPEC: call fprintf (fd, "[%s] Spectrum not found\n") call pargstr (spec) case NO_REF: call fprintf (fd, "[%s] Reference spectrum not found\n") call pargstr (spec) case NOT_REFSPEC: call fprintf (fd, "[%s] Not a reference spectrum\n") call pargstr (spec) case NO_REFSPEC: call fprintf (fd, "[%s] No reference spectrum found\n") call pargstr (spec) case DEF_REFSPEC: call fprintf (fd, "[%s] Reference spectra already defined: %s %s\n") call pargstr (spec) call pargstr (ref) call pargstr (ref2) case OVR_REFSPEC: call fprintf (fd, "[%s] Overriding previous reference spectra: %s %s\n") call pargstr (spec) call pargstr (ref) call pargstr (ref2) case BAD_AP: call fprintf (fd, "[%s] Wrong aperture: %d\n") call pargstr (spec) call pargi (ap) case BAD_REFAP: call fprintf (fd, "[%s] Wrong reference aperture: %d\n") call pargstr (spec) call pargi (ap) case REF_GROUP: call fprintf (fd, "Input [%s] %s = %s : Ref [%s] %s = %s\n") call pargstr (spec) call pargstr (Memc[group]) call pargstr (gval) call pargstr (ref) call pargstr (Memc[group]) call pargstr (gvalref) case REF_AP: call fprintf (fd, "Input [%s] ap = %d : Ref [%s] ap = %d\n") call pargstr (spec) call pargi (ap) call pargstr (ref) call pargi (apref) } end ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������sptable-1.0.pre20180612/src/xonedspec/dispcor/refnearest.x������������������������������������������0000664�0000000�0000000�00000005547�13310232156�0023175�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������include include "refspectra.h" # REFNEAREST -- Assign nearest reference spectrum based on sort key. procedure refnearest (input, refs) pointer input # List of input spectra pointer refs # List of reference spectra bool ignoreaps # Ignore apertures? int i, i1, nrefs, ap double sortval, d, d1 pointer sp, image, gval, refimages, refaps, refvals, refgvals bool clgetb(), streq(), refginput(), refgref() int imtgetim(), imtlen() begin call smark (sp) call salloc (image, SZ_FNAME, TY_CHAR) # Task parameters ignoreaps = clgetb ("ignoreaps") # Tabulate reference spectra. This expands the reference list, # checks the spectrum is a reference spectrum of the appropriate # aperture. call salloc (refimages, imtlen (refs), TY_POINTER) call salloc (refaps, imtlen (refs), TY_INT) call salloc (refvals, imtlen (refs), TY_DOUBLE) call salloc (refgvals, imtlen (refs), TY_POINTER) nrefs = 0 while (imtgetim (refs, Memc[image], SZ_FNAME) != EOF) { call refnoextn (Memc[image]) if (!refgref (Memc[image], ap, sortval, gval)) next for (i=0; i 0) # Assign nearest reference spectrum call refspectra (Memc[image], Memc[Memi[refimages+i1-1]], 1., Memc[Memi[refimages+i1-1]], 0.) else { # No reference spectrum found call refprint (STDERR, NO_REFSPEC, Memc[image], "", "", "", ap, 0, "") do i = 1, nrefs { if (!streq (Memc[gval], Memc[Memi[refgvals+i-1]])) { call refprint (STDERR, REF_GROUP, Memc[image], Memc[Memi[refimages+i-1]], Memc[gval], Memc[Memi[refgvals+i-1]], ap, Memi[refaps+i-1], "") next } if (!ignoreaps && ap != Memi[refaps+i-1]) call refprint (STDERR, REF_AP, Memc[image], Memc[Memi[refimages+i-1]], Memc[gval], Memc[Memi[refgvals+i-1]], ap, Memi[refaps+i-1], "") next } } } call sfree (sp) end ���������������������������������������������������������������������������������������������������������������������������������������������������������sptable-1.0.pre20180612/src/xonedspec/dispcor/refnoextn.x�������������������������������������������0000664�0000000�0000000�00000001011�13310232156�0023025�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# REFNOEXTN -- Strip any image extensions procedure refnoextn (spec) char spec[ARB] # Image name int i, strlen() bool streq() begin i = strlen (spec) call imgimage (spec, spec, i) i = strlen (spec) switch (spec[i]) { case 'h': if (i > 3 && spec[i-3] == '.') spec[i-3] = EOS case 'l': if (i > 2 && streq (spec[i-2], ".pl")) spec[i-2] = EOS case 's': if (i > 4 && streq (spec[i-4], ".fits")) spec[i-4] = EOS case 't': if (i > 3 && streq (spec[i-3], ".fit")) spec[i-3] = EOS } end �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������sptable-1.0.pre20180612/src/xonedspec/dispcor/refprecede.x������������������������������������������0000664�0000000�0000000�00000006372�13310232156�0023140�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������include include "refspectra.h" # REFPRECEDE -- Assign preceding reference spectrum based on sort key. # If there is no preceding spectrum assign the nearest following spectrum. procedure refprecede (input, refs) pointer input # List of input spectra pointer refs # List of reference spectra bool ignoreaps # Ignore aperture numbers? int i, i1, i2, nrefs, ap double sortval, d, d1, d2 pointer sp, image, gval, refimages, refaps, refvals, refgvals bool clgetb(), streq(), refginput(), refgref() int imtgetim(), imtlen() begin call smark (sp) call salloc (image, SZ_FNAME, TY_CHAR) # Task parameters ignoreaps = clgetb ("ignoreaps") # Tabulate reference spectra. This expands the reference list, # checks the spectrum is a reference spectrum of the appropriate # aperture. call salloc (refimages, imtlen (refs), TY_INT) call salloc (refaps, imtlen (refs), TY_INT) call salloc (refvals, imtlen (refs), TY_DOUBLE) call salloc (refgvals, imtlen (refs), TY_INT) nrefs = 0 while (imtgetim (refs, Memc[image], SZ_FNAME) != EOF) { call refnoextn (Memc[image]) if (!refgref (Memc[image], ap, sortval, gval)) next for (i=0; i= 0.) && (d < d1)) { i1 = i d1 = d } if ((d < 0.) && (d < d2)) { i2 = i d2 = d } } if (i1 > 0) # Nearest preceding spectrum call refspectra (Memc[image], Memc[Memi[refimages+i1-1]], 1., Memc[Memi[refimages+i1-1]], 0.) else if (i2 > 0) # Nearest following spectrum call refspectra (Memc[image], Memc[Memi[refimages+i2-1]], 1., Memc[Memi[refimages+i2-1]], 0.) else { # No reference spectrum found call refprint (STDERR, NO_REFSPEC, Memc[image], "", "", "", ap, 0, "") do i = 1, nrefs { if (!streq (Memc[gval], Memc[Memi[refgvals+i-1]])) { call refprint (STDERR, REF_GROUP, Memc[image], Memc[Memi[refimages+i-1]], Memc[gval], Memc[Memi[refgvals+i-1]], ap, Memi[refaps+i-1], "") next } if (!ignoreaps && ap != Memi[refaps+i-1]) call refprint (STDERR, REF_AP, Memc[image], Memc[Memi[refimages+i-1]], Memc[gval], Memc[Memi[refgvals+i-1]], ap, Memi[refaps+i-1], "") next } } } call sfree (sp) end ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������sptable-1.0.pre20180612/src/xonedspec/dispcor/refspectra.com����������������������������������������0000664�0000000�0000000�00000001045�13310232156�0023471�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Common parameters for logging and the spectrum symbol table. pointer aps # Pointer to aperture list pointer raps # Pointer to reference aperture list pointer sort # Pointer to sort keyword pointer group # Pointer to group keyword int select # Selection type int time # Is sort keyword a time? real timewrap # Timewrap parameter int verbose # Verbose output? int logfiles # List of log files pointer stp # Symbol table for previously mapped spectra common /refcom/ aps, raps, sort, group, select, time, timewrap, verbose, logfiles, stp �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������sptable-1.0.pre20180612/src/xonedspec/dispcor/refspectra.h������������������������������������������0000664�0000000�0000000�00000002043�13310232156�0023141�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Selection method keywords and codes. define SELECT "|match|nearest|preceding|following|interp|average|" define MATCH 1 # Match input and reference lists define NEAREST 2 # Nearest reference define PRECEDING 3 # Preceding reference define FOLLOWING 4 # Following reference define INTERP 5 # Interpolate between nearest references define AVERAGE 6 # Average first two reference spectra # Reference list types. define LIST 1 # References are an image list define TABLE 2 # Referenece are a table # Maximum number of aperture ranges. define NRANGES 100 # Message codes (see procedure refprint) define NO_SPEC 1 # Spectrum not found (immap failed) define NO_REF 2 # Reference spectrum not found (immap failed) define NOT_REFSPEC 3 # Not a reference spectrum define NO_REFSPEC 4 # No reference spectrum found define DEF_REFSPEC 5 # Reference spectra already defined define OVR_REFSPEC 6 # Override reference spectra define BAD_AP 7 # Bad aperture define BAD_REFAP 8 # Bad reference aperture define REF_GROUP 9 # Group define REF_AP 10 # Aperture ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������sptable-1.0.pre20180612/src/xonedspec/dispcor/refspectra.x������������������������������������������0000664�0000000�0000000�00000011757�13310232156�0023175�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������include include "refspectra.h" # T_REFSPECTRA -- Assign reference spectra. # Reference spectra are assigned to input spectra from a specified list of # reference spectra with various criteria. This procedure only gets some # of the task parameters and switches to separate procedures for each # implemented assignment method. The reference spectra may be specified by # and image list or a lookup table. The difference is determined by attempting # to map the first reference element in the list as an image. procedure t_refspectra () pointer input # List of input images pointer refs # List of reference images #int select # Selection method for reference spectra int type # Type of reference specification int clgwrd(), imtgetim() pointer sp, ref, im, imtopenp(), s_map() errchk s_map include "refspectra.com" begin call smark (sp) call salloc (ref, SZ_LINE, TY_CHAR) # Get input and reference spectra lists. Determine selection method. input = imtopenp ("input") call clgstr ("records", Memc[ref], SZ_LINE) call odr_openp (input, Memc[ref]) refs = imtopenp ("references") select = clgwrd ("select", Memc[ref], SZ_FNAME, SELECT) # Determine if reference list is a table. if (imtgetim (refs, Memc[ref], SZ_FNAME) != EOF) { call refnoextn (Memc[ref]) iferr { im = s_map (Memc[ref], READ_ONLY, 0) call s_unmap (im) type = LIST } then type = TABLE } else call error (0, "No reference spectra specified") call imtrew (refs) # Initialize confirm flag, symbol table and logging streams. call refconfirm1 () call refopen () # Switch of reference list type and selection method. if (type == LIST) { switch (select) { case MATCH: call refmatch(input, refs) case NEAREST: call refnearest (input, refs) case PRECEDING: call refprecede (input, refs) case FOLLOWING: call reffollow (input, refs) case INTERP: call refinterp (input, refs) case AVERAGE: call refaverage (input, refs) } } else call reftable (input, Memc[ref], select) call refclose () call imtclose (input) call imtclose (refs) call sfree (sp) end # REFSPECTRA -- Confirm and set reference spectra in header. # 1. Confirm assignments if desired. # 2. Log output to logfiles if desired. # 3. Update assignment if desired. # Note that if wt1 > 0.995 then only the first reference spectrum is # set with no weight specified. No weight implies no interpolation. procedure refspectra (image, ref1, wt1, ref2, wt2) char image[ARB] # Spectrum image name char ref1[ARB] # Reference spectrum image name real wt1 # Weight char ref2[ARB] # Reference spectrum image name real wt2 # Weight bool confirm # Confirm assignments? int fd, clgfil(), open(), clgwrd() bool clgetb(), streq() pointer im, sp, str, s_map() errchk s_map include "refspectra.com" begin call smark (sp) call salloc (str, SZ_LINE, TY_CHAR) # Confirm assignments. if (confirm) { if (wt1 < 0.995) { call printf ("[%s] refspec1='%s %.8g'\n") call pargstr (image) call pargstr (ref1) call pargr (wt1) call printf ("[%s] refspec2='%s %.8g' ") call pargstr (image) call pargstr (ref2) call pargr (wt2) } else { call printf ("[%s] refspec1='%s' ") call pargstr (image) call pargstr (ref1) } call flush (STDOUT) fd = clgwrd ("answer", Memc[str], SZ_LINE, "|no|yes|YES|") switch (fd) { case 1: call sfree (sp) return case 3: confirm = false } } # Log output. while (clgfil (logfiles, Memc[str], SZ_LINE) != EOF) { if (streq (Memc[str], "STDOUT") && confirm) next fd = open (Memc[str], APPEND, TEXT_FILE) if (wt1 < 0.995) { call fprintf (fd, "[%s] refspec1='%s %.8g'\n") call pargstr (image) call pargstr (ref1) call pargr (wt1) call fprintf (fd, "[%s] refspec2='%s %.8g'\n") call pargstr (image) call pargstr (ref2) call pargr (wt2) } else { call fprintf (fd, "[%s] refspec1='%s'\n") call pargstr (image) call pargstr (ref1) } call close (fd) } call clprew (logfiles) # If updating the assigments map the spectrum READ_WRITE and set # the keywords REFSPEC1 and REFSPEC2. REFSPEC2 is not set if not # interpolating. if (clgetb ("assign")) { im = s_map (image, READ_WRITE, 0) if (wt1 < 0.9999995D0) { call sprintf (Memc[str], SZ_LINE, "%s %.8g") call pargstr (ref1) call pargr (wt1) call s_astr (im, "refspec1", Memc[str]) call sprintf (Memc[str], SZ_LINE, "%s %.8g") call pargstr (ref2) call pargr (wt2) call s_astr (im, "refspec2", Memc[str]) } else { call s_astr (im, "refspec1", ref1) iferr (call s_delf (im, "refspec2")) ; } call s_unmap (im) } call sfree (sp) return entry refconfirm1 () confirm = clgetb ("confirm") end �����������������sptable-1.0.pre20180612/src/xonedspec/dispcor/reftable.x��������������������������������������������0000664�0000000�0000000�00000006010�13310232156�0022605�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������include include "refspectra.h" # REFTABLE -- For each input image select reference spectrum list from a table. # The table is read from the file and stored in a simple symbol table. # # The table consists of pairs of words. The first word is a list of spectra # and the second word is the reference spectrum list to be used for each # spectrum in the first list. Note that the first list is not an input # list. As a convenience if a reference list is missing the preceding list # is implied. Some examples follow. # # spec1 spec2,spec3,spec4 # spec5 # spec6,spec7 spect8,spec9 # spec10 spec11 # spec12 spec13 # spec14 spec15 procedure reftable (list, table, select) pointer list # List of input spectra char table[ARB] # Reference table int select # Selection method int i, fd, input, refs pointer stp, sym pointer sp, image, ref1, ref2 pointer stopen(), strefsbuf(), stenter(), stpstr(), stfind(), imtopen() int imtgetim(), open(), fscan(), nscan() errchk open begin # Read the table. Return an error if the file can't be opened. # Read each table entry of spectrum list and reference list. # Expand the input list to make a symbol table keyed on the # spectrum with the reference list string as it's value. # As a convenience if a reference list is missing the preceding # list is implied. fd = open (table, READ_ONLY, TEXT_FILE) call smark (sp) call salloc (image, SZ_FNAME, TY_CHAR) call salloc (ref1, SZ_FNAME, TY_CHAR) call salloc (ref2, SZ_FNAME, TY_CHAR) stp = stopen ("table", 10, 10, 20*SZ_FNAME) while (fscan (fd) != EOF) { call gargwrd (Memc[image], SZ_FNAME) call gargwrd (Memc[ref1], SZ_FNAME) if (nscan() < 1) next if (nscan() < 2) call strcpy (Memc[ref2], Memc[ref1], SZ_FNAME) else call strcpy (Memc[ref1], Memc[ref2], SZ_FNAME) i = stpstr (stp, Memc[ref1], SZ_FNAME) input = imtopen (Memc[image]) while (imtgetim (input, Memc[image], SZ_FNAME) != EOF) { call refnoextn (Memc[image]) sym = stenter (stp, Memc[image], 1) Memi[sym] = i } call imtclose (input) } call close (fd) # For each input spectrum find the appropriate reference spectrum list. # If no list is found print a message and continue. Switch on the # selection method. while (imtgetim (list, Memc[image], SZ_FNAME) != EOF) { call refnoextn (Memc[image]) sym = stfind (stp, Memc[image]) if (sym == NULL) { call refmsgs (NO_REFSPEC, Memc[image], "", "", "", 0, 0, "") next } input = imtopen (Memc[image]) refs = imtopen (Memc[strefsbuf (stp, Memi[sym])]) switch (select) { case MATCH: call refmatch(input, refs) case NEAREST: call refnearest (input, refs) case PRECEDING: call refprecede (input, refs) case FOLLOWING: call reffollow (input, refs) case INTERP: call refinterp (input, refs) case AVERAGE: call refaverage (input, refs) } call imtclose (input) call imtclose (refs) } call stclose (stp) call sfree (sp) end ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������sptable-1.0.pre20180612/src/xonedspec/dispcor/t_dispcor.x�������������������������������������������0000664�0000000�0000000�00000103700�13310232156�0023013�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������include include include include include include "dispcor.h" include "dctable.h" include include # Dispersion types. define MULTISPEC 1 define ECHELLE 2 # T_DISPCOR -- Dispersion correct spectra. procedure t_dispcor () int in # List of input spectra int out # List of output spectra bool linearize # Linearize spectra? bool log # Log scale? bool flux # Conserve flux? real blank # Blank value int ignoreaps # Ignore aperture numbers? int fd1 # Log file descriptor int fd2 # Log file descriptor int i, format, naps int open(), nowhite(), imtopenp(), imtgetim(), errcode(), btoi() pointer sp, input, output, str, err, stp, table pointer im, im1, smw, smw1, ap, s_map(), smw_openim() bool clgetb() real clgetr() errchk open, s_map, smw_openim, dc_gms, dc_gec, dc_multispec, dc_echelle begin call smark (sp) call salloc (input, SZ_FNAME, TY_CHAR) call salloc (output, SZ_FNAME, TY_CHAR) call salloc (str, SZ_LINE, TY_CHAR) call salloc (err, SZ_LINE, TY_CHAR) # Task parameters in = imtopenp ("input") out = imtopenp ("output") call clgstr ("records", Memc[str], SZ_LINE) call odr_openp (in, Memc[str]) call odr_openp (out, Memc[str]) call clgstr ("database", Memc[str], SZ_FNAME) call clgstr ("logfile", Memc[err], SZ_LINE) linearize = clgetb ("linearize") ignoreaps = btoi (clgetb ("ignoreaps")) # Initialize the database cacheing and wavelength table. call dc_open (stp, Memc[str]) if (linearize) { log = clgetb ("log") flux = clgetb ("flux") blank = clgetr ("blank") call dc_table (table, naps) if (clgetb ("global")) { if (clgetb ("samedisp")) call dc_global1 (in, stp, log, table, naps) else call dc_global (in, stp, log, table, naps) } } # Open logfile if specified. if (clgetb ("verbose")) fd1 = STDOUT if (nowhite (Memc[err], Memc[err], SZ_LINE) != 0) fd2 = open (Memc[err], APPEND, TEXT_FILE) else fd2 = NULL # Loop through each input image. Do the dispersion correction # in place if no output spectrum list is given or if the input # and output spectra names are the same. while (imtgetim (in, Memc[input], SZ_FNAME) != EOF) { if (imtgetim (out, Memc[output], SZ_FNAME) == EOF) call strcpy (Memc[input], Memc[output], SZ_FNAME) iferr { im = NULL; im1 = NULL smw = NULL; smw1 = NULL ap = NULL i = s_map (Memc[input], READ_ONLY, 0); im = i i = smw_openim (im); smw = i switch (SMW_FORMAT(smw)) { case SMW_ND: # Use first line for reference. switch (SMW_LDIM(smw)) { case 1: call strcpy (Memc[input], Memc[str], SZ_LINE) case 2: switch (SMW_LAXIS(smw,1)) { case 1: call sprintf (Memc[str], SZ_LINE, "%s[*,1]") call pargstr (Memc[input]) case 2: call sprintf (Memc[str], SZ_LINE, "%s[1,*]") call pargstr (Memc[input]) } case 3: switch (SMW_LAXIS(smw,1)) { case 1: call sprintf (Memc[str], SZ_LINE, "%s[*,1,1]") call pargstr (Memc[input]) case 2: call sprintf (Memc[str], SZ_LINE, "%s[1,*,1]") call pargstr (Memc[input]) case 3: call sprintf (Memc[str], SZ_LINE, "%s[*,1,1]") call pargstr (Memc[input]) } } im1 = s_map (Memc[str], READ_ONLY, 0) smw1 = smw_openim (im1) call smw_ndes (im1, smw1) if (SMW_PDIM(smw1) == 1) call smw_esms (smw1) call dc_gms (Memc[input], im1, smw1, stp, YES, ap, fd1, fd2) call dc_ndspec (im, smw, smw1, ap, Memc[input], Memc[output], linearize, log, flux, blank, table, naps, fd1, fd2) default: # Get dispersion functions. Determine type of dispersion # by the error return. format = MULTISPEC iferr (call dc_gms (Memc[input], im, smw, stp, ignoreaps, ap, fd1, fd2)) { if (errcode() > 1 && errcode() < 100) call erract (EA_ERROR) format = ECHELLE iferr (call dc_gec (Memc[input], im, smw, stp, ap, fd1, fd2)) { if (errcode() > 1 && errcode() < 100) call erract (EA_ERROR) call erract (EA_WARN) iferr (call dc_gms (Memc[input], im, smw, stp, ignoreaps, ap, fd1, fd2)) call erract (EA_WARN) call sprintf (Memc[err], SZ_LINE, "%s: Dispersion data not found") call pargstr (Memc[input]) call error (1, Memc[err]) } } switch (format) { case MULTISPEC: call dc_multispec (im, smw, ap, Memc[input], Memc[output], linearize, log, flux, blank, table, naps, fd1, fd2) case ECHELLE: call dc_echelle (im, smw, ap, Memc[input], Memc[output], linearize, log, flux, blank, table, naps, fd1, fd2) } } } then call erract (EA_WARN) if (ap != NULL) call mfree (ap, TY_STRUCT) if (smw1 != NULL) call smw_close (smw1) if (im1 != NULL) call s_unmap (im1) if (smw != NULL) call smw_close (smw) if (im != NULL) call s_unmap (im) } # Finish up. if (linearize) do i = 0, naps call mfree (Memi[table+i], TY_STRUCT) call mfree (table, TY_INT) call dc_close (stp) call imtclose (in) call imtclose (out) if (fd1 != NULL) call close (fd1) if (fd2 != NULL) call close (fd2) call sfree (sp) end # DC_NDSPEC -- Dispersion correct N-dimensional spectrum. procedure dc_ndspec (in, smw, smw1, ap, input, output, linearize, log, flux, blank, table, naps, fd1, fd2) pointer in # Input IMIO pointer pointer smw # SMW pointer pointer smw1 # SMW pointer pointer ap # Aperture pointer char input[ARB] # Input multispec spectrum char output[ARB] # Output root name bool linearize # Linearize? bool log # Log wavelength parameters? bool flux # Conserve flux? real blank # Blank value pointer table # Wavelength table int naps # Number of apertures int fd1 # Log file descriptor int fd2 # Log file descriptor int i, j, nin, ndim, dispaxis, n1, n2, n3 pointer sp, temp, str, out, mwout, cti, cto, indata, outdata pointer s_map(), s_gs3r(), s_ps3r(), mw_open(), smw_sctran() bool clgetb(), streq() errchk s_map, mw_open, smw_open, dispcora, s_gs3r, s_ps3r begin # Determine the wavelength parameters. call dc_wavelengths (in, ap, output, log, table, naps, 1, DC_AP(ap,1), DC_W1(ap,1), DC_W2(ap,1), DC_DW(ap,1), DC_NW(ap,1)) DC_Z(ap,1) = 0. if (log) DC_DT(ap,1) = 1 else DC_DT(ap,1) = 0 call dc_log (fd1, output, ap, 1, log) call dc_log (fd2, output, ap, 1, log) if (clgetb ("listonly")) return call smark (sp) call salloc (temp, SZ_FNAME, TY_CHAR) call salloc (str, SZ_LINE, TY_CHAR) # Open output image. Use temp. image if output is the same as input. if (streq (input, output)) { call mktemp ("temp", Memc[temp], SZ_LINE) out = s_map (Memc[temp], NEW_COPY, in) if (S_PIXTYPE(out) != TY_DOUBLE) S_PIXTYPE(out) = TY_REAL } else { out = s_map (output, NEW_COPY, in) if (S_PIXTYPE(out) != TY_DOUBLE) S_PIXTYPE(out) = TY_REAL } # Set dimensions. ndim = SMW_LDIM(smw) dispaxis = SMW_LAXIS(smw,1) n1 = DC_NW(ap,1) n2 = SMW_LLEN(smw,2) n3 = SMW_LLEN(smw,3) switch (dispaxis) { case 1: nin = S_NDISP(in) S_NDISP(out) = n1 case 2: nin = S_NSPEC(in) S_NSPEC(out) = n1 case 3: nin = S_NAUX(in) S_NAUX(out) = n1 } # Set WCS header. mwout = mw_open (NULL, ndim) call mw_newsystem (mwout, "world", ndim) do i = 1, ndim call mw_swtype (mwout, i, 1, "linear", "") if (UN_LABEL(DC_UN(ap,1)) != EOS) call mw_swattrs (mwout, dispaxis, "label", UN_LABEL(DC_UN(ap,1))) if (UN_UNITS(DC_UN(ap,1)) != EOS) call mw_swattrs (mwout, dispaxis, "units", UN_UNITS(DC_UN(ap,1))) call smw_open (mwout, NULL, out) call smw_swattrs (mwout, INDEFI, INDEFI, INDEFI, INDEFI, DC_DT(ap,1), DC_W1(ap,1), DC_DW(ap,1), DC_NW(ap,1), DC_Z(ap,1), INDEFR, INDEFR, "") # Set WCS transformations. cti = smw_sctran (smw1, "world", "logical", 3) switch (dispaxis) { case 1: cto = smw_sctran (mwout, "logical", "world", 1) case 2: cto = smw_sctran (mwout, "logical", "world", 2) case 3: cto = smw_sctran (mwout, "logical", "world", 4) } call eprintf ("40\n") # Dispersion correct. do j = 1, n3 { do i = 1, n2 { switch (dispaxis) { case 1: indata = s_gs3r (in, 1, nin, i, i, j, j) outdata = s_ps3r (out, 1, n1, i, i, j, j) case 2: indata = s_gs3r (in, i, i, 1, nin, j, j) outdata = s_ps3r (out, i, i, 1, n1, j, j) case 3: indata = s_gs3r (in, i, i, j, j, 1, nin) outdata = s_ps3r (out, i, i, j, j, 1, n1) } call aclrr (Memr[outdata], n1) call dispcora (cti, 1, cto, INDEFI, Memr[indata], nin, Memr[outdata], n1, flux, blank) } } # Save REFSPEC keywords if present. call dc_refspec (out) call eprintf ("50\n") # Finish up. Replace input by output if needed. call smw_ctfree (cti) call smw_ctfree (cto) call smw_saveim (mwout, out) call smw_close (mwout) call s_setnew (out) call s_unmap (out) call s_unmap (in) if (streq (input, output)) { call imdelete (input) call imrename (Memc[temp], output) } call sfree (sp) end # DC_MULTISPEC -- Linearize multispec apertures into an MULTISPEC format # spectrum. The number of pixels in each image line is the maximum # required to contain the longest spectrum. procedure dc_multispec (in, smw, ap, input, output, linearize, log, flux, blank, table, naps, fd1, fd2) pointer in # Input IMIO pointer pointer smw # SMW pointer pointer ap # Aperture pointer char input[ARB] # Input multispec spectrum char output[ARB] # Output root name bool linearize # Linearize? bool log # Log wavelength parameters? bool flux # Conserve flux? real blank # Blank value pointer table # Wavelength table int naps # Number of apertures int fd1 # Log file descriptor int fd2 # Log file descriptor int i, j, nc, nl, nb, axis[2] pointer sp, temp, str, out, mwout, cti, cto, indata, outdata pointer s_map(), s_gsr(), s_psr() pointer mw_open(), smw_sctran() bool clgetb(), streq() errchk s_map, mw_open, smw_open, dispcora, s_gsr, s_psr data axis/1,2/ begin # Determine the wavelength parameters for each aperture. # The options are to have all apertures have the same dispersion # or have each aperture have independent dispersion. The global # parameters have already been calculated if needed. nc = S_NDISP(in) nl = S_NSPEC(in) nb = S_NAUX(in) if (linearize) { if (log) DC_DT(ap,1) = 1 else DC_DT(ap,1) = 0 if (clgetb ("samedisp")) { call dc_wavelengths1 (in, smw, ap, output, log, table, naps, DC_W1(ap,1), DC_W2(ap,1), DC_DW(ap,1), DC_NW(ap,1)) if ((DC_DW(ap,1)*(DC_W2(ap,1)-DC_W1(ap,1)) <= 0.) || (DC_NW(ap,1) < 1)) call error (1, "Error in wavelength scale") do i = 2, nl { DC_W1(ap,i) = DC_W1(ap,1) DC_W2(ap,i) = DC_W2(ap,1) DC_DW(ap,i) = DC_DW(ap,1) DC_NW(ap,i) = DC_NW(ap,1) DC_Z(ap,i) = 0. DC_DT(ap,i) = DC_DT(ap,1) } } else { do i = 1, nl { call dc_wavelengths (in, ap, output, log, table, naps, i, DC_AP(ap,i), DC_W1(ap,i), DC_W2(ap,i), DC_DW(ap,i), DC_NW(ap,i)) DC_Z(ap,i) = 0. DC_DT(ap,i) = DC_DT(ap,1) } } } call dc_log (fd1, output, ap, nl, log) call dc_log (fd2, output, ap, nl, log) if (clgetb ("listonly")) return call smark (sp) call salloc (temp, SZ_FNAME, TY_CHAR) call salloc (str, SZ_LINE, TY_CHAR) # Use a temporary image if the output has the same name as the input. if (streq (input, output)) { if (linearize) { call mktemp ("temp", Memc[temp], SZ_LINE) out = s_map (Memc[temp], NEW_COPY, in) if (S_PIXTYPE(out) != TY_DOUBLE) S_PIXTYPE(out) = TY_REAL } else { call s_unmap (in) i = s_map (input, READ_WRITE, 0) in = i out = i } } else { out = s_map (output, NEW_COPY, in) if (S_PIXTYPE(out) != TY_DOUBLE) S_PIXTYPE(out) = TY_REAL } # Set MWCS or linearize if (!linearize) { if (out != in) do j = 1, nb do i = 1, nl call amovr (Memr[s_gsr(in,i,j)], Memr[s_psr(out,i,j)], S_NDISP(in)) call smw_saveim (smw, out) } else { if (nb > 1) i = 3 else i = 2 mwout = mw_open (NULL, i) call mw_newsystem (mwout, "multispec", i) call mw_swtype (mwout, axis, 2, "multispec", "") if (UN_LABEL(DC_UN(ap,1)) != EOS) call mw_swattrs (mwout, 1, "label", UN_LABEL(DC_UN(ap,1))) if (UN_UNITS(DC_UN(ap,1)) != EOS) call mw_swattrs (mwout, 1, "units", UN_UNITS(DC_UN(ap,1))) if (i == 3) call mw_swtype (mwout, 3, 1, "linear", "") call smw_open (mwout, NULL, out) do i = 1, nl { call smw_swattrs (mwout, i, 1, DC_AP(ap,i), DC_BM(ap,i), DC_DT(ap,i), DC_W1(ap,i), DC_DW(ap,i), DC_NW(ap,i), DC_Z(ap,i), DC_LW(ap,i), DC_UP(ap,i), "") call smw_gapid (smw, i, 1, Memc[str], SZ_LINE) call smw_sapid (mwout, i, 1, Memc[str]) } S_NDISP(out) = DC_NW(ap,1) do i = 2, nl S_NDISP(out) = max (DC_NW(ap,i), S_NDISP(out)) cti = smw_sctran (smw, "world", "logical", 3) cto = smw_sctran (mwout, "logical", "world", 3) do j = 1, nb { do i = 1, nl { indata = s_gsr (in, i, j) outdata = s_psr (out, i, j) call aclrr (Memr[outdata], S_NDISP(out)) call dispcora (cti, i, cto, i, Memr[indata], nc, Memr[outdata], DC_NW(ap,i), flux, blank) if (DC_NW(ap,i) < S_NDISP(out)) call amovkr (Memr[outdata+DC_NW(ap,i)-1], Memr[outdata+DC_NW(ap,i)],S_NDISP(out)-DC_NW(ap,i)) } } call smw_ctfree (cti) call smw_ctfree (cto) call smw_saveim (mwout, out) call smw_close (mwout) } # Save REFSPEC keywords if present. call dc_refspec (out) # Finish up. Replace input by output if needed. if (out == in) { call s_unmap (in) } else { call s_unmap (in) call s_setnew (out) call s_unmap (out) if (streq (input, output)) { call imdelete (input) call imrename (Memc[temp], output) } } call sfree (sp) end # DC_ECHELLE -- Linearize echelle orders into an ECHELLE format # spectrum. The number of pixels in each image line is the maximum # required to contain the longest spectrum. procedure dc_echelle (in, smw, ap, input, output, linearize, log, flux, blank, table, naps, fd1, fd2) pointer in # IMIO pointer pointer smw # SMW pointers pointer ap # Aperture pointer char input[ARB] # Input multispec spectrum char output[ARB] # Output root name bool linearize # Linearize? bool log # Log wavelength parameters? bool flux # Conserve flux? real blank # Blank value pointer table # Wavelength table int naps # Number of apertures int fd1 # Log file descriptor int fd2 # Log file descriptor int i, j, nc, nl, nb, axis[2] pointer sp, temp, str, out, mwout, cti, cto, indata, outdata pointer s_map(), s_gsr(), s_psr() pointer mw_open(), smw_sctran() bool clgetb(), streq() errchk s_map, mw_open, smw_open, dispcora, s_gsr, s_psr data axis/1,2/ begin # Determine the wavelength parameters for each aperture. nc = S_NDISP(in) nl = S_NSPEC(in) nb = S_NAUX(in) if (linearize) { if (log) DC_DT(ap,1) = 1 else DC_DT(ap,1) = 0 do i = 1, nl { call dc_wavelengths (in, ap, output, log, table, naps, i, DC_AP(ap,i), DC_W1(ap,i), DC_W2(ap,i), DC_DW(ap,i), DC_NW(ap,i)) DC_Z(ap,i) = 0. DC_DT(ap,i) = DC_DT(ap,1) } } call dc_log (fd1, output, ap, nl, log) call dc_log (fd2, output, ap, nl, log) if (clgetb ("listonly")) return call smark (sp) call salloc (temp, SZ_FNAME, TY_CHAR) call salloc (str, SZ_LINE, TY_CHAR) # Use a temporary image if the output has the same name as the input. if (streq (input, output)) { if (linearize) { call mktemp ("temp", Memc[temp], SZ_LINE) out = s_map (Memc[temp], NEW_COPY, in) if (S_PIXTYPE(out) != TY_DOUBLE) S_PIXTYPE(out) = TY_REAL } else { call s_unmap (in) i = s_map (input, READ_WRITE, 0) in = i out = i } } else { out = s_map (output, NEW_COPY, in) if (S_PIXTYPE(out) != TY_DOUBLE) S_PIXTYPE(out) = TY_REAL } # Set MWCS or linearize if (!linearize) { if (out != in) do j = 1, nb do i = 1, nl call amovr (Memr[s_gsr(in,i,j)], Memr[s_psr(out,i,j)], S_NDISP(in)) call smw_saveim (smw, out) } else { if (nb > 1) i = 3 else i = 2 mwout = mw_open (NULL, i) call mw_newsystem (mwout, "multispec", i) call mw_swtype (mwout, axis, 2, "multispec", "") if (UN_LABEL(DC_UN(ap,1)) != EOS) call mw_swattrs (mwout, 1, "label", UN_LABEL(DC_UN(ap,1))) if (UN_UNITS(DC_UN(ap,1)) != EOS) call mw_swattrs (mwout, 1, "units", UN_UNITS(DC_UN(ap,1))) if (i == 3) call mw_swtype (mwout, 3, 1, "linear", "") call smw_open (mwout, NULL, out) do i = 1, nl { call smw_swattrs (mwout, i, 1, DC_AP(ap,i), DC_BM(ap,i), DC_DT(ap,i), DC_W1(ap,i), DC_DW(ap,i), DC_NW(ap,i), DC_Z(ap,i), DC_LW(ap,i), DC_UP(ap,i), "") call smw_gapid (smw, i, 1, Memc[str], SZ_LINE) call smw_sapid (mwout, i, 1, Memc[str]) } S_NDISP(out) = DC_NW(ap,1) do i = 2, nl S_NDISP(out) = max (DC_NW(ap,i), S_NDISP(out)) cti = smw_sctran (smw, "world", "logical", 3) cto = smw_sctran (mwout, "logical", "world", 3) do j = 1, nb { do i = 1, nl { indata = s_gsr (in, i, j) outdata = s_psr (out, i, j) call aclrr (Memr[outdata], S_NDISP(out)) call dispcora (cti, i, cto, i, Memr[indata], nc, Memr[outdata], DC_NW(ap,i), flux, blank) if (DC_NW(ap,i) < S_NDISP(out)) call amovkr (Memr[outdata+DC_NW(ap,i)-1], Memr[outdata+DC_NW(ap,i)],S_NDISP(out)-DC_NW(ap,i)) } } call smw_ctfree (cti) call smw_ctfree (cto) call smw_saveim (mwout, out) call smw_close (mwout) } # Save REFSPEC keywords if present. call dc_refspec (out) # Finish up. Replace input by output if needed. if (out == in) { call s_unmap (in) } else { call s_unmap (in) call s_setnew (out) call s_unmap (out) if (streq (input, output)) { call imdelete (input) call imrename (Memc[temp], output) } } call sfree (sp) end # DC_GLOBAL1 -- Set global wavelength parameters using the minimum and # maximum wavelengths and and the minimum dispersion over all apertures. procedure dc_global1 (in, stp, log, table, naps) pointer in # Input list pointer stp # Symbol table bool log # Logarithmic scale? pointer table # Wavelength table int naps # Number of apertures int i, nwmax, imtgetim() double w1, w2, dw, wmin, wmax, dwmin pointer sp, input, str, im, mw, ap, tbl, s_map(), smw_openim() errchk dc_gms, dc_gec, smw_openim begin call smark (sp) call salloc (input, SZ_FNAME, TY_CHAR) call salloc (str, SZ_LINE, TY_CHAR) # Go through all the reference spectra and determine the # minimum and maximum wavelengths and maximum number of pixels. # If there is no entry in the wavelength table add it. wmin = MAX_REAL wmax = -MAX_REAL dwmin = MAX_REAL while (imtgetim (in, Memc[input], SZ_FNAME) != EOF) { iferr (im = s_map (Memc[input], READ_ONLY, 0)) next mw = smw_openim (im) switch (SMW_FORMAT(mw)) { case SMW_ND: nwmax = SMW_NW(mw) dw = SMW_DW(mw) w1 = SMW_W1(mw) w2 = w1 + dw * (nwmax - 1) wmin = min (wmin, w1, w2) wmax = max (wmax, w1, w2) dwmin = min (dwmin, abs (dw)) default: iferr { iferr (call dc_gms (Memc[input], im, mw, stp, NO, ap, NULL, NULL)) { iferr (call dc_gec (Memc[input], im, mw, stp, ap, NULL, NULL)) { call sprintf (Memc[str], SZ_LINE, "%s: Dispersion data not found") call pargstr (Memc[input]) call error (1, Memc[str]) } } do i = 1, S_NSPEC(im) { w1 = DC_W1(ap,i) w2 = DC_W2(ap,i) dw = DC_DW(ap,i) wmin = min (wmin, w1, w2) wmax = max (wmax, w1, w2) dwmin = min (dwmin, abs (dw)) } } then ; } call mfree (ap, TY_STRUCT) call smw_close (mw) call s_unmap (im) } call imtrew (in) nwmax = (wmax - wmin) / dwmin + 1.5 # Enter the global entry in the first table entry. tbl = Memi[table] call dc_defaults (wmin, wmax, nwmax, TBL_W1(tbl), TBL_W2(tbl), TBL_DW(tbl), TBL_NW(tbl)) call sfree (sp) end # DC_GLOBAL -- Set global wavelength parameters. This is done for each # aperture separately. The wavelength table may be used to specify separate # fixed parameters for each aperture. procedure dc_global (in, stp, log, table, naps) pointer in # Input list pointer stp # Symbol table bool log # Logarithmic scale? pointer table # Wavelength table int naps # Number of apertures int i, j, nw, imtgetim() double w1, w2, dw pointer sp, input, str, im, mw, ap, tbl, s_map(), smw_openim() errchk dc_gms, dc_gec, smw_openim begin call smark (sp) call salloc (input, SZ_FNAME, TY_CHAR) call salloc (str, SZ_LINE, TY_CHAR) # Go through all the reference spectra and determine the # minimum and maximum wavelengths and maximum number of pixels. # Do this by aperture. If there is no entry in the wavelength # table add it. while (imtgetim (in, Memc[input], SZ_FNAME) != EOF) { iferr (im = s_map (Memc[input], READ_ONLY, 0)) next mw = smw_openim (im) switch (SMW_FORMAT(mw)) { case SMW_ND: tbl = Memi[table] nw = SMW_NW(mw) dw = SMW_DW(mw) w1 = SMW_W1(mw) w2 = w1 + dw * (nw - 1) TBL_WMIN(tbl) = min (TBL_WMIN(tbl), w1, w2) TBL_WMAX(tbl) = max (TBL_WMAX(tbl), w1, w2) TBL_NWMAX(tbl) = max (TBL_NWMAX(tbl), nw) default: iferr { iferr (call dc_gms (Memc[input], im, mw, stp, NO, ap, NULL, NULL)) { iferr (call dc_gec (Memc[input], im, mw, stp, ap, NULL, NULL)) { call sprintf (Memc[str], SZ_LINE, "%s: Dispersion data not found") call pargstr (Memc[input]) call error (1, Memc[str]) } } do i = 1, S_NSPEC(im) { call dc_getentry (false, DC_AP(ap,i), table, naps, j) tbl = Memi[table+j] nw = DC_NW(ap,i) w1 = DC_W1(ap,i) w2 = DC_W2(ap,i) TBL_WMIN(tbl) = min (TBL_WMIN(tbl), w1, w2) TBL_WMAX(tbl) = max (TBL_WMAX(tbl), w1, w2) TBL_NWMAX(tbl) = max (TBL_NWMAX(tbl), nw) } } then ; } call mfree (ap, TY_STRUCT) call smw_close (mw) call s_unmap (im) } call imtrew (in) do i = 0, naps { tbl = Memi[table+i] call dc_defaults (TBL_WMIN(tbl), TBL_WMAX(tbl), TBL_NWMAX(tbl), TBL_W1(tbl), TBL_W2(tbl), TBL_DW(tbl), TBL_NW(tbl)) } call sfree (sp) end # DC_WAVELENGTHS1 -- Set output wavelength parameters for a spectrum. # Fill in any INDEF values using the limits of the dispersion function # over all apertures and the minimum dispersion over all apertures. The # user may then confirm and change the wavelength parameters if desired. procedure dc_wavelengths1 (im, smw, ap, output, log, table, naps, w1, w2, dw,nw) pointer im # IMIO pointer pointer smw # SMW pointer pointer ap # Aperture structure char output[ARB] # Output image name bool log # Logarithm wavelength parameters? pointer table # Wavelength table int naps # Number of apertures double w1, w2, dw # Image wavelength parameters int nw # Image wavelength parameter int i, n, nwt, clgeti(), clgwrd() double a, b, c, w1t, w2t, dwt, y1, y2, dy, clgetd() pointer sp, key, str, tbl bool clgetb() begin call smark (sp) call salloc (key, SZ_FNAME, TY_CHAR) call salloc (str, SZ_LINE, TY_CHAR) # Get aperture parameters. tbl = Memi[table] w1t = TBL_W1(tbl) w2t = TBL_W2(tbl) dwt = TBL_DW(tbl) nwt = TBL_NW(tbl) # If there are undefined wavelength scale parameters get # defaults based on the reference spectrum. if (IS_INDEFD(w1t)||IS_INDEFD(w2t)||IS_INDEFD(dwt)||IS_INDEFD(nwt)) { a = MAX_REAL b = -MAX_REAL c = MAX_REAL do i = 1, S_NSPEC(im) { n = DC_NW(ap,i) y1 = DC_W1(ap,i) y2 = DC_W2(ap,i) dy = DC_DW(ap,i) a = min (a, y1, y2) b = max (b, y1, y2) c = min (c, dy) } n = (b - a) / c + 1.5 } call dc_defaults (a, b, n, w1t, w2t, dwt, nwt) w1 = w1t w2 = w2t dw = dwt nw = nwt # Print the wavelength scale and allow the user to confirm and # change the wavelength scale. A test is done to check which # parameters the user changes and give them priority in filling # in the remaining parameters. if (TBL_CONFIRM(tbl) == YES) { repeat { call printf ("%s: w1 = %g, w2 = %g, dw = %g, nw = %d\n") call pargstr (output) call pargd (w1) call pargd (w2) call pargd (dw) call pargi (nw) i = clgwrd ("dispcor1.change", Memc[str],SZ_LINE, "|yes|no|NO|") switch (i) { case 2: break case 3: TBL_CONFIRM(tbl) = NO break } call clputd ("dispcor1.w1", w1) call clputd ("dispcor1.w2", w2) call clputd ("dispcor1.dw", dw) call clputi ("dispcor1.nw", nw) a = w1 b = w2 c = dw n = nw w1 = clgetd ("dispcor1.w1") w2 = clgetd ("dispcor1.w2") dw = clgetd ("dispcor1.dw") nw = clgeti ("dispcor1.nw") # If no INDEF's set unchanged parameters to INDEF. i = 0 if (IS_INDEFD(w1)) i = i + 1 if (IS_INDEFD(w2)) i = i + 1 if (IS_INDEFD(dw)) i = i + 1 if (IS_INDEFI(nw)) i = i + 1 if (i == 0) { if (w1 == a) w1 = INDEFD if (w2 == b) w2 = INDEFD if (dw == c) dw = INDEFD if (nw == n) nw = INDEFI } call dc_defaults (a, b, n, w1, w2, dw, nw) if (clgetb ("global")) { TBL_W1(tbl) = w1 TBL_W2(tbl) = w2 TBL_DW(tbl) = dw TBL_NW(tbl) = nw } } } call sfree (sp) end # DC_WAVELENGTHS -- Set output wavelength parameters for a spectrum for # each aperture. The fixed parameters are given in the wavelength table. # If there is no entry in the table for an aperture use the global # default (entry 0). Fill in INDEF values using the limits and number # of pixels for the aperture. The user may then confirm and change the # wavelength parameters if desired. procedure dc_wavelengths (im, ap, output, log, table, naps, line, apnum, w1, w2, dw, nw) pointer im # IMIO pointer pointer ap # Aperture structure char output[ARB] # Output image name bool log # Logarithm wavelength parameters? pointer table # Wavelength table int naps # Number of apertures int line # Line int apnum # Aperture number double w1, w2, dw # Image wavelength parameters int nw # Image wavelength parameter int i, n, nwt, clgeti(), clgwrd() double a, b, c, w1t, w2t, dwt, clgetd() pointer sp, str, tbl bool clgetb() begin call smark (sp) call salloc (str, SZ_LINE, TY_CHAR) # Get aperture parameters. call dc_getentry (false, apnum, table, naps, i) tbl = Memi[table+i] w1t = TBL_W1(tbl) w2t = TBL_W2(tbl) dwt = TBL_DW(tbl) nwt = TBL_NW(tbl) # If there are undefined wavelength scale parameters get # defaults based on the reference spectrum. if (IS_INDEFD(w1t)||IS_INDEFD(w2t)||IS_INDEFD(dwt)||IS_INDEFI(nwt)) { a = DC_W1(ap,line) b = DC_W2(ap,line) n = DC_NW(ap,line) } call dc_defaults (a, b, n, w1t, w2t, dwt, nwt) w1 = w1t w2 = w2t dw = dwt nw = nwt # Print the wavelength scale and allow the user to confirm and # change the wavelength scale. A test is done to check which # parameters the user changes and give them priority in filling # in the remaining parameters. if (TBL_CONFIRM(tbl) == YES) { repeat { call printf ( "%s: ap = %d, w1 = %g, w2 = %g, dw = %g, nw = %d\n") call pargstr (output) call pargi (apnum) call pargd (w1) call pargd (w2) call pargd (dw) call pargi (nw) i = clgwrd ("dispcor1.change", Memc[str],SZ_LINE, "|yes|no|NO|") switch (i) { case 2: break case 3: TBL_CONFIRM(tbl) = NO break } call clputd ("dispcor1.w1", w1) call clputd ("dispcor1.w2", w2) call clputd ("dispcor1.dw", dw) call clputi ("dispcor1.nw", nw) a = w1 b = w2 c = dw n = nw w1 = clgetd ("dispcor1.w1") w2 = clgetd ("dispcor1.w2") dw = clgetd ("dispcor1.dw") nw = clgeti ("dispcor1.nw") # If no INDEF's set unchanged parameters to INDEF. i = 0 if (IS_INDEFD(w1)) i = i + 1 if (IS_INDEFD(w2)) i = i + 1 if (IS_INDEFD(dw)) i = i + 1 if (IS_INDEFI(nw)) i = i + 1 if (i == 0) { if (w1 == a) w1 = INDEFD if (w2 == b) w2 = INDEFD if (dw == c) dw = INDEFD if (nw == n) nw = INDEFI } call dc_defaults (a, b, n, w1, w2, dw, nw) if (clgetb ("global")) { TBL_W1(tbl) = w1 TBL_W2(tbl) = w2 TBL_DW(tbl) = dw TBL_NW(tbl) = nw } } } call sfree (sp) end # DC_DEFAULTS -- Given some set of wavelength scale with others undefined # (INDEF) plus some defaults fill in the undefined parameters and make # the wavelength scale consistent. The logic of this task is complex # and is meant to provide an "intelligent" result based on what users # want. procedure dc_defaults (a, b, n, w1, w2, dw, nw) double a # Default wavelength endpoint double b # Default wavelength endpoint int n # Default number of pixels double w1 # Starting wavelength double w2 # Ending wavelength double dw # Wavelength interval int nw # Number of pixels int nindef begin # Determine how many input parameters are specfied. nindef = 0 if (IS_INDEFD(w1)) nindef = nindef + 1 if (IS_INDEFD(w2)) nindef = nindef + 1 if (IS_INDEFD(dw)) nindef = nindef + 1 if (IS_INDEFI(nw)) nindef = nindef + 1 # Depending on how many parameters are specified fill in the # INDEF parameters. switch (nindef) { case 0: # All parameters specified. First round NW to be consistent with # w1, w2, and dw. Then adjust w2 to nearest pixel. It is possible # that nw will be negative. Checks for this should be made by the # call in program. nw = (w2 - w1) / dw + 1.5 w2 = w1 + dw * (nw - 1) case 1: # Find the unspecified parameter and compute it from the other # three specified parameters. For nw need to adjust w2 to # agree with a pixel. if (IS_INDEFD(w1)) w1 = w2 - dw * (nw - 1) if (IS_INDEFD(w2)) w2 = w1 + dw * (nw - 1) if (IS_INDEFD(dw)) dw = (w2 - w1) / (nw - 1) if (IS_INDEFI(nw)) { nw = (w2 - w1) / dw + 1.5 w2 = w1 + dw * (nw - 1) } case 2: # Fill in two unspecified parameters using the defaults. # This is tricky. if (IS_INDEFD(dw)) { if (IS_INDEFD(w1)) { if (abs (w2 - a) > abs (w2 - b)) w1 = a else w1 = b dw = (w2 - w1) / (nw - 1) } else if (IS_INDEFD(w2)) { if (abs (w1 - a) > abs (w1 - b)) w2 = a else w2 = b dw = (w2 - w1) / (nw - 1) } else { dw = (b - a) / n nw = abs ((w2 - w1) / dw) + 1.5 dw = (w2 - w1) / (nw - 1) } } else if (IS_INDEFI(nw)) { if (IS_INDEFD(w1)) { if (dw > 0.) w1 = min (a, b) else w1 = max (a, b) nw = (w2 - w1) / dw + 1.5 w1 = w2 - dw * (nw - 1) } else { if (dw > 0.) w2 = max (a, b) else w2 = min (a, b) nw = (w2 - w1) / dw + 1.5 w2 = w1 + dw * (nw - 1) } } else { if (dw > 0.) w1 = min (a, b) else w1 = max (a, b) w2 = w1 + dw * (nw - 1) } case 3: # Find the one specfied parameter and compute the others using # the supplied defaults. if (!IS_INDEFD(w1)) { if (abs (w1 - a) > abs (w1 - b)) w2 = a else w2 = b dw = (b - a) / n nw = abs ((w2 - w1) / dw) + 1.5 dw = (w2 - w1) / (nw - 1) } else if (!IS_INDEFD(w2)) { if (abs (w2 - a) > abs (w2 - b)) w1 = a else w1 = b dw = (b - a) / n nw = abs ((w2 - w1) / dw) + 1.5 dw = (w2 - w1) / (nw - 1) } else if (!IS_INDEFI(nw)) { w1 = min (a, b) w2 = max (a, b) dw = (w2 - w1) / (nw - 1) } else if (dw < 0.) { w1 = max (a, b) w2 = min (a, b) nw = (w2 - w1) / dw + 1.5 w2 = w1 + dw * (nw - 1) } else { w1 = min (a, b) w2 = max (a, b) nw = (w2 - w1) / dw + 1.5 w2 = w1 + dw * (nw - 1) } case 4: # Given only defaults compute a wavelength scale. The dispersion # is kept close to the default. w1 = min (a, b) w2 = max (a, b) dw = (b - a) / (n - 1) nw = abs ((w2 - w1) / dw) + 1.5 dw = (w2 - w1) / (nw - 1) } end # DC_LOG -- Print log of wavlength paramters procedure dc_log (fd, output, ap, naps, log) int fd # Output file descriptor char output[ARB] # Output image name pointer ap # Aperture structure int naps # Number of apertures bool log # Log dispersion? int i begin if (fd == NULL) return for (i=2; i<=naps; i=i+1) { if (DC_W1(ap,i) != DC_W1(ap,1)) break if (DC_W2(ap,i) != DC_W2(ap,1)) break if (DC_DW(ap,i) != DC_DW(ap,1)) break if (DC_NW(ap,i) != DC_NW(ap,1)) break } if (naps == 1 || i <= naps) { do i = 1, naps { call fprintf (fd, "%s: ap = %d, w1 = %8g, w2 = %8g, dw = %8g, nw = %d") call pargstr (output) call pargi (DC_AP(ap,i)) call pargd (DC_W1(ap,i)) call pargd (DC_W2(ap,i)) call pargd (DC_DW(ap,i)) call pargi (DC_NW(ap,i)) if (log) { call fprintf (fd, ", log = %b") call pargb (log) } call fprintf (fd, "\n") } } else { call fprintf (fd, "%s: w1 = %8g, w2 = %8g, dw = %8g, nw = %d") call pargstr (output) call pargd (DC_W1(ap,1)) call pargd (DC_W2(ap,1)) call pargd (DC_DW(ap,1)) call pargi (DC_NW(ap,1)) if (log) { call fprintf (fd, ", log = %b") call pargb (log) } call fprintf (fd, "\n") } call flush (fd) end # DC_REFSPEC -- Save REFSPEC keywords in DCLOG keywords. procedure dc_refspec (im) pointer im #U IMIO pointer int i, j, s_accf() pointer sp, dckey, dcstr, refkey, refstr begin call smark (sp) call salloc (dckey, SZ_FNAME, TY_CHAR) call salloc (dcstr, SZ_LINE, TY_CHAR) call salloc (refkey, SZ_FNAME, TY_CHAR) call salloc (refstr, SZ_LINE, TY_CHAR) for (i=1;; i=i+1) { call sprintf (Memc[dckey], SZ_FNAME, "DCLOG%d") call pargi (i) if (s_accf (im, Memc[dckey]) == NO) break } do j = 1, 4 { if (j == 1) call strcpy ("REFSPEC1", Memc[refkey], SZ_FNAME) else if (j == 2) call strcpy ("REFSPEC2", Memc[refkey], SZ_FNAME) else if (j == 3) call strcpy ("REFSHFT1", Memc[refkey], SZ_FNAME) else if (j == 4) call strcpy ("REFSHFT2", Memc[refkey], SZ_FNAME) ifnoerr (call s_gstr (im, Memc[refkey], Memc[refstr], SZ_LINE)) { call sprintf (Memc[dckey], SZ_FNAME, "DCLOG%d") call pargi (i) call sprintf (Memc[dcstr], SZ_LINE, "%s = %s") call pargstr (Memc[refkey]) call pargstr (Memc[refstr]) call s_astr (im, Memc[dckey], Memc[dcstr]) call s_delf (im, Memc[refkey]) i = i + 1 } } call sfree (sp) end ����������������������������������������������������������������sptable-1.0.pre20180612/src/xonedspec/dispcor/t_disptrans.x�����������������������������������������0000664�0000000�0000000�00000026760�13310232156�0023371�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������include include include include include define AIRVAC "|none|air2vac|vac2air|" define NONE 1 # No correction define AIR2VAC 2 # Correct air to vacuum define VAC2AIR 3 # Correct vacuum to air # T_DISPTRANS -- Tranform dispersion systems and apply air-vac conversion. # This task uses the UNITS package to convert the input dispersion # coordinates to the desired output coordinates. An air to vacuum or # vacuum to air correction is made. Since the input and output units # may not be linearly related and the MWCS supports only polynomial # representations a cubic splines are fit to the desired output coordinates # until an error tolerance is reached. The user may then select to # store the new WCS as either the spline approximation or to linearize # the coordinates by resampling the data. Note that if the input and # output units ARE linearly related and there is no air/vacuum conversion # then linearization or storing of a nonlinear dispersion function is # skipped. The operations are done in double precision. procedure t_disptrans () int inlist # List of input spectra int outlist # List of output spectra pointer units # Output dispersion units double maxerr # Maximum error (in pixels) bool linearize # Linearize ouptut dispersion? bool verbose # Verbose? int air # Air-vacuum conversion? double t # Temperture in degrees C double p # Pressure in mmHg double f # Water vapour pressure in mmHg int i, j, n, nw, format, dtype, dtype1, axis[2] double err, w1, dw pointer ptr, in, out, mwin, mwout, ctin, ctout, sh, cv, inbuf, outbuf pointer sp, input, output, title, coeff, x, y, w, nx bool clgetb(), streq() int clgwrd(), imtopenp(), imtgetim() double clgetd(), shdr_lw(), dcveval() pointer s_map(), smw_openim(), smw_sctran(), mw_open(), s_gsr(), s_psr() errchk s_map, s_psr errchk smw_openim, smw_gwattrs, shdr_open, mw_open errchk dt_airvac, dt_cvfit, dt_setwcs, dispcor data axis/1,2/ begin call smark (sp) call salloc (input, SZ_FNAME, TY_CHAR) call salloc (output, SZ_FNAME, TY_CHAR) call salloc (units, SZ_FNAME, TY_CHAR) call salloc (title, SZ_LINE, TY_CHAR) coeff = NULL # Parameters inlist = imtopenp ("input") outlist = imtopenp ("output") call clgstr ("units", Memc[units], SZ_FNAME) maxerr = clgetd ("error") linearize = clgetb ("linearize") verbose = clgetb ("verbose") air = clgwrd ("air", Memc[input], SZ_FNAME, AIRVAC) t = clgetd ("t") p = clgetd ("p") f = clgetd ("f") # Loop over input images. while (imtgetim (inlist, Memc[input], SZ_FNAME) != EOF) { if (imtgetim (outlist, Memc[output], SZ_FNAME) == EOF) call strcpy (Memc[input], Memc[output], SZ_FNAME) iferr { in = NULL out = NULL mwin = NULL mwout = NULL ctin = NULL ctout = NULL sh = NULL cv = NULL # Open input and output images and wcs. if (streq (Memc[input], Memc[output])) ptr = s_map (Memc[input], READ_WRITE, 0) else ptr = s_map (Memc[input], READ_ONLY, 0) in = ptr if (streq (Memc[input], Memc[output])) ptr = in else ptr = s_map (Memc[output], NEW_COPY, in) out = ptr ptr = smw_openim (in); mwin = ptr format = SMW_FORMAT(mwin) switch (format) { case SMW_ND: call error (1, "DISPTRANS does not apply to 2D and 3D images") case SMW_ES: call smw_esms (mwin) } if (S_NDIM(out) == 3 && S_NAUX(out) == 1) S_NDIM(out) = 2 i = max (2, S_NDIM(out)) ptr = mw_open (NULL, i); mwout = ptr call mw_newsystem (mwout, "multispec", i) call mw_swtype (mwout, axis, 2, "multispec", "") if (i == 3) call mw_swtype (mwout, 3, 1, "linear", "") call smw_open (mwout, NULL, out) # Allocate and set arrays. call malloc (x, SMW_LLEN(mwin,1), TY_DOUBLE) call malloc (y, SMW_LLEN(mwin,1), TY_DOUBLE) call malloc (w, SMW_LLEN(mwin,1), TY_DOUBLE) call malloc (nx, SMW_NSPEC(mwin), TY_INT) do i = 1, SMW_LLEN(mwin,1) Memd[x+i-1] = i # Set the output MWCS dispersion function. # Only compute new coordinates once if possible. dtype = DCLINEAR do i = 1, SMW_NSPEC(mwin) { if (format == SMW_MS || i == 1) { #call eprintf ("10\n") call shdr_open (in, mwin, i, 1, INDEFI, SHDATA, sh) #call eprintf ("20\n") call shdr_units (sh, Memc[units]) #call eprintf ("30\n") n = SN(sh) do j = 1, n Memd[y+j-1] = shdr_lw (sh, Memd[x+j-1]) #call eprintf ("40\n") call dt_airvac (sh, Memd[y], n, air, t, p, f) #call eprintf ("50\n") # Fit dispersion function. dtype1 = DCLINEAR call dt_cvfit (cv, CHEBYSHEV, 2, Memd[x], Memd[y], Memd[w], n, err) if (err > maxerr) { dtype1 = DCFUNC do j = 1, n-4 { call dt_cvfit (cv, SPLINE3, j, Memd[x], Memd[y], Memd[w], n, err) if (err <= maxerr) break } } w1 = dcveval (cv, 1D0) dw = (dcveval (cv, double(n)) - w1) / (n - 1) } if (linearize) { #call eprintf ("60\n") call dt_setwcs (cv, mwin, mwin, i, dtype1, w1, dw) #call eprintf ("70\n") call dt_setwcs (cv, mwin, mwout, i, DCLINEAR, w1, dw) #call eprintf ("80\n") if (dtype1 != DCLINEAR) dtype = dtype1 } else call dt_setwcs (cv, mwin, mwout, i, dtype1, w1, dw) Memi[nx+i-1] = n } call dcvfree (cv) #call eprintf ("90\n") # Set label and units. The check on unit class is done # so that if not a velocity the dictionary expansion # unit is used. However for velocity the units do not # include the reference coordinate so the user string # is used. call mw_swattrs (SMW_MW(mwout,0), 1, "label", LABEL(sh)) if (UN_CLASS(UN(sh)) != UN_VEL) { call mw_swattrs (SMW_MW(mwout,0), 1, "units", UNITS(sh)) call mw_swattrs (SMW_MW(mwout,0), 1, "units_display", UNITS(sh)) } else { call mw_swattrs (SMW_MW(mwout,0), 1, "units", Memc[units]) call mw_swattrs (SMW_MW(mwout,0), 1, "units_display", Memc[units]) } # Linearize or copy the pixels as requested. if (linearize && dtype != DCLINEAR) { ptr = smw_sctran (mwin, "world", "logical", 3); ctin = ptr ptr = smw_sctran (mwout, "logical", "world", 3); ctout = ptr n = S_NDISP(in) do j = 1, S_NAUX(out) { do i = 1, S_NSPEC(out) { nw = Memi[nx+i-1] inbuf = s_gsr (in, i, j) outbuf = s_psr (out, i, j) call dispcor (ctin, i, ctout, i, Memr[inbuf], n, Memr[outbuf], nw, NO) if (nw < n) call amovkr (Memr[outbuf+nw-1], Memr[outbuf+nw], n-nw) } } call smw_ctfree (ctin) call smw_ctfree (ctout) } else if (in != out) { n = S_NDISP(in) do j = 1, S_NAUX(out) { do i = 1, S_NSPEC(out) { inbuf = s_gsr (in, i, j) outbuf = s_psr (out, i, j) call amovr (Memr[inbuf], Memr[outbuf], n) } } } # Verbose output if (verbose) { call printf ("%s: Dispersion transformed to %s") call pargstr (Memc[output]) call pargstr (UNITS(sh)) switch (air) { case 1: call printf (".\n") case 2: call printf (" in vacuum with\n") call printf ( " t = %.4g C, p = %.6g mmHg, f = %.4g mmHg.\n") call pargd (t) call pargd (p) call pargd (f) case 3: call printf (" in air with\n") call printf ( " t = %.4g C, p = %.6g mmHg, f = %.4g mmHg.\n") call pargd (t) call pargd (p) call pargd (f) } call flush (STDOUT) } } then { if (out != NULL && out != in) { call s_unmap (out) call imdelete (Memc[output]) } call erract (EA_WARN) } # Finish up. call mfree (x, TY_DOUBLE) call mfree (y, TY_DOUBLE) call mfree (w, TY_DOUBLE) call mfree (nx, TY_INT) if (mwout != NULL && out != NULL) call smw_saveim (mwout, out) if (sh != NULL) call shdr_close (sh) if (ctin != NULL) call smw_ctfree (ctin) if (ctout != NULL) call smw_ctfree (ctout) if (mwin != NULL) call smw_close (mwin) if (mwout != NULL) call smw_close (mwout) if (out != NULL && out != in) call s_unmap (out) if (in != NULL) call s_unmap (in) } call imtclose (inlist) call imtclose (outlist) call mfree (coeff, TY_CHAR) call sfree (sp) end # DT_AIRVAC -- Convert dispersion coordinates to air or vacuum values. # The coordinates are first transformed to microns since that is what # the formulas expect. After correction they are transformed back to the # original units. The index of refraction formulas used are from # Allen's Astrophysical Quantities (1973). procedure dt_airvac (sh, x, n, air, t, p, f) pointer sh #I Spectrum pointer double x[n] #U Dispersion vector int n #I Number of pixels int air #I Correction type double t #I Temperture in deg C double p #I Total pressure in mmHg double f #I Water vapour pressure in mmHg int i double x2, a pointer un, un_open() errchk un_open, un_ctrand begin if (air == NONE) return un = un_open ("microns") call un_ctrand (UN(sh), un, x, x, n) do i = 1, n { x2 = 1 / x[i] **2 a = 64.328 + 29498.1 / (146 - x2) + 255.4 / (41 - x2) a = a * p * (1 + (1.049 - 0.0157 * t) * 1e-6 * p) / (720.883 * (1 + 0.003661 * t)) a = a - (0.0624 - 0.000680 * x2) / (1 + 0.003661 * t) * f a = 1 + a / 1e6 switch (air) { case AIR2VAC: x[i] = a * x[i] case VAC2AIR: x[i] = x[i] / a } } call un_ctrand (un, UN(sh), x, x, n) call un_close (un) end # DT_CVFIT -- Fit a dispersion function and return the curfit pointer and # maximum error in pixels. procedure dt_cvfit (cv, func, order, x, y, w, n, maxerr) pointer cv #O Fitted dispersion function int func #I Dispersion function type int order #I Dispersion function order double x[n] #I Pixel coordinates double y[n] #I Desired world coordinates double w[n] #O Errors in pixels int n #I Number of pixels double maxerr #O Maximum error int i double minerr, dcveval() begin if (cv != NULL) call dcvfree (cv) call dcvinit (cv, func, order, x[1], x[n]) call dcvfit (cv, x, y, w, n, WTS_UNIFORM, i) do i = 2, n-1 w[i] = abs ((y[i] - dcveval (cv, x[i])) / ((y[i+1] - y[i-1]) / 2)) w[1] = abs ((y[1] - dcveval (cv, x[1])) / (y[2] - y[1])) w[n] = abs ((y[n] - dcveval (cv, x[n])) / (y[n] - y[n-1])) call alimd (w, n, minerr, maxerr) end # DT_SETWCS -- Set the multispec WCS. If the type is nonlinear then # the fitted function is stored. procedure dt_setwcs (cv, mwin, mwout, l, dtype, w1, dw) pointer cv #I Dispersion function pointer mwin #I Input SMW pointer pointer mwout #I Output, SMW pointer int l #I Image line int dtype #I Dispersion function type double w1 #I Coordinate of first pixel double dw #I Coordinate interval at first physical pixel int i, ap, bm, dt, nw, n, fd, dcvstati(), stropen() double a, b, z, lw, up pointer sp, title, coeff, coeffs begin call smark (sp) call salloc (title, SZ_LINE, TY_CHAR) coeff = NULL call smw_gwattrs (mwin, l, 1, ap, bm, dt, a, b, nw, z, lw, up, coeff) call smw_gapid (mwin, l, 1, Memc[title], SZ_LINE) switch (dtype) { case DCFUNC: n = dcvstati (cv, CVNSAVE) call malloc (coeffs, n, TY_DOUBLE) call dcvsave (cv, Memd[coeffs]) call realloc (coeff, 20*(n+2), TY_CHAR) fd = stropen (Memc[coeff], 20*(n+2), NEW_FILE) call fprintf (fd, "1 0 %d %d") call pargi (nint (Memd[coeffs])) call pargi (nint (Memd[coeffs+1])) do i = 2, n-1 { call fprintf (fd, " %g") call pargd (Memd[coeffs+i]) } call close (fd) call mfree (coeffs, TY_DOUBLE) default: Memc[coeff] = EOS } dt = dtype a = w1 b = dw z = 0. call smw_swattrs (mwout, l, 1, ap, bm, dt, a, b, nw, z, lw, up, Memc[coeff]) call smw_sapid (mwout, l, 1, Memc[title]) call mfree (coeff, TY_CHAR) call sfree (sp) end ����������������sptable-1.0.pre20180612/src/xonedspec/dispcor1.par��������������������������������������������������0000664�0000000�0000000�00000000333�13310232156�0021417�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������change,s,q,,"yes|no|NO",," Change wavelength coordinate assignments?" w1,r,q,,,," Starting wavelength" w2,r,q,,,," Ending wavelength" dw,r,q,,,," Wavelength interval per pixel" nw,i,q,,,," Number of output pixels" �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������sptable-1.0.pre20180612/src/xonedspec/disptrans.par�������������������������������������������������0000664�0000000�0000000�00000000725�13310232156�0021707�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������input,s,a,,,,Input spectra output,s,a,,,,Output spectra units,s,a,,,,Output dispersion units error,r,h,0.01,1E-6,,Maximum output coordinate error in pixels linearize,b,h,no,,,Resample the output to linear dispersion intervals? verbose,b,h,yes,,,"Print log of transformations? # AIR/VACUUM CONVERSION" air,s,h,"none","none|air2vac|vac2air",,Air-vacuum conversion? t,r,h,15.,,,Temperture in degrees C p,r,h,760,,,Pressure in mmHg f,r,h,4,,,Water vapour pressure in mmHg �������������������������������������������sptable-1.0.pre20180612/src/xonedspec/doc/����������������������������������������������������������0000775�0000000�0000000�00000000000�13310232156�0017735�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������sptable-1.0.pre20180612/src/xonedspec/doc/aidpars.hlp�����������������������������������������������0000664�0000000�0000000�00000056222�13310232156�0022074�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.help aidpars Jan96 noao.onedspec .ih NAME aidpars -- Automatic line identification parameters and algorithm .ih SUMMARY The automatic line identification parameters and algorithm used in \fBautoidentify\fR, \fBidentify\fR, and \fBreidentify\fR are described. .ih USAGE aidpars .ih PARAMETERS .ls reflist = "" Optional reference coordinate list to use in the pattern matching algorithm in place of the task coordinate list. This file is a simple text list of dispersion coordinates. It would normally be a culled and limited list of lines for the specific data being identified. .le .ls refspec = "" Optional reference dispersion calibrated spectrum. This template spectrum is used to select the prominent lines for the pattern matching algorithm. It need not have the same dispersion increment or dispersion coverage as the target spectrum. .le .ls crpix = "INDEF" Coordinate reference pixel for the coordinate reference value specified by the \fIcrval\fR parameter. This may be specified as a pixel coordinate or an image header keyword name. In the latter case the value of the keyword in the image header of the spectrum being identified is used. A value of INDEF translates to the middle of the target spectrum. .le .ls cddir = "unknown" (unknown|sign|increasing|decreasing) The sense of the dispersion increment with respect to the pixel coordinates in the input spectrum. The possible values are "increasing" or "decreasing" if the dispersion coordinates increase or decrease with increasing pixel coordinates, "sign" to use the sign of the dispersion increment (positive is increasing and negative is decreasing), and "unknown" if the sense is unknown and to be determined by the algorithm. .le .ls crsearch = "INDEF" Coordinate reference value search radius. The value may be specified as a numerical value or as an image header keyword whose value is to be used. The algorithm will search for a final coordinate reference value within this amount of the value specified by \fIcrval\fR. If the value is positive the search radius is the specified value. If the value is negative it is the absolute value of this parameter times \fIcdelt\fR times the number of pixels in the input spectrum; i.e. it is the fraction of dispersion range covered by the target spectrum assuming a dispersion increment per pixel of \fIcdelt\fR. A value of INDEF translates to -0.1 which corresponds to a search radius of 10% of the estimated dispersion range. .le .ls cdsearch = "INDEF" Dispersion coordinate increment search radius. The value may be specified as a numerical value or as an image header keyword whose value is to be used. The algorithm will search for a dispersion coordinate increment within this amount of the value specified by \fIcdelt\fR. If the value is positive the search radius is the specified value. If the value is negative it is the absolute value of this parameter times \fIcdelt\fR; i.e. it is a fraction of \fIcdelt\fR. A value of INDEF translates to -0.1 which corresponds to a search radius of 10% of \fIcdelt\fR. .le .ls ntarget = 20 Number of spectral lines from the target spectrum to use in the pattern matching. .le .ls npattern = 5 Number of spectral lines in patterns to be matched. There is a minimum of 3 and a maximum of 10. .le .ls nneighbors = 10 Number of neighbors to use in making patterns of lines. This parameter restricts patterns to include lines which are near each other. .le .ls nbins = 6 Maximum number of bins to divide the reference coordinate list or spectrum in searching for a solution. When there are no weak dispersion constraints the algorithm subdivides the full range of the coordinate list or reference spectrum into one bin, two bins, etc. up to this maximum. Each bin is searched for a solution. .le .ls ndmax = 20 Maximum number of candidate dispersions to examine. The algorithm ranks candidate dispersions by how many candidate spectral lines are fit and the the weights assigned by the pattern matching algorithm. Starting from the highest rank it tests each candidate dispersion to see if it is a satisfactory solution. This parameter determines how many candidate dispersion in the ranked list are examined. .le .ls aidord = 3 (minimum of 2) The order of the dispersion function fit by the automatic identification algorithm. This is the number of polynomial coefficients so a value of two is a linear function and a value of three is a quadratic function. The order should be restricted to values of two or three. Higher orders can lead to incorrect solutions because of the increased degrees of freedom if finding incorrect line identifications. .le .ls nfound = 6 Minimum number of identified spectral lines required in the final solution. If a candidate solution has fewer identified lines it is rejected. .le .ls sigma = 0.05 Sigma (uncertainty) in the line center estimates specified in pixels. This is used to propagate uncertainties in the line spacings in the observed patterns of lines. .le .ls minratio = 0.1 Minimum spacing ratio used. Patterns of lines in which the ratio of spacings between consecutive lines is less than this amount are excluded. .le .ls rms = 0.3 Pixel RMS goal for a correct dispersion solution. This is the RMS in the measured spectral lines relative to the expected positions from the coordinate line list based on the coordinate dispersion solution. This RMS is expressed in pixels to be independent of the dispersion. The RMS will be small for a valid solution. .le .ls fmatch = 0.3 Goal for the fraction of unidentified lines in a correct dispersion solution. This is the fraction of the strong lines seen in the spectrum which are not identified and also the fraction of all lines in the coordinate line list, within the range of the dispersion solution, not identified. Both fractions will be small for a valid solution. .le .ls debug = "" Print or display debugging information. This is intended for the developer and not the user. The parameter is specified as a string of characters where each character displays some information. The characters are: .nf a: Print candidate line assignments. b: Print search limits. c: Print list of line ratios. * d: Graph dispersions. * f: Print final result. * l: Graph lines and spectra. r: Print list of reference lines. * s: Print search iterations. t: Print list of target lines. v: Print vote array. w: Print wavelength bin limits. .fi The items with an asterisk are the most useful. The graphs are exited with 'q' or 'Q'. .le .ih DESCRIPTION The \fBaidpars\fR parameter set contains the parameters for the automatic spectral line identification algorithm used in the task \fBautoidentify\fR, \fBidentify\fR, and \fBreidentify\fR. These tasks include the parameter \fIaidpars\fR which links to this parameters set. Typing \fBaidpars\fR allows these parameters to be edited. When editing the parameters of the other tasks with \fBeparam\fR one can edit the \fBaidpars\fR parameters by type ":e" when pointing to the \fIaidpars\fR task parameter. The values of the \fBaidpars\fR parameters may also be set on the command line for the task. The discussion which follows describes the parameters and the algorithm. The goal of the automatic spectral line identification algorithm is to automate the identification of spectral lines so that given an observed spectrum of a spectral line source (called the target spectrum) and a file of known dispersion coordinates for the lines, the software will identify the spectral lines and use these identifications to determine a dispersion function. This algorithm is quite general so that the correct identifications and dispersion function may be found even when there is limited or no knowledge of the dispersion coverage and resolution of the observation. However, when a general line list, including a large dispersion range and many weak lines, is used and the observation covers a much smaller portion of the coordinate list the algorithm may take a long to time or even fail to find a solution. Thus, it is highly desirable to provide additional input giving approximate dispersion parameters and their uncertainties. When available, a dispersion calibrated reference spectrum (not necessarily of the same resolution or wavelength coverage) also aids the algorithm by indicating the relative strengths of the lines in the coordinate file. The line strengths need not be very similar (due to different lamps or detectors) but will still help separate the inherently weak and strong lines. The Input The primary inputs to the algorithm are the observed one dimensional target spectrum in which the spectral lines are to be identified and a dispersion function determined and a file of reference dispersion coordinates. These inputs are provided in the tasks using the automatic line identification algorithm. One way to limit the algorithm to a specific dispersion region and to the important spectral lines is to use a limited coordinate list. One may do this with the task coordinate list parameter (\fIcoordlist\fR). However, it is desirable to use a standard master line list that includes all the lines, both strong and weak. Therefore, one may specify a limited line list with the parameter \fIreflist\fR. The coordinates in this list will be used by the automatic identification algorithm to search for patterns while using the primary coordinate list for adding weaker lines during the dispersion function fitting. The tasks \fBautoidentify\fR and \fBidentify\fR also provide parameters to limit the search range. These parameters specify a reference dispersion coordinate (\fIcrval\fR) and a dispersion increment per pixel (\fIcdelt\fR). When these parameters are INDEF this tells the algorithm to search for a solution over the entire range of possibilities covering the coordinate line list or reference spectrum. The reference dispersion coordinate refers to an approximate coordinate at the reference pixel coordinate specified by the parameter \fIcrpix\fR. The default value for the reference pixel coordinate is INDEF which translates to the central pixel of the target spectrum. The parameters \fIcrsearch\fR and \fIcdsearch\fR specify the expected range or uncertainty of the reference dispersion coordinate and dispersion increment per pixel respectively. They may be specified as an absolute value or as a fraction. When the values are positive they are used as an absolute value; .nf crval(final) = \fIcrval\fR +/- \fIcrsearch\fR cdelt(final) = \fIcdelt\fR +/- \fIcdsearch\fR. .fi When the values are negative they are used as a fraction of the dispersion range or fraction of the dispersion increment; .nf crval(final) = \fIcrval\fR +/- abs (\fIcrsearch\fR * \fIcdelt\fR) * N_pix cdelt(final) = \fIcdelt\fR +/- abs (\fIcdsearch\fR * \fIcdelt\fR) .fi where abs is the absolute value function and N_pix is the number of pixels in the target spectrum. When the ranges are not given explicitly, that is they are specified as INDEF, default values of -0.1 are used. The parameters \fIcrval\fR, \fIcdelt\fR, \fIcrpix\fR, \fIcrsearch\fR, and \fIcdsearch\fR may be given explicit numerical values or may be image header keyword names. In the latter case the values of the indicated keywords are used. This feature allows the approximate dispersion range information to be provided by the data acquisition system; either by the instrumentation or by user input. Because sometimes only the approximate magnitude of the dispersion increment is known and not the sign (i.e. whether the dispersion coordinates increase or decrease with increasing pixel coordinates) the parameter \fIcdsign\fR specifies if the dispersion direction is "increasing", "decreasing", "unknown", or defined by the "sign" of the approximate dispersion increment parameter (sign of \fIcdelt\fR). The above parameters defining the approximate dispersion of the target spectrum apply to \fIautoidentify\fR and \fIidentify\fR. The task \fBreidentify\fR does not use these parameters except that the \fIshift\fR parameter corresponds to \fIcrsearch\fR if it is non-zero. This task assumes that spectra to be reidentified are the same as a reference spectrum except for a zero point dispersion offset; i.e. the approximate dispersion parameters are the same as the reference spectrum. The dispersion increment search range is set to be 5% and the sign of the dispersion increment is the same as the reference spectrum. An optional input is a dispersion calibrated reference spectrum (referred to as the reference spectrum in the discussion). This is specified either in the coordinate line list file or by the parameter \fIrefspec\fR. To specify a spectrum in the line list file the comment "# Spectrum " is included where is the image filename of the reference spectrum. Some of the standard line lists in linelists$ may include a reference spectrum. The reference spectrum is used to select the strongest lines for the pattern matching algorithm. The Algorithm First a list of the pixel positions for the strong spectral lines in the target spectrum is created. This is accomplished by finding the local maxima, sorting them by pixel value, and then using a centering algorithm (\fIcenter1d\fR) to accurately find the centers of the line profiles. Note that task parameters \fIftype\fR, \fIfwidth\fR, \fIcradius\fR, \fIthreshold\fR, and \fIminsep\fR are used for the centering. The number of spectral lines selected is set by the parameter \fIntarget\fR. A list of reference dispersion coordinates is selected from the coordinate file (\fIcoordlist\fR or \fIreflist\fR). The number of reference dispersion coordinates is set at twice the number of target lines found. The reference coordinates are either selected uniformly from the coordinate file or by locating the strong spectral lines (in the same way as for the target spectrum) in a reference spectrum if one is provided. The selection is limited to the expected range of the dispersion as specified by the user. If no approximate dispersion information is provided the range of the coordinate file or reference spectrum is used. The ratios of consecutive spacings (the lists are sorted in increasing order) for N-tuples of coordinates are computed from both lists. The size of the N-tuple pattern is set by the \fInpattern\fR parameter. Rather than considering all possible combinations of lines only patterns of lines with all members within \fInneighbors\fR in the lists are used; i.e. the first and last members of a pattern must be within \fInneighbors\fR of each other in the lists. The default case is to find all sets of five lines which are within ten lines of each other and compute the three spacing ratios. Because very small spacing ratios become uncertain, the line patterns are limited to those with ratios greater than the minimum specified by the \fIminratio\fR parameter. Note that if the direction of the dispersion is unknown then one computes the ratios in the reference coordinates in both directions. The basic idea is that similar patterns in the pixel list and the dispersion list will have matching spacing ratios to within a tolerance derived by the uncertainties in the line positions (\fIsigma\fR) from the target spectrum. The reference dispersion coordinates are assumed to have no uncertainty. All matches in the ratio space are found between patterns in the two lists. When matches are made then the candidate identifications (pixel, reference dispersion coordinate) between the elements of the patterns are recorded. After finding all the matches in ratio space a count is made of how often each possible candidate identification is found. When there are a sufficient number of true pairs between the lists (of order 25% of the shorter list) then true identifications will appear in common in many different patterns. Thus the highest counts of candidate identifications are the most likely to be true identifications. If approximate dispersion parameters and search ranges are defined then candidate identifications which fall outside the range of dispersion function possibilities are rejected. From the remaining candidate identifications the highest vote getters are selected. The number selected is three times the number of target lines. All linear dispersions functions, where dispersion and pixel coordinates are related by a zero point and slope, are found that pass within two pixels of two or more of the candidate identifications. The dispersion functions are ranked primarily by the number of candidate identifications fitting the dispersion and secondarily by the total votes in the identifications. Only the highest ranking candidate linear dispersion are kept. The number of candidate dispersions kept is set by the parameter \fIndisp\fR. The candidate dispersions are evaluated in order of their ranking. Each line in the coordinate file (\fIcoordlist\fR) is converted to a pixel coordinate based on the dispersion function. The centering algorithm attempts to find a line profile near that position as defined by the \fImatch\fR parameter. This may be specified in pixel or dispersion coordinates. All the lines found are used to fit a polynomial dispersion function with \fIaidord\fR coefficients. The order should be linear or quadratic because otherwise the increased degrees of freedom allow unrealistic dispersion functions to appear to give a good result. A quadratic function (\fIaidord\fR = 3) is allowed since this is the approximate form of many dispersion functions. However, to avoid unrealistic dispersion functions a test is made that the maximum amplitude deviation from a linear function is less that 0.5% of dispersion range. If an extreme quadratic function is found then a linear function is substituted. The process of adding lines based on the last dispersion function and then refitting the dispersion function is iterated twice. At the end of this step if fewer than the number of lines specified by the parameter \fInfound\fR have been identified the candidate dispersion is eliminated. The quality of the line identifications and dispersion solution is evaluated based on three criteria. The first one is the root-mean-square of the residuals between the pixel coordinates derived from lines found from the dispersion coordinate file based on the dispersion function and the observed pixel coordinates. This pixel RMS is normalized by the target RMS set with the \fIrms\fR parameter. A good solution will have a value less than one. A pixel RMS, as opposed to a dispersion coordinate RMS, is used since this is independent of the actual dispersion of the spectrum. The other two criteria are the fraction of strong lines from the target spectrum list which were not identified with lines in the coordinate file and the fraction of all the lines in the coordinate file (within the dispersion range covered by the candidate dispersion) which were not identified. These are normalized to a target value given by \fIfmatch\fR. The default matching goal is 0.3 which means that less than 30% of the lines should be unidentified or greater than 70% should be identified. As with the RMS, a value of one or less corresponds to a good solution. The reason the fraction identified criteria are used is that the pixel RMS can be minimized by finding solutions with large dispersion increment per pixel. This puts all the lines in the coordinate file into a small range of pixels and so (incorrect) lines with very small residuals can be found. The strong line identification criterion is clearly a requirement that humans use in evaluating a solution. The fraction of all lines identified, as opposed to the number of lines identified, in the coordinate file is included to reduce the case of a large dispersion increment per pixel mapping a large number of lines (such as the entire list) into the range of pixels in the target spectrum. This can give the appearance of finding a large number of lines from the coordinate file. However, an incorrect dispersion will also find a large number which are not matched. Hence the fraction not matched will be high. The three criteria, all of which are normalized so that values less than one are good, are combined to a single figure of merit by a weighted average. Equal weights have been found to work well; i.e. each criterion is one-third of the figure of merit. In testing it has been found that all correct solutions over a wide range of resolutions and dispersion coverage have figures of merit less than one and typically of order 0.2. All incorrect candidate dispersion have values of order two to three. The search for the correct dispersion function terminates immediately when a figure of merit less than one is found. The order in which the candidate dispersions are tested, that is by rank, was chosen to try the most promising first so that often the correct solution is found on the first attempt. When the approximate dispersion is not known or is imprecise it is often the case that the pixel and coordinate lists will not overlap enough to have a sufficient number true coordinate pairs. Thus, at a higher level the above steps are iterated by partitioning the dispersion space searched into bins of various sizes. The largest size is the maximum dispersion range including allowance for the search radii. The smallest size bin is obtained by dividing the dispersion range by the number specified by the \fInbins\fR parameter. The actual number of bins searched at each bin size is actually twice the number of bins minus one because the bins are overlapped by 50%. The search is done starting with bins in the middle of the size range and in the middle of the dispersion range and working outward towards larger and smaller bins and larger and smaller dispersion ranges. This is done to improved the chances of finding the correction dispersion function in the smallest number of steps. When a set of line identifications and dispersion solution satisfying the figure of merit criterion is found a final step is performed. Up to this point only linear dispersion functions are used since higher order function can be stretch in unrealistic ways to give good RMS values and fit all the lines. The final step is to use the line identifications to fit a dispersion function using all the parameters specified by the user (such as function type, order, and rejection parameters). This is iterated to add new lines from the coordinate list based on the more general dispersion function and then obtain a final dispersion function. The line identifications and dispersion function are then returned to the task using this automatic line identification algorithm. If a satisfactory solution is not found after searching all the possibilities the algorithm will inform the task using it and the task will report this appropriately. .ih EXAMPLES 1. List the parameters. .nf cl> lpar aidpars .fi 2. Edit the parameters with \fBeparam\fR. .nf cl> aidpars .fi 3. Edit the \fBaidpars\fR parameters from within \fBautoidentify\fR. .nf cl> epar autoid [edit the parameters] [move to the "aidpars" parameter and type :e] [edit the aidpars parameters and type :q or EOF character] [finish editing the autoidentify parameters] [type :wq or the EOF character] .fi 4. Set one of the parameters on the command line. .nf cl> autoidentify spec002 5400 2.5 crpix=1 .fi .ih REVISIONS .ls AIDPARS V2.11 This parameter set is new in this version. .le .ih SEE ALSO autoidentify, identify, reidentify, center1d .endhelp ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������sptable-1.0.pre20180612/src/xonedspec/doc/autoidentify.hlp������������������������������������������0000664�0000000�0000000�00000042635�13310232156�0023160�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.help autoidentify Jan96 noao.onedspec .ih NAME autoidentify -- Automatically identify lines and fit dispersion .ih SUMMARY Spectral lines are automatically identified from a list of coordinates by pattern matching. The identified lines are then used to fit a dispersion function which is written to a database for later use in dispersion calibration. After a solution is found the identified lines and dispersion function may be examined interactively. .ih USAGE autoidentify images crval cdelt .ih PARAMETERS .ls images List of images containing one dimensional spectra in which to identify spectral lines and fit dispersion functions. For two and three dimensional spectral and spatial data one may use an image section to select a one dimensional spectral vector or use the \fIsection\fR parameter. .le .ls crval, cdelt These parameters specify an approximate coordinate value and coordinate interval per pixel. They may be specified as numerical values, INDEF, or image header keyword names whose values are to be used. The coordinate reference value is for the pixel specified by the parameter \fIaidpars.crpix\fR. The default reference pixel is INDEF which means the middle of the spectrum. By default only the magnitude of the coordinate interval is used and the search will include both increasing and decreasing coordinate values with increasing pixel values. If one or both of these parameters are specified as INDEF the search for a solution will be slower and more likely to fail. .le .ls coordlist = "" Coordinate list consisting of an list of spectral line coordinates. A comment line of the form "# units ", where is one of the understood units names, defines the units of the coordinate list. If no units are specified then Angstroms are assumed. The line list is used for both the final identifications and for the set of lines to use in the automatic search. A restricted search list may be specified with the parameter \fIaidpars.reflist\fR. The line list may contain a comment line of the form "# Spectrum ", where is a filename containing a reference spectrum. The reference spectrum will be used in selecting the strong lines for the automatic search. A reference spectrum may also be specified with the parameter \fIaidpars.refspec\fR. Some standard line lists are available in the directory "linelists$". See the help topic \fIlinelists\fR for the available line lists. .le .ls units = "" The units to use if no database entry exists. The units are specified as described in .nf cl> help onedspec.package section=units .fi If no units are specified and a coordinate list is used then the units of the coordinate list are selected. If a database entry exists then the units defined there override both this parameter and the coordinate list. .le .ls interactive = yes (no|yes|NO|YES) After automatically identifying the spectral lines and dispersion function review and modify the solution interactively? If "yes" a query is given for each spectrum providing the choice of interactive review. The query may be turned off during execution. If "YES" the interactive review is entered automatically without a query. The interactive, graphical review is the same as the task \fBidentify\fR with a few restriction. .le .ls aidpars = "" (parameter set) Parameter set for the automatic line identification algorithm. The parameters are described in the help topic \fBaidpars\fR. .le For two and three dimensional spectral images the following parameters are used to select a one dimensional spectrum. .ls section = "middle line" If an image is not one dimensional or specified as a one dimensional image section then the image section given by this parameter is used. The section defines a one dimensional spectrum. The dispersion direction is derived from the vector direction. The section parameter may be specified directly as an image section or in one of the following forms .nf line|column|x|y|z first|middle|last|# [first|middle|last|#]] first|middle|last|# [first|middle|last|#] line|column|x|y|z .fi where each field can be one of the strings separated by | except for # which is an integer number. The field in [] is a second designator which is used with three dimensional data. Abbreviations are allowed though beware that 'l' is not a sufficient abbreviation. .le .ls nsum = "1" Number of lines, columns, or bands across the designated dispersion axis to be summed when the image is a two or three dimensional image. It does not apply to multispec format spectra. If the image is three dimensional an optional second number can be specified for the higher dimensional axis (the first number applies to the lower axis number and the second to the higher axis number). If a second number is not specified the first number is used for both axes. .le The following parameters are used in finding spectral lines. .ls ftype = "emission" Type of spectral lines to be identified. The possibly abbreviated choices are "emission" and "absorption". .le .ls fwidth = 4. Full-width at the base (in pixels) of the spectral lines to be identified. .le .ls cradius = 5. The maximum distance, in pixels, allowed between a line position and the initial estimate when defining a new line. .le .ls threshold = 0. In order for a line center to be determined the range of pixel intensities around the line must exceed this threshold. .le .ls minsep = 2. The minimum separation, in pixels, allowed between line positions when defining a new line. .le .ls match = -3. The maximum difference for a match between the line coordinate derived from the dispersion function and a coordinate in the coordinate list. Positive values are in user coordinate units and negative values are in units of pixels. .le The following parameters are used to fit a dispersion function to the user coordinates. The \fBicfit\fR routines are used and further descriptions about these parameters may be found under that topic. .ls function = "spline3" The function to be fit to user coordinates as a function of the pixel coordinates. The choices are "chebyshev", "legendre", "spline1", or "spline3". .le .ls order = 1 Order of the fitting function. The order is the number of polynomial terms (coefficients) or the number of spline pieces. .le .ls sample = "*" Sample regions for fitting specified in in pixel coordinates. .le .ls niterate = 10 Number of rejection iterations. .le .ls low_reject = 3.0, high_reject = 3.0 Lower and upper residual rejection in terms of the RMS of the fit. .le .ls grow = 0 Distance from a rejected point in which additional points are automatically rejected regardless of their residuals. .le The following parameters control the input and output. .ls dbwrite = "yes" (no|yes|NO|YES) Automatically write or update the database with the line identifications and dispersion function? If "no" or "NO" then there is no database output. If "YES" the results are automatically written to the database. If "yes" a query is made allowing the user to reply with "no", "yes", "NO" or "YES". The negative responses do not write to the database and the affirmative ones do write to the database. The upper-case responses suppress any further queries for any remaining spectra. .le .ls overwrite = yes Overwrite previous solutions in the database? If there is a previous solution for the spectrum being identified this parameter selects whether to skip the spectrum ("no") or find a new solution ("yes"). In the later case saving the solution to the database will overwrite the previous solution. .le .ls database = "database" Database for reading and writing the line identifications and dispersion functions. .le .ls verbose = yes Print results of the identification on the standard output? .le .ls logfile = "logfile" Filename for recording log information about the identifications. The null string, "", may be specified to skip recording the log information. .le .ls plotfile = "" Filename for recording log plot information as IRAF metacode. A null string, "", may be specified to skip recording the plot information. (Plot output is currently not implemented.) .le .ls graphics = "stdgraph" Graphics device for the interactive review. The default is the standard graphics device which is generally a graphics terminal. .le .ls cursor = "" Cursor input file for the interactive review. If a cursor file is not given then the standard graphics cursor is read. .le .ls query Parameter used by the program to query the user. .le .ih DESCRIPTION \fBAutoidentify\fR automatically identifies spectral lines from a list of spectral line coordinates (\fIcoordlist\fR) and determines a dispersion function. The identified lines and the dispersion function may be reviewed interactively (\fIinteractive\fR) and the final results are recorded in a \fIdatabase\fR. Each image in the input list (\fIimages\fR) is considered in turn. If the image is not one dimensional or a one dimensional section of an image then the parameter \fIsection\fR is used to select a one dimensional spectrum. It defines the dispersion direction and central spatial coordinate(s). If the image is not one dimensional or a set of one dimensional spectra n multispec format then the \fInsum\fR parameter selects the number of neighboring lines, columns, and bands to sum. This task is not intended to be used on all spectra in an image since in most cases the dispersion functions will be similar though possibly with a zero point shift. Once one spectrum is identified the others may be reidentified with \fBreidentify\fR. The coordinate list of spectral lines often covers a much larger dispersion range than the spectra being identified. This is true of the standard line lists available in the "linelists$" directory. While the algorithm for identifying the lines will often succeed with a large line list it is not guaranteed nor will it find the solution quickly without additional information. Thus it is highly desirable to provide the algorithm with approximate information about the spectra. Generally this information is known by the observer or recorded in the image header. As implied in the previous paragraph, one may use a limited coordinate line list that matches the dispersion coverage of the spectra reasonably well (say within 100% of the dispersion range). This may be done with the \fIcoordlist\fR parameter or a second coordinate list used only for the automatic search may be specified with the parameter \fIaidpars.reflist\fR. This allows using a smaller culled list of lines for finding the matching patterns and a large list with weaker lines for the final dispersion function fit. The alternative to a limited list is to use the parameters \fIcrval\fR and \fIcdelt\fR to specify the approximate coordinate range and dispersion interval per pixel. These parameters may be given explicitly or by specifying image header keywords. The pixel to which \fIcrval\fR refers is specified by the parameter \fIaidpars.crpix\fR. By default this is INDEF which means use the center of the spectrum. The direction in which the dispersion coordinates increase relative to the pixel coordinates may be specified by the \fIaidpars.cddir\fR parameter. The default is "unknown" to search in either direction. The algorithm used to automatically identify the spectral lines and find a dispersion function is described under the help topic \fBaidpars\fR. This topic also describes the various algorithm parameters. The default parameters are adequate for most data. The characteristics of the spectral lines to be found and identified are set by several parameters. The type of spectral lines, whether "emission" or "absorption", is set by the parameter \fIftype\fR. For arc-line calibration spectra this parameter is set to "emission". The full-width (in pixels) at the base of the spectral lines is set by the parameter \fIfwidth\fR. This is used by the centering algorithm to define the extent of the line profile to be centered. The \fIthreshold\fR parameter defines a minimum contrast (difference) between a line peak and the neighboring continuum. This allows noise peaks to be ignored. Finding the center of a possible line begins with an initial position estimate. This may be an interactive cursor position or the expected position from the coordinate line list. The centering algorithm then searches for a line of the specified type, width, and threshold within a given distance, specified by the \fIcradius\fR parameter. These parameters and the centering algorithm are described by the help topic \fBcenter1d\fR. To avoid finding the same line multiple times, say when there are two lines in the line list which are blended into a single in the observation, the \fIminsep\fR parameter rejects any new line position found within that distance of a previously defined line. The automatic identification of lines includes matching a line position in the spectrum against the list of coordinates in the coordinate line list. The \fImatch\fR parameter defines how close the measured line position must be to a coordinate in the line list to be considered a possible identification. This parameter may be specified either in user coordinate units (those used in the line list) by using a positive value or in pixels by using a negative value. In the former case the line position is converted to user coordinates based on a dispersion function and in the latter the line list coordinate is converted to pixels using the inverse of the dispersion function. The dispersion function is determined by fitting a set of pixel positions and user coordinate identifications by least squares to a specified function type. The fitting requires a function type, \fIfunction\fR, and the order (number of coefficients or spline pieces), \fIorder\fR. In addition the fitting can be limited to specified regions, \fIsample\fR, and provide for the rejection of points with large residuals. These parameters are set in advance and used during the automatic dispersion function determination. Later the fitting may be modified interactively. For additional discussion of these parameters see \fBicfit\fR. The output of this program consists of log information, plot information, and the line identifications and dispersion function. The log information may be appended to the file specified by the \fIlogfile\fR parameter and printed to the standard output (normally the terminal) by setting the \fIverbose\fR parameter to yes. This information consists of a banner line, a line of column labels, and results for each spectrum. For each spectrum the spectrum name, the number of spectral lines found, the dispersion coordinate at the middle of the spectrum, the dispersion increment per pixel, and the root-mean-square (RMS) of the residuals for the lines used in the dispersion function fit is recorded. The units of the RMS are those of the user (line list) coordinates. If a solution is not found the spectrum name and a message is printed. The line identifications and dispersion function are written to the specified \fIdatabase\fR. The current format of the database is described in the help for \fIidentify\fR. If a database entry is already present for a spectrum and the parameter \fIoverwrite\fR is "no" then the spectrum is skipped and a message is printed to the standard output. After a solution is found and after any interactive review (see below) the results may be written to the database. The \fIdbwrite\fR parameter may be specified as "no" or "NO" to disable writing to the database (and no queries will be made), as "yes" to query whether to or not to write to the database, or as "YES" to automatically write the results to the database with no queries. When a query is given the responses may be "no" or "yes" for an individual spectrum or "NO" or "YES" for all remaining spectra without further queries. After a solution is found one may review and modify the line identifications and dispersion function using the graphical functions of the \fBidentify\fR task (with the exception that a new spectrum may not be selected). The review mode is selected with the \fIinteractive\fR parameter. If the parameter is "no" or "NO" then no interactive review will be provided and there will be no queries either. If the parameter is "YES" then the graphical review mode will be entered after each solution is found without any query. If the parameter is "yes" then a query will be made after a solution is found and after any log information is written to the terminal. One may respond to the query with "no" or "yes" for an individual spectrum or "NO" or "YES" for all remaining spectra without further queries. For "yes" or "YES" the \fIidentify\fR review mode is entered. To exit type 'q'. .ih EXAMPLES 1. The following example finds a dispersion solution for the middle column of a long slit spectrum of a He-Ne-Ar arc spectrum using all the interactive options. .nf cl> autoid arc0022 6000 6 coord=linelists$henear.dat sec="mid col" AUTOIDENITFY: NOAO/IRAF IRAFX valdes@puppis Thu 15:50:31 25-Jan-96 Spectrum # Found Midpoint Dispersion RMS arc0022[50,*] 50 5790. 6.17 0.322 arc0022[50,*]: Examine identifications interactively? (yes): arc0022[50,*]: Write results to database? (yes): yes .fi 2. The next example shows a non-interactive mode with no queries for the middle fiber of an extracted multispec image. .nf cl> autoid.coordlist="linelists$henear.dat" cl> autoid a0003 5300 3.2 interactive- verbose- dbwrite=YES .fi .ih REVISIONS .ls AUTOIDENTIFY V2.11 This task is new in this version. .le .ih SEE ALSO identify, reidentify, aidpars, linelists, center1d, icfit, gtools .endhelp ���������������������������������������������������������������������������������������������������sptable-1.0.pre20180612/src/xonedspec/doc/bplot.hlp�������������������������������������������������0000664�0000000�0000000�00000015725�13310232156�0021574�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.help bplot Mar92 noao.onedspec .ih NAME bplot -- Plot spectra noninteractively using SPLOT .ih USAGE bplot images [records] .ih PARAMETERS .ls images List of images to be plotted. These may be one dimensional, multiaperture, long slit, or nonspectral images. .le .ls records (imred.irs and imred.iids only) List of records records to be appended to the input image root names when using record number extension format. The syntax of this list is comma separated record numbers or ranges of record numbers. A range consists of two numbers separated by a hyphen. A null list may be used if no record number extensions are desired. .le .ls apertures = "" List of apertures/lines/columns to be plotted in each image. If \fIapertures\fR is null all of the apertures/lines/columns will be plotted. .le .ls band = 1 The band or plane of a three dimensional image to be plotted in each image. .le .ls graphics = "stdgraph" Output graphics device. This may be one of "stdgraph", "stdplot", "stdvdm", or the actual device name. .le .ls cursor = "onedspec$gcurval.dat" File(s) containing cursor commands for the SPLOT task. The files will be cycled sequentially. If there is more than one file usually the number of files will agree with the number of apertures for each image since otherwise different cursor/aperture pairings will occur. The default is a file containing only the (q)uit command. .le The following parameters are used in response to particular keystrokes. In \fBsplot\fR they are query parameters but in \fBbplot\fR they are hidden parameters. .ls next_image = "" In response to 'g' (get next image) this parameter specifies the image. .le .ls new_image = "" In response to 'i' (write current spectrum) this parameter specifies the name of a new image to create or existing image to overwrite. .le .ls overwrite = yes Overwrite an existing output image? If set to yes it is possible to write back into the input spectrum or to some other existing image. Otherwise the user is queried again for a new image name. .le .ls spec2 = "" When adding, subtracting, multiplying, or dividing by a second spectrum ('+', '-', '*', '/' keys in the 'f' mode) this parameter is used to get the name of the second spectrum. .le .ls constant = 0. When adding or multiplying by a constant ('p' or 'm' keys in the 'f' mode) the parameter is used to get the constant. .le .ls wavelength = 0. This parameter is used to get a dispersion coordinate value during deblending or when changing the dispersion coordinates with 'u'. .le .ls linelist = "" During deblending this parameter is used to get a list of line positions and widths. .le .ls wstart = 0., wend = 0., dw = 0. In response to 'p' (convert to a linear wavelength scale) these parameter specify the starting wavelength, ending wavelength, and wavelength per pixel. .le .ls boxsize = 2 In response to 's' (smooth) this parameter specifies the box size in pixels to be used for the boxcar smooth .le .ih DESCRIPTION The spectra in the input image list are successively processed by the task \fBsplot\fR with input supplied by the cursor parameter and the output sent to the specified graphics device. The range of apertures and bands specified by \fIapertures\fR and \fIbands\fR will be processed for each image. In the \fBiids/irs\fR packages the record extension syntax is used with input root names and a record number list. The hidden parameters from \fBsplot\fR apply to this task. The cursor file(s) consists of line(s) of the form: [x y 1] key [command] where x and y are the position of the cursor (may be zero or absent if the cursor position is irrelevant) and key is one of the keystrokes understood by \fBsplot\fR. If the key is ":" then the \fIcolon\fR command string follows. The default cursor file consists of the single line: 0 0 1 q If more than one cursor file is specified they are sequentially assigned to each aperture and the list is repeated as needed. This allows the aperture to be manipulated in differing ways. .ih EXAMPLES 1. To plot all of apertures of the multiaperture spectra indicated by the file "nite1.lst" on the default plotter and run in the background: .nf cl> bplot @nite1.lst graphics=stdplot & .fi 2. To preview the plots: .nf cl> bplot @nite1.lst graphics=stdgraph .fi 3. To produce a histogram type plot about Balmer alpha for aperture 5 of each spectrum with the IRAF banner suppressed: .nf cl> type curfile 6555 0 1 a 6570 0 1 a q cl> splot.options="auto hist nosysid" cl> splot.xmin=6555 cl> splot.xmax=6570 cl> bplot @nite1.lst apertures=5 cursor=curfile .fi 4. To produce plots with four spectra per page: .nf cl> bplot @nite1.lst ... >G nite1.mc cl> gkimosiac nite1.mc dev=stdplot .fi The first command redirects the output of the graphics to the metacode file nite1.mc. The task \fBgkimosiac\fR is used to make multiple plots per page. Other tasks in the \fBplot\fR package may be used to manipulate and redisplay the contents of the metacode file. 5. To plot a list of apertures with a different cursor file for each aperture: .nf cl> bplot @nite1.lst apertures=3,9,14 cursor=@nite1.cur .fi In this case the file "nite1.cur" is assumed to be a list of individual cursor file names, for instance: .nf cur.03 cur.09 cur.14 .fi that are in one to one correspondence with the range of apertures. .ih REVISIONS .ls BPLOT V2.10.3 The query parameters from SPLOT were added as hidden parameters in BPLOT to allow use of those keys in a batch way. .le .ls BPLOT V2.10 The \fIapertures\fR and \fIband\fR parameters been added to select apertures from multiple spectra and long slit images, and bands from 3D images. Since the task is a script calling \fBsplot\fR, the many revisions to that task also apply. The version in the \fBirs/iids\fR packages selects spectra using the record number extension syntax. .le .ih BUGS The cursor file command keystrokes cannot include any of the cursor mode (CAPITALIZED) keys. This results from the implementation of the cursor mode commands as external to both BPLOT and SPLOT. When first entered, SPLOT will always display an initial plot. BPLOT calls SPLOT once for each aperture in each image and thus produces N(apertures)*N(images) initial plots. The plots are not optional because of the possible confusion a blank screen might cause an inexperienced user. If the initial plots are unwanted they must be edited out of the graphics stream. This can be done as follows, by directing the graphics output of BPLOT to a metacode file and then using GKIEXTRACT to remove only the desired plots from the metacode file: .nf cl> bplot @nite1.lst cursor=curfile >G nite1.mc cl> gkiextract nite1.mc 2x2 | gkimosaic dev=stdplot .fi This assumes that curfile is designed to produce only one plot in addition to the non-optional initial plot. In this case there will be two plots per aperture per image and we extract every other plot starting with the second (as encoded in the range string: "2x2"). .ih SEE ALSO splot, specplot, slist, gkiextract, gkimosaic, implot, graph, ranges .endhelp �������������������������������������������sptable-1.0.pre20180612/src/xonedspec/doc/calibrate.hlp���������������������������������������������0000664�0000000�0000000�00000021344�13310232156�0022374�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.help calibrate Mar93 noao.onedspec .ih NAME calibrate -- Apply extinction corrections and flux calibrations .ih USAGE calibrate input output [records] .ih PARAMETERS .ls input List of input spectra to be calibrated. When using record format extensions the root names are specified, otherwise full image names are used. .le .ls output List of calibrated spectra. If no output list is specified or if the output name is the same as the input name then the calibrated spectra replace the input spectra. When using record format extensions the output names consist of root names to which the appropriate record number extension is added. The record number extension will be the same as the input record number extension. The output spectra are coerced to have real datatype pixels regardless of the pixel type. .le .ls records (imred.irs and imred.iids only) The set of record number extensions to be applied to each input and output root name when using record number extension format. The syntax consists of comma separated numbers or ranges of numbers. A range consists of two numbers separated by a hyphen. This parameter is not queried when record number formats are not used. .le .ls extinct = yes Apply extinction correction if a spectrum has not been previously corrected? When applying an extinction correction, an extinction file is required. .le .ls flux = yes Apply a flux calibration if a spectrum has not been previously calibrated? When applying a flux calibration, sensitivity spectra are required. .le .ls extinction = Extinction file for the observation. Standard extinction files are available in the "onedstds$" directory. .le .ls observatory = ")_.observatory" Observatory at which the spectra were obtained if not specified in the image header by the keyword OBSERVAT. The default is a redirection to the package parameter of the same name. The observatory may be one of the observatories in the observatory database, "observatory" to select the observatory defined by the environment variable "observatory" or the parameter \fBobservatory.observatory\fR, or "obspars" to select the current parameters in the \fBobservatory\fR task. See \fBobservatory\fR for additional information. .le .ls ignoreaps = no Ignore aperture numbers and apply a single flux calibration to all apertures? Normally multiaperture instruments have separate sensitivity functions for each aperture while long slit or Fabry-Perot data use a single sensitivity function where the apertures are to be ignored. The sensitivity spectra are obtained by adding the aperture number as an extension to the sensitivity spectrum root name. When apertures are ignored the specified sensitivity spectrum name is used without adding an extension and applied to all input apertures. .le .ls sensitivity = "sens" The root name for the sensitivity spectra produced by \fBsensfunc\fR. Normally with multiaperture instruments, \fBsensfunc\fR will produce a spectrum appropriate to each aperture with an aperture number extension. If the apertures are ignored (\fIignoreaps\fR = yes) then the sensitivity spectrum specified is used for all apertures and no aperture number is appended automatically. .le .ls fnu = no The default calibration is into units of flux per unit wavelength (F-lambda). If \fIfnu\fR = yes then the calibrated spectrum will be in units of flux per unit frequency (F-nu). .le .ls airmass, exptime If the airmass and exposure time are not in the header nor can they be determined from other keywords in the header then these query parameters are used to request the airmass and exposure time. The values are updated in the input and output images. .le .ih DESCRIPTION The input spectra are corrected for extinction and calibrated to a flux scale using sensitivity spectra produced by the task \fBsensfunc\fR. One or both calibrations may be performed by selecting the appropriate parameter flags. It is an error if no calibration is specified. Normally the spectra should be extinction corrected if also flux calibrating. The image header keywords DC-FLAG (or the dispersion type field in the "multispec" world coordinate system), EX-FLAG, and CA-FLAG are checked for dispersion solution (required), previous extinction correction, and previous flux calibration. If previously calibrated the spectrum is skipped and a new output image is not created. The input spectra are specified by a list of root names (when using record extension format) or full image names. The output calibrated spectra may replace the input spectra if no output spectra list is specified or if the output name is the same as the input name. When using record number extensions the output spectra will have the same extensions applied to the root names as those used for the input spectra. When applying an extinction correction the AIRMASS keyword is sought. If the keyword is not present then the airmass at the time defined by the other header keywords is computed using the latitude of the observatory and observation parameters in the image header. The observatory is first determined from the image under the keyword OBSERVAT. If absent the observatory specified by the task parameter "observatory" is used. See \fBobservatory\fR for further details of the observatory database. If the air mass cannot be determined an error results. Currently a single airmass is used and no correction for changing extinction during the observation is made and adjustment to the middle of the exposure. The task \fBsetairmass\fR provides a correction for the exposure time to compute an effective air mass. Running this task before calibration is recommended. If the airmass is not in the header and cannot be computed then the user is queried for a value. The value entered is then recorded in both the input and output image headers. Also if the exposure time is not found then it is also queried and recorded in the image headers. The extinction correction is given by the factor 10. ** (0.4 * airmass * extinction) where the extinction is the value interpolated from the specified extinction file for the wavelength of each pixel. After extinction correction the EX-FLAG is set to 0. When applying a flux calibration the spectra are divided by the aperture sensitivity which is represented by a spectrum produced by the task \fBsensfunc\fR. The sensitivity spectrum is in units of: 2.5 * Log10 [counts/sec/Ang / ergs/cm2/sec/Ang]. A new spectrum is created in "F-lambda" units - ergs/cm2/sec/Angstrom or "F-nu" units - ergs/cm2/sec/Hz. The sensitivity must span the range of wavelengths in the spectrum and interpolation is used if the wavelength coordinates are not identical. If some pixels in the spectrum being calibrated fall outside the wavelength range of the sensitivity function spectrum a warning message giving the number of pixels outside the range. In this case the sensitivity value for the nearest wavelength in the sensitivity function is used. Multiaperture instruments typically have a separate aperture sensitivity function for each aperture. The appropriate sensitivity function for each input spectrum is selected based on the spectrum's aperture by appending this number to the root sensitivity function spectrum name. If the \fIignoreaps\fR flag is set, however, the aperture number relation is ignored and the single sensitivity spectrum (without extension) is applied. .ih EXAMPLES 1. To flux calibrates a series of spectra replacing the input spectra by the calibrated spectra: cl> calibrate nite1 "" 2. To only extinction correct echelle spectra: cl> calibrate ccd*.ec.imh new//ccd*.ec.imh flux- 3. To flux calibrate a long slit spectrum: .nf cl> dispaxis = 2 cl> calibrate obj.imh fcobj.imh .fi .ih REVISIONS .ls CALIBRATE V2.10.3 This task was revised to operate on 2D and 3D spatial spectra; i.e. long slit and Fabry-Perot data cubes. This task now includes the functionality previously found in \fBlongslit.extinction\fR and \fBlongslit.fluxcalib\fR. A query for the airmass and exposure time is now made if the information is not in the header and cannot be computed from other header keywords. .le .ls CALIBRATE V2.10 This task was revised to operate on nonlinear dispersion corrected spectra and 3D images (the \fBapextract\fR "extras"). The aperture selection parameter was eliminated (since the header structure does not allow mixing calibrated and uncalibrated spectra) and the latitude parameter was replaced by the observatory parameter. The observatory mechanism insures that if the observatory latitude is needed for computing an airmass and the observatory is specified in the image header the correct calibration will be applied. The record format syntax is available in the \fBirs/iids\fR packages. The output spectra are coerced to have real pixel datatype. .le .ih SEE ALSO setairmass, standard, sensfunc, observatory, continuum .endhelp ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������sptable-1.0.pre20180612/src/xonedspec/doc/continuum.hlp���������������������������������������������0000664�0000000�0000000�00000025457�13310232156�0022500�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.help continuum Mar92 noao.onedspec .ih NAME continuum -- Continuum normalize spectra .ih USAGE continuum input output .ih PARAMETERS .ls input Input spectra to be continuum normalized. These may be any combination of echelle, multiaperture, one dimensional, long slit, and spectral cube images. .le .ls output Output continuum normalized spectra. The number of output spectra must match the number of input spectra. \fBOutput\fR may be omitted if \fBlistonly\fR is yes. .le .ls lines = "*", bands = "1" A range specifications for the image lines and bands to be fit. Unspecified lines and bands will be copied from the original. If the value is "*", all of the currently unprocessed lines or bands will be fit. A range consists of a first line number and a last line number separated by a hyphen. A single line number may also be a range and multiple ranges may be separated by commas. .le .ls type = "ratio" Type of output spectra. The choices are "fit" for the fitted function, "ratio" for the ratio of the input spectra to the fit, "difference" for the difference between the input spectra and the fit, and "data" for the data minus any rejected points replaced by the fit. .le .ls replace = no Replace rejected points by the fit in the difference, ratio, and data output types? .le .ls wavescale = yes Wavelength scale the X axis of the plot? This option requires that the spectra be wavelength calibrated. If \fBwavescale\fR is no, the plots will be in "channel" (pixel) space. .le .ls logscale = no Take the log (base 10) of both axes? This can be used when \fBlistonly\fR is yes to measure the exponent of the slope of the continuum. .le .ls override = no Override previously normalized spectra? If \fBoverride\fR is yes and \fBinteractive\fR is yes, the user will be prompted before each order is refit. If \fBoverride\fR is no, previously fit spectra are silently skipped. .le .ls listonly = no Don't modify any images? If \fBlistonly\fR is yes, the \fBoutput\fR image list may be skipped. .le .ls logfiles = "logfile" List of log files to which to write the power series coefficients. If \fBlogfiles\fR = NULL (""), the coefficients will not be calculated. .le .ls interactive = yes Perform the fit interactively using the icfit commands? This will allow the parameters for each spectrum to be adjusted independently. A separate set of the fit parameters (below) will be used for each spectrum and any interactive changes to the parameters for a specific spectrum will be remembered when that spectrum is fit in the next image. .le .ls sample = "*" The ranges of X values to be used in the continuum fits. The units will vary depending on the setting of the \fBwavescale\fR and \fBlogscale\fR parameters. The default units are in wavelength if the spectra have been dispersion corrected. .le .ls naverage = 1 Number of sample points to combined to create a fitting point. A positive value specifies an average and a negative value specifies a median. .le .ls function = spline3 Function to be fit to the spectra. The functions are "legendre" (legendre polynomial), "chebyshev" (chebyshev polynomial), "spline1" (linear spline), and "spline3" (cubic spline). The functions may be abbreviated. The power series coefficients can only be calculated if \fBfunction\fR is "legendre" or "chebyshev". .le .ls order = 1 The order of the polynomials or the number of spline pieces. .le .ls low_reject = 2., high_reject = 0. Rejection limits below and above the fit in units of the residual sigma. .le .ls niterate = 10 Number of rejection iterations. .le .ls grow = 1. When a pixel is rejected, pixels within this distance of the rejected pixel are also rejected. .le .ls markrej = yes Mark rejected points? If there are many rejected points it might be desired to not mark rejected points. .le .ls graphics = "stdgraph" Graphics output device for interactive graphics. .le .ls cursor = "" Graphics cursor input. .le .ih DESCRIPTION A one dimensional function is fit to the continuum of spectra in a list of echelle, multispec, or onedspec format images and then divided into the spectrum to produce continuum normalized spectra. The first two formats will normalize the spectra or orders (i.e. the lines) in each image. In this description the term "spectrum" will refer to a line (in whatever band) of an image while "image" will refer to all spectra in an image. The parameters of the fit may vary from spectrum to spectrum within images and between images. The fitted function may be a legendre polynomial, chebyshev polynomial, linear spline, or cubic spline of a given order or number of spline pieces. The output image is of pixel type real. The line/band numbers (for two/three dimensional images) are written to a list of previously processed lines in the header keywords \fISFIT\fR and \fISFITB\fR of the output image. A subsequent invocation of SFIT will only process those requested spectra that are not in this list. This ensures that even if the output image is the same as the input image that no spectra will be processed twice and permits an easy exit from the task in the midst of processing many spectra without losing any work or requiring detailed notes. The points to be fit in each spectrum are determined by selecting a sample of X values specified by the parameter \fIsample\fR and taking either the average or median of the number of points specified by the parameter \fInaverage\fR. The type of averaging is selected by the sign of the parameter with positive values indicating averaging, and the number of points is selected by the absolute value of the parameter. The sample units will vary depending on the settings of the \fBwavescale\fR and the \fBlogscale\fR parameters. Note that a sample that is specified in wavelength units may be entirely outside the domain of the data (in pixels) if some of the spectra are not dispersion corrected. The syntax of the sample specification is a comma separated, colon delimited list similar to the image section notation. For example, the \fBsample\fR, "6550:6555,6570:6575" might be used to fit the continuum near H-alpha. If \fIlow_reject\fR and/or \fIhigh_reject\fR are greater than zero the sigma of the residuals between the fitted points and the fitted function is computed and those points whose residuals are less than \fI-low_reject\fR * sigma and greater than \fIhigh_reject\fR * sigma are excluded from the fit. Points within a distance of \fIgrow\fR pixels of a rejected pixel are also excluded from the fit. The function is then refit without the rejected points. This rejection procedure may be iterated a number of times given by the parameter \fIniterate\fR. This is how the continuum is determined. If \fIreplace\fR is set then any rejected points from the fitting are replaced by the fit in the data before outputing the difference, ratio, or data. For example with replacing the difference will be zero at the rejected points and the data output will be cleaned of deviant points. A range specification is used to select the \fIlines\fR and \fIbands\fR to be fit. These parameters may either be specified with the same syntax as the \fBsample\fR parameter, or with the "hyphen" syntax used elsewhere in IRAF. Note that a NULL range for \fBlines/bands\fR expands to \fBno\fR lines, not to all lines. An asterisk (*) should be used to represent a range of all of the image lines/bands. The fitting parameters (\fIsample, naverage, function, order, low_reject, high_reject, niterate, grow\fR) may be adjusted interactively if the parameter \fIinteractive\fR is yes. The fitting is performed with the \fBicfit\fR package. The cursor mode commands for this package are described in a separate help entry under "icfit". Separate copies of the fitting parameters are maintained for each line so that interactive changes to the parameter defaults will be remembered from image to image. .ih PROMPTS If several images or lines/bands are specified, the user is asked whether to perform an interactive fit for each spectrum. The response may be \fByes, no, skip, YES, NO\fR or \fBSKIP\fR. The meaning of each response is: .nf yes - Fit the next spectrum interactively. no - Fit the next spectrum non-interactively. skip - Skip the next spectrum in this image. YES - Interactively fit all of the spectra of all of the images with no further prompts. NO Non-interactively fit all chosen spectra of all images. SKIP - This will produce a second prompt, "Skip what?", with the choices: spectrum - skip this spectrum in all images image - skip the rest of the current image all - \fBexit\fR the program This will \fBunlearn\fR the fit parameters for all spectra! cancel - return to the main prompt .fi .ih EXAMPLES 1. To normalize all orders of the echelle spectrum for hd221170 cl> continuum hd221170.ec nhd221170.ec type=ratio Each order of the spectrum is graphed and the interactive options for setting and fitting the continuum are available. The important parameters are low_rejection (for an absorption spectrum), the function type, and the order of the function; these fit parameters are originally set to the defaults in the \fBcontinuum\fR parameter file. A '?' will display a menu of cursor key options. Exiting with 'q' will update the output normalized order for the current image and proceed to the next order or image. The parameters of the fit for each order are initialized to the current values the first time that the order is fit. In subsequent images, the parameters for a order are set to the values from the previous image. The first time an order is fit, the sample region is reset to the entire order. Deleted points are ALWAYS forgotten from order to order and image to image. 2. To do several images at the same time cl> continuum spec*.imh c//spec*.imh Note how the image template concatenation operator is used to construct the output list of spectra. Alternatively: cl> continuum @inlist @outlist where the two list files could have been created with the sections command or by editing. 3. To measure the power law slope of the continuum (fluxed data) cl> continuum uv.* type=ratio logscale+ listonly+ fun=leg order=2 .ih REVISIONS .ls CONTINUUM V2.10.4 The task was expanded to include fitting specified bands in 3D multispec spectra. The task was expanded to include long slit and spectral cube data. .le .ls CONTINUUM V2.10 This task was changed from a script based on \fBimages.fit1d\fR to a task based on \fBsfit\fR. This provides for individual independent continuum fitting in multiple spectra images and for additional flexibility and record keeping. The parameters have been largely changed. .le .ih BUGS The errors are not listed for the power series coefficients. Spectra that are updated when \fBlogscale\fR is yes are written with a linear wavelength scale, but with a log normalized data value. Selection by aperture number is not supported. .ih SEE ALSO sfit, fit1d, icfit, ranges .endhelp �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������sptable-1.0.pre20180612/src/xonedspec/doc/deredden.hlp����������������������������������������������0000664�0000000�0000000�00000016442�13310232156�0022223�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.help deredden Feb94 noao.onedspec .ih NAME deredden -- Apply interstellar reddening correction .ih USAGE deredden input output [records] value .ih PARAMETERS .ls input List of input spectra to be dereddened. When using record format extensions the root names are specified, otherwise full image names are used. .le .ls output List of derreddened spectra. If no output list is specified then the input spectra are modified. Also the output name may be the same as the input name to replace the input spectra by the calibrated spectra. When using record format extensions the output names consist of root names to which the appropriate record number extension is added. The record number extension will be the same as the input record number extension. .le .ls records (imred.irs and imred.iids only) The set of record number extensions to be applied to each input and output root name when using record number extension format. The syntax consists of comma separated numbers or ranges of numbers. A range consists of two numbers separated by a hyphen. This parameter is not queried when record number formats are not used. .le .ls value Extinction parameter value as selected by the type parameter. This value may be a visual extinction, A(V), the color excess between B and V, E(B-V), or the logarithmic H beta extinction. These quantities are discussed further below. .le .ls R = 3.1 The ratio of extinction at V, A(V), to color excess between B and V, E(B-V). .le .ls type = "E(B-V)" The type of extinction parameter used. The values may be: .ls A(V) The absolute extinction at the V band at 5550 Angstroms. .le .ls E(B-V) The color excess between the B and V bands. .le .ls c The logarithmic H beta extinction. .le .le .ls apertures = "" List of apertures to be selected from input one dimensional spectra to be calibrated. If no list is specified then all apertures are corrected. The syntax is the same as the record number extensions. This parameter is ignored for N-dimensional spatial spectra such as calibrated long slit and Fabry-Perot data. .le .ls override = no, uncorrect = yes If a spectrum has been previously corrected it will contain the header parameter DEREDDEN. If this parameter is present and the override parameter is no then a warning will be issued and no further correction will be applied. The override parameter permits overriding this check. If overriding a previous correction the \fIuncorrect\fR parameter determines whether the spectra are first uncorrected to the original values before applying the new correction. If \fIuncorrect\fR is yes then the image header DEREDDEN parameter will refer to a correction from the original data while if it is no then the new correction is differential and the keyword will only reflect the last correction. When correcting individual spectra separately in a multispectra image with different extinction parameters the uncorrect parameter should be no. .le .ih DESCRIPTION The input spectra are corrected for interstellar extinction, or reddening, using the empirical selective extinction function of Cardelli, Clayton, and Mathis, \fBApJ 345:245\fR, 1989, (CCM). The function is defined over the range 0.3-10 inverse microns or 100-3333 nanometers. If the input data extend outside this range an error message will be produced. The extinction function requires two parameters, the absolute extinction at 5550A, A(V), and the ratio, R(V), of this extinction to the color excess between 4350A and 5550A, E(B-V). One of the input task parameters is R(V). If it is not known one may use the default value of 3.1 typical of the average interstellar extinction. The second input parameter is chosen by the parameter \fItype\fR which may take the values "A(V)", "E(B-V)", or "c". The value of the parameter is specified by the parameter \fIvalue\fR. If A(V) is used then the CCM function can be directly evaluated. If E(B-V) is used then A(V) is derived by: .nf (1) A(V) = R(V) * E(B-V) .fi For planetary nebula studies the logarithmic extinction at H beta, denoted as c, is often determined instead of E(B-V). If this type of input is chosen then A(V) is derived by: .nf (2) A(V) = R(V) * c * (0.61 + 0.024 * c). .fi This relation is based on the relation betwen E(B-V) and c computed by Kaler and Lutz, \fBPASP 97:700\fR, 1985 to include corrections between the monochromatic parameter c and the broadband parameter E(B-V). In particular the function is a least squares fit to the values of c and E(B-V) in Table III of the form: .nf (3) E(B-V) = c * (A + B * c) .fi The input spectra are specified by a list of root names (when using record extension format) or full image names. They are required to be dispersion corrected (DC-FLAG >= 0) and not previously corrected (DEREDDEN absent). Spectra not satisfying these requirements are skipped with a warning. The DEREDDEN flag may be overridden with the \fIoverride\fR parameter. This may be done if different extinction parameters are required for different spectra in the same multiple spectrum image or if a new correction is to be applied. The \fIuncorrect\fR parameter determines whether the previous correction is removed so that the final correction is relative to the original data or if the new correction is differential on the previous correction. Note that if applying separate corrections to different spectra in a single multispectral image then override should be yes and uncorrect should be no. A subset of apertures to be corrected may be selected from one dimensional spectra with the \fIapertures\fR parameter. Long slit or other higher dimensional spatially sampled spectra are treated as a unit. The output calibrated spectra may replace the input spectra if no output spectra list is specified or if the output name is the same as the input name. When using record number extensions the output spectra will have the same extensions applied to the root names as those used for the input spectra. Note that by specifying a negative extinction parameter this task may be used to add interstellar extinction. .ih EXAMPLES 1. To deredden a spectrum with an extinction of 1.2 magnitudes at V: .nf cl> deredden obj1.ms drobj1.ms 1.2 type=A .fi 2. To deredden a spectrum in place with a color excess of 0.65 and and R(V) value of 4.5: .nf cl> deredden obj2.ms obj2.ms R=4.5 E(B-V): .65 .fi 3. To deredden a series of IRS planetary nebula spectra using the H beta extinction in the irs package: .nf cl> deredden pn12 drpn12 1-5,12-14 type=c c: 1.05 .fi 4. To redden a spectrum: .nf cl> deredden artspec artspec -1.2 type=A .fi 5. To deredden a long slit or Fabry-Perot spectrum either DISPAXIS must be in the image header or be specified in the package parameters. The summing parameters are ignored. .nf cl> deredden obj1 drobj1 1.2 type=A .fi .ih REVISIONS .ls DEREDDEN V2.10.3 Extended to operate on two and three dimensional spatial spectra such as calibrated long slit and Fabry-Perot data. An option was added to allow a previous correction to be undone in order to keep the DEREDDEN information accurate relative to the original data. .le .ls DEREDDEN V2.10 This task is new. .le .ih NOTES Since there can be only one deredding flag in multispectral images one needs to override the flag if different spectra require different corrections and then only the last correction will be recorded. .ih SEE ALSO calibrate .endhelp ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������sptable-1.0.pre20180612/src/xonedspec/doc/dispcor.hlp�����������������������������������������������0000664�0000000�0000000�00000061742�13310232156�0022117�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.help dispcor Oct92 noao.onedspec .ih NAME dispcor -- Dispersion correct and resample spectra .ih USAGE dispcor input output [records] .ih PARAMETERS .ls input List of input spectra or root names to be dispersion corrected. These may be echelle or non-echelle spectra, the task will determine which from the database dispersion functions. When using the record number extension format, record number extensions will be appended to each root name in the list. .le .ls output List of dispersion corrected output spectra or root names. When using the record number extension format, record number extensions will be appended to each root name in the list. The output extension will be the same as the input extension. If "no" output list is specified then the output spectrum will replace the input spectrum after dispersion correction. .le .ls records (imred.irs and imred.iids only) List of records or ranges of records to be appended to the input and output root names when using record number extension format. The syntax of this list is comma separated record numbers or ranges of record numbers. A range consists of two numbers separated by a hyphen. A null list may be used if no record number extensions are desired. This is a positional query parameter only if the record format is specified. .le .ls linearize = yes Interpolate the spectra to a linear dispersion sampling? If yes, the spectra will be interpolated to a linear or log linear sampling using the linear dispersion parameters specified by other parameters. If no, the nonlinear dispersion function(s) from the dispersion function database are assigned to the input image world coordinate system and the spectral data are not interpolated. .le .ls database = "database" Database containing dispersion solutions created by \fBidentify\fR or \fBecidentify\fR. If the spectra have been previous dispersion corrected this parameter is ignored unless a new reference spectra are defined. .le .ls table = "" Wavelength coordinate table or reference image. Elements in this optional table or reference image override the wavelength coordinates given below for specified apertures. See the DISCUSSION for additional information. .le .ls w1 = INDEF, w2 = INDEF, dw = INDEF, nw = INDEF The starting wavelength, ending wavelength, wavelength interval per pixel, and the number of pixels in the output spectra. Any combination of these parameters may be used to restrict the wavelength coordinates of the output spectra. If two or more have the value INDEF then suitable defaults based on the number of input pixels and the wavelength range of the reference dispersion solutions are used. These defaults may either come from all spectra, all spectra of the same aperture, or individually for each spectrum depending on the values of the \fIglobal\fR and \fIsamedisp\fR parameters. Note that these parameters are specified in linear units even if a logarithmic wavelength scale is selected. The conversion between linear and logarithmic intervals between pixels is given below. These values may be overridden for specified apertures by a wavelength table or reference image. Otherwise these values apply to all apertures. .le .ls log = no Transform to linear logarithmic wavelength coordinates? Linear logarithmic wavelength coordinates have wavelength intervals which are constant in the logarithm (base 10) of the wavelength. Note that if conserving flux this will change the flux units to flux per log lambda interval. Note that if the input spectra are in log sampling then \fIlog\fR=no will resample back to linear sampling and \fIlog\fR=yes will resample keeping the output spectra in log sampling. .le .ls flux = yes Conserve the total flux during interpolation rather than the flux density? If "no", the output spectrum is average of the input spectrum across each output wavelength coordinate. This conserves flux density. If "yes" the input spectrum is integrated over the extent of each output pixel. This conserves the total flux. Note that in this case units of the flux will change; for example rebinning to logrithmic wavelengths will produce flux per log lambda. For flux calibrated data you most likely would not want to conserve flux. .le .ls samedisp = no Use the same dispersion parameters for all apertures? If yes then all apertures in a single image will have the same dispersion parameters. If the \fIglobal\fR parameter is all selected then all spectra in all images will have the same dispersion paramters. This parameter would not normally be used with echelle spectra where each order has a different wavelength coverage. .le .ls global = no Apply global wavelength defaults? Defaults for the INDEF wavelength coordinate parameters are determined if two or less of the wavelength parameters are specified. The defaults are based on the number of pixels and the wavelengths of the first and last pixel as given by the dispersion solution. If this parameter is "no" this is done independently for each input spectrum. If this parameter is "yes" then the maximum number of pixels and the minimum and maximum wavelengths of all the input spectra or those of the same aperture are used to provide defaults for the spectra. The parameter \fIsamedisp\fR determines whether the global coordinates are over all spectra or only those with the same aperture number. The global option is used to have all the dispersion corrected spectra have the same wavelength coordinates without actually specifying the wavelength parameters. .le .ls ignoreaps = no If a reference dispersion solution is not found for an aperture use the first reference dispersion solution and ignore the aperture number? If not ignoring the apertures all spectra must have a matching aperture for the dispersion solution and the task aborts if this is not the case. Ignoring the apertures avoids this abort and instead the first dispersion solution is used. Note this parameter does not mean ignore matches between reference and spectrum aperture numbers but only ignore the aperture number if no matching reference is found. Also if a reference table or image is given and \fIignoreaps\fR=yes then the default dispersion parameters for any aperture not defined by the table or image will be that of the first defined aperture. This can still be overridden by giving explicit values for \fIw1, w2, dw\fR and \fInw\fR. .le .ls confirm = no Confirm the wavelength parameters for each spectrum? If \fIyes\fR the wavelength parameters will be printed and the user will be asked whether to accept them. If the parameters are not acceptable the user will be queried for new values. The confirmation and parameter changes are repeated until an acceptable set of parameters is obtained. When the \fIglobal\fR parameter is \fIyes\fR changes to the wavelength parameters will remain in effect until changed again. .le .ls listonly = no List the dispersion coordinates only? If set then the dispersion coordinates are listed but the spectra are not dispersion corrected. This may be used to determine what the default wavelengths would be based on the dispersion solutions. .le .ls verbose = yes Print the dispersion function and coordinate assignments? .le .ls logfile = "" Log file for recording the dispersion correction operations. If no file name is given then no log information is recorded. .le .ih DESCRIPTION The dispersion coordinate systems of the input spectra are set or changed in the output spectra. The output spectra may be the same as the input spectra if no output spectra are specified or the output name is the same as the input name. The input and output spectra are specified by image templates or lists. In the \fBirs/iids\fR packages the input and output spectra are specified as root names and the record numbers are specified by the \fIrecord\fR parameter. The records are given as a set of comma separate single numbers or ranges of hyphen separated numbers. If no records are specified then the input and output images are assumed to be full names. The dispersion coordinate system is defined either in the image header or by dispersion functions in the specified database. To use reference spectra dispersion functions they must first be assigned to the image with \fBidentify (reidentify)\fR, \fBecidentify (ecreidentify)\fR, \fBrefspectra\fR, or \fBhedit\fR. These tasks define the image header keywords REFSPEC1, REFSPEC2, REFSHFT1, and REFSHFT2. The test which determines whether to use the current dispersion coordinate system or reference spectra dispersion solutions is the presence of the REFSPEC1 keyword. Since it is an error to apply a dispersion function to data which have already been dispersion corrected the any dispersion function keywords are deleted after use and a record of them entered in sequential image header keywords beginning with DCLOG. Dispersion functions are specified by one or both of the reference spectrum image header keywords REFSPEC1 and REFSPEC2 containing the name of calibration spectra with dispersion function solutions (either echelle dispersion functions from \fBecidentify\fR or non-echelle dispersion functions from \fBidentify\fR) in the database. There must be a dispersion function for each aperture in the input spectrum unless the \fIignoreaps\fR flag is set. If the flag is not set the task will abort if a matching aperture is not found while if it is set spectra without a matching aperture in the reference dispersion solutions will use the first dispersion solution. Note that aperture number matching is done in both cases and the \fIignoreaps\fR parameter only applies to non-matching spectra. The common situation for using the \fIignoreaps\fR option is when there is a single reference dispersion solution which is to be applied to a number of spectra with different aperture numbers; hence effectively ignoring the reference spectrum aperture number. If two reference spectra are specified the names may be followed by a weighting factor (assumed to be 1 if missing). The wavelength of a pixel is then the weighted averge of the wavelengths of the two dispersion functions. The task \fBrefspectra\fR provides a number of ways to assign reference spectra. Note, however, that these assignments may be made directly using the task \fBhedit\fR or with some other task or script if none of the methods are suitable. Also note that \fBidentify\fR and \fBreidentify\fR add the REFSPEC1 keyword refering to the image itself when a database entry is written. In addition to the one or two reference dispersion functions for each input aperture there may also be image header keywords REFSHFT1 and REFSHFT2 specifying reference spectra whose dispersion function zero point shifts (the "shift" parameter in the database files) are to be applied to the reference dispersion functions. The shifts from REFSHFT1 will be applied to the dispersion functions from REFSPEC1 and similarly for the second dispersion functions. The reference shifts need not be present for every aperture in a multispectrum image. By default the mean shift from all the reference apertures having a zero point shift is applied to all the reference dispersion functions. If the REFSHFT keyword has the modifier word "nearest" following the spectrum name then the shift from the nearest aperture in spatial position (from the aperture extraction limits in the original 2D spectrum as recorded in the 6th and 7th fields of the APNUM keywords) is used for a particular input aperture. If the modifier word is "interp" then the nearest two apertures are used to interpolate a zero point shift spatially. The purpose of the reference shift keywords is to apply a wavelength zero point correction to the reference dispersion functions determined from separate arc calibration observations using a few apertures taken at the same time as object observations. For example, consider multifiber observations in which one or more fibers are assigned to arc lamps at the same time the other fibers are used to observe various objects. The basic dispersion reference, the REFSPEC keywords, will come from arc observations taken through all the fibers. The arc fibers used during an object observation are then calibrated against their corresponding fibers in the arc calibration observations to determine a zero point shift. The REFSHFT keywords will contain the name of the object spectrum itself and the shifts from the simultaneous arc fibers will be interpolated spatially to the nonarc object fibers and applied to the dispersion functions from the arc calibrations for those fibers. The reference shift keywords are currently added with \fBhedit\fR and zero point shifts computed with \fBidentify/reidentify\fR. The complexities of this have been hidden in the multifiber \fBimred\fR instrument reduction packages. The reference shift correction feature was added primarily for use in those reduction packages. If the \fIlinearize\fR parameter is no the dispersion functions, weights, and shifts are transfered from the database to the world coordinate system keywords in the image header. Except for printing processing information that is all that is done to the spectra. If the \fIlinearize\fR parameter is yes the spectra are interpolated to a linear wavelength scale and the dispersion coordinate system in the header is set apprpriately. A linear wavelength coordinate system is defined by a starting wavelength, an ending wavelength, a wavelength interval per pixel, and the number of pixels. These four parameters actually overspecify the coordinate system and only three of these values are needed to define it. The output coordinate system is specified by giving a set or subset of these parameters using the parameters \fIw1\fR, \fIw2\fR, \fIdw\fR, and \fInw\fR. When the \fIlog\fR option is used these parameters are still specified and computed in non-log units but the effective interval per pixel is .nf dw_log = (log10(w2) - log10(w1)) / (nw - 1) dw_log = (log10(w1+dw*(nw-1)) - log10(w1)) / (nw - 1) .fi In other words, the logarithmic interval divides the starting and ending wavelength into the required number of pixels in log step. To avoid confusion in this case it is best to specify the starting and ending wavelengths (in non-log units) and the number of pixels. Note that if \fIlog\fR=yes the input spectra in either linear or log sampling will be resampled to produces an output spectrum in log sampling. Similarly, if \fIlog\fR=no the input spectra will be resampled to linear sampling. This means that log sampled input spectra will be resampled to to linear sampling. Default values for any parameters which are not specified, by using the value INDEF, are supplied based on the wavelengths of the first and last pixel as given by the dispersion function and the number of pixels in the input image. The defaults may either be determined separately for each spectrum (\fIglobal\fR = \fIno\fR), from all spectra with the same aperture (\fIglobal\fR = \fIyes\fR and \fIsamedisp\fR = \fIno\fR), or from all the spectra (\fIglobal\fR = \fIyes\fR and \fIsamedisp\fR = \fIyes\fR). As indicated, the parameter \fIsamedisp\fR determines whether defaults are determined independently for each aperture or set the same for all apertures. Another way to specify the wavelengths when there are many apertures is to use a wavelength table or reference image. If an spectrum image name is specified with the \fItable\fR parameter then the dispersion parameters for each apertures are set to be the same as the reference spectrum. Alternatively, a text file table consisting of lines containing an aperture number, the starting wavelength, the ending wavelength, the wavelength interval per pixel, and the number of output pixels may be specified. Any of these values may be specified as INDEF (though usually the aperture number is not). One way to view the wavelength table/reference spectrum is that an entry in the wavelength table/reference spectrum overrides the values of the parameters \fIw1\fR, \fIw2\fR, \fIdw\fR, and \fInw\fR, which normally apply to all apertures, for the specified aperture. The wavelength table is used to specify explicit independent values for apertures. The global mechanism can supply independent values for the INDEF parameters when the \fIsamedisp\fR parameter is no. If one wishes to verify and possibly change the defaults assigned, either globally or individually, the \fIconfirm\fR flag may be set. The user is asked whether to accept these values. By responding with no the user is given the chance to change each parameter value. Then the new parameters are printed and the user is again asked to confirm the parameters. This is repeated until the desired parameters are set. When the defaults are not global the changed parameters will not be used for the next spectrum. When the global option is used any changes made are retained (either for all apertures or independently for each aperture) until changed again. When adjusting the wavelengths the user should specify which parameter is free to change by entering INDEF. If none of the parameters are specified as INDEF then those values which were not changed, i.e. by accepting the current value, are the first to be changed. Once the wavelength scale has been defined the input spectrum is interpolated for each output pixel. Output wavelengths outside the range of the input spectrum are set to zero. The default interpolation function is a 5th order polynomial. The choice of interpolation type is made with the package parameter "interp". It may be set to "nearest", "linear", "spline3", "poly5", or "sinc". Remember that this applies to all tasks which might need to interpolate spectra in the \fBonedspec\fR and associated packages. For a discussion of interpolation types see \fBonedspec\fR. When it is desired to conserve total flux, particularly when the dispersion is significantly reduced, the parameter \fIflux\fR is set to yes and the output pixel value is obtained by integrating the interpolation function across the wavelength limits of the output pixel. If it is set to no then the flux density is conserved by averaging across the output pixel limits. The input spectrum name, reference spectra, and the wavelength parameters will be printed on the standard output if the \fIverbose\fR parameter is set and printed to a log file if one is specified with the \fIlogfile\fR parameter. If one wishes to only check what wavelengths will be determined for the defaults without actually dispersion correcting the spectra the \fIlistonly\fR flag may be set. Other tasks which may be used to change the dispersion coordinate system are \fBscopy\fR, \fBspecshift\fR, and \fBsapertures\fR. .ih EXAMPLES In the examples when the task is used in the IRS and IIDS packages, shown with the "ir>" prompt the spectra have a record number extension image name format and the records parameter must be specified. In the other case shown with the "on>" prompt the records parameter is not used. 1. Dispersion correct spectra so that they have the same number of pixels and the wavelengths limits are set by the reference spectra. .nf ir> dispcor spec dcspec 9,10,447-448 dcspec.0009: ap = 0, w1 = 5078.84, w2 = 6550.54, dw = 1.797, nw = 820 dcspec.0010: ap = 1, w1 = 5078.71, w2 = 6552.81, dw = 1.800, nw = 820 dcspec.0447: ap = 0, w1 = 5082.57, w2 = 6551.45, dw = 1.794, nw = 820 dcspec.0448: ap = 1, w1 = 5082.03, w2 = 6553.66, dw = 1.797, nw = 820 on> dispcor allspec.ms dcallspec.ms dcallspec.ms: ap = 1, w1 = 5078.84, w2 = 6550.54, dw = 1.797, nw = 820 dcallspec.ms: ap = 2, w1 = 5078.71, w2 = 6552.81, dw = 1.800, nw = 820 dcallspec.ms: ap = 3, w1 = 5082.57, w2 = 6551.45, dw = 1.794, nw = 820 dcallspec.ms: ap = 4, w1 = 5082.03, w2 = 6553.66, dw = 1.797, nw = 820 .fi 2. Confirm and change assignments. .nf on> dispcor spec* %spec%new%* confirm+ new009: ap = 0, w1 = 5078.84, w2 = 6550.54, dw = 1.797, nw = 820 Change wavelength coordinate assignments? (yes): Starting wavelength (5078.8421234): 5070 Ending wavelength (6550.535123): Wavelength interval per pixel (1.79693812): Number of output pixels (820): INDEF new009: ap = 0, w1 = 5070., w2 = 6550.53, dw = 1.795, nw = 826 Change wavelength coordinate assignments? (yes): no new010: ap = 1, w1 = 5078.71, w2 = 6552.81, dw = 1.800, nw = 820 Change wavelength coordinate assignments? (no): yes Starting wavelength (5078.7071234): 5100 Ending wavelength (6550.805123): 6500 Wavelength interval per pixel (1.79987512): INDEF Number of output pixels (820): INDEF new010: ap = 1, w1 = 5100., w2 = 6500., dw = 1.797, nw = 780 Change wavelength coordinate assignments? (yes): no new447: ap = 0, w1 = 5082.57, w2 = 6551.45, dw = 1.793, nw = 820 Change wavelength coordinate assignments? (yes): no new448: ap = 1, w1 = 5082.03, w2 = 6553.66, dw = 1.797, nw = 820 Change wavelength coordinate assignments? (no): .fi 3. Confirm global assignments and do dispersion correction in place. record format. .nf ir> dispcor irs "" 9,10,447,448 confirm+ global+ samedisp+ irs.0009: ap = 0, w1 = 5078.71, w2 = 6553.66, dw = 1.801, nw = 820 Change wavelength coordinate assignments? (yes): Starting wavelength (5078.7071234): 5100 Ending wavelength (6553.664123): 6500 Wavelength interval per pixel (1.80092412): Number of output pixels (820): irs.0009: ap = 0, w1 = 5100., w2 = 6500., dw = 1.799, nw = 779 Change wavelength coordinate assignments? (yes): no irs.0010: ap = 1, w1 = 5100., w2 = 6500., dw = 1.799, nw = 779 Change wavelength coordinate assignments? (no): irs.0447: ap = 0, w1 = 5100., w2 = 6500., dw = 1.799, nw = 779 Change wavelength coordinate assignments? (no): irs.0448: ap = 1, w1 = 5100., w2 = 6500., dw = 1.799, nw = 779 Change wavelength coordinate assignments? (no): .fi 4. Make a nonlinear dispersion correction in place. .nf on> dispcor spec* "" linearize=no verbose- logfile=logfile .fi 5. Apply a single dispersion solution to a set of record number format images. ir> dispcor nite101 dcnite101 "1-10" ignore+ confirm- .ih REVISIONS .ls DISPCOR V2.11.3 Long slit and data cubes can be used with this task to either resample using the existing WCS or to use a single dispersion function from IDENTIFY. It uses the first one found. .le .ls DISPCOR V2.10.3 Provision was added for IDENTIFY dispersion solutions consisting of only a shift (as produced by the 'g' key in IDENTIFY or the refit=no flag in REIDENTIFY) to be applied to previously LINEARIZED spectra. Thus it is possible to use IDENIFY/REIDENTIFY to automatically compute a zero point shift based on 1 or more lines and then shift all the spectra to that zero point. DISPCOR will now allow multiple uses of IDENTIFY dispersion solutions in a simple way with but with continuing protection against accidental multiple uses of the same dispersion solutions. When a spectrum is first dispersion corrected using one or more reference spectra keywords the dispersion flag is set and the reference spectra keywords are moved to DCLOGn keywords. If DISPCOR is called again without setting new reference spectra keywords then the spectra are resampled (rebinned) using the current coordinate system. If new reference spectra are set then DISPCOR will apply these new dispersion functions. Thus the user now explicitly enables multiple dispersion functions by adding reference spectra keywords and DISPCOR eliminates accidental multiple uses of the same dispersion function by renaming the reference spectra. The renamed keywords also provide a history. The flux conservation option now computes an average across the output pixel rather than interpolating to the middle of the output pixel when \fIflux\fR is no. This preserves the flux density and includes all the data; i.e. a coarse resampling will not eliminate features which don't fall at the output pixel coordinates. Some additional log and verbose output was added to better inform the user about what is done. Better error information is now printed if a database dispersion function is not found. .le .ls DISPCOR V2.10 This is a new version with many differences. It replaces the previous three tasks \fBdispcor, ecdispcor\fR and \fBmsdispcor\fR. It applies both one dimensional and echelle dispersion functions. The new parameter \fIlinearize\fR selects whether to interpolate the spectra to a uniform linear dispersion (the only option available previously) or to assign a nonlinear dispersion function to the image without any interpolation. The interpolation function parameter has been eliminated and the package parameter \fIinterp\fR is used to select the interpolation function. The new interpolation type "sinc" may be used but care should be exercised. The new task supports applying a secondary zero point shift spectrum to a master dispersion function and a spatial interpolation of the shifts when calibration spectra are taken at the same time on a different region of the same 2D image. The optional wavelength table may now also be an image to match dispersion parameters. The \fIapertures\fR and \fIrebin\fR parameters have been eliminated. If an input spectrum has been previously dispersion corrected it will be resampled as desired. Verbose and log file parameters have been added to log the dispersion operations as desired. The record format syntax is available in the \fBirs/iids\fR packages. .le .ih SEE ALSO package, refspectra, scopy, specshift, sapertures .endhelp ������������������������������sptable-1.0.pre20180612/src/xonedspec/doc/disptrans.hlp���������������������������������������������0000664�0000000�0000000�00000017160�13310232156�0022456�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.help disptrans Aug94 noao.onedspec .ih NAME disptrans -- Transform dispersion units and apply air correction .ih USAGE disptrans input output units .ih PARAMETERS .ls input List of dispersion calibrated input spectra to be dispersion transformed. .le .ls output List of output dispersion transformed spectra. If given the input names (or a null list), each input spectrum will be replaced by the transformed output spectrum. .le .ls units Output dispersion units. A wide range of dispersion units may be specified and they are described in the UNITS section. .le .ls error = 0.01 Maximum error allowed in the output dispersion transformation expressed as a pixel error; that is, the equivalent pixel shift in the output dispersion function corresponding to the maximum difference between the exact transformation and the dispersion function approximation. The smaller the allowed error the higher the order of dispersion function used. .le .ls linearize = no Resample the spectrum data to linear increments in the output dispersion system? If no then the output dispersion function is stored in the spectrum header and if yes the spectrum is resampled into the same number of pixels over the same dispersion range but in even steps of the output dispersion units. .le .ls verbose = yes Print a log of each spectrum transformed to the standard output? .le .ls air = "none" (none|air2vac|vac2air) Apply an air to vacuum or vacuum to air conversion? It is the responsibility of the user to know whether the input dispersion is in air or vacuum units and to select the appropriate conversion. The conversion types are "none" for no conversion, "air2vac" to convert from air to vacuum, and "vac2air" to convert from vacuum to air. .le .ls t = 15, p = 760, f = 4 Temperture t in degrees C, pressure p in mmHg, and water vapour pressure f in mmHg for the air index of refraction. .le OTHER PARAMETERS .ls interp = "poly5" (nearest|linear|poly3|poly5|spline3|sinc) Spectrum interpolation type used when spectra are resampled. The choices are: .nf nearest - nearest neighbor linear - linear poly3 - 3rd order polynomial poly5 - 5th order polynomial spline3 - cubic spline sinc - sinc function .fi .le .ih DESCRIPTION The dispersion function in the input spectra, y = f(x) where x is the pixel coordinate and y is the input dispersion coordinate, is transformed to y' = g(x) where y' is in the new dispersion units. This is done by evaluating the input dispersion coordinate y at each pixel, applying an air to vacuum or vacuum to air conversion if desired, and applying the specified unit transformation y' = h(y). Since the transformations are nonlinear functions and the output dispersion function must be expressed in polynomial form, the function g(x) is determined by fitting a cubic spline to the set of x and y' values. The lowest number of spline pieces is used which satisfies the specified error. Note that this error is not a random error but difference between the smooth fitted function and the smooth dispersion function in the header. As a special case, the first fit tried is a linear function. If this satisfies the error condition then a simpler dispersion description is possible. Also this is appropriate for dispersion units which are simply related by a scale change such as Angstroms to nanometers or Hertz to Mev. The error condition is that the maximum difference between the exact or analytic (the air/vacuum conversion is never exact) transformation and the fitted function value at any pixel be less than the equivalent shift in pixel coordinate evaluated at that point. The reason for using an error condition in terms of pixels is that it is independent of the dispersion of the spectra and the resolution of spectra is ultimately limited by the pixel sampling. After the new dispersion function is determined the function is either stored in the coordinate system description for the spectrum or used to resample the pixels to linear increments in the output dispersion units. The resampling is not done if the new dispersion function is already linear as noted above. The sampling uses the mean value over the input spectrum covered by an output spectrum pixel (it is flux per unit dispersion element preserving as opposed to flux/counts preserving). The linear sampling parameters are limited to producing the same number of output pixels as input pixels over the same range of dispersion. If one wants to have more control over the resampling then the \fIlinearize\fR parameter should be set to no and the task \fBdispcor\fR used on the output spectrum. Note that an alternative to using this task is to do the original dispersion calibration (based on calibration spectra) with IDENTIFY and DISPCOR in the desired units. However, currently the standard lines lists are in Angstroms. There are, however, linelists for He-Ne-Ar, Th-Ar, and Th in vacuum wavelengths. .ih UNITS The dispersion units are specified by strings having a unit type from the list below along with the possible preceding modifiers, "inverse", to select the inverse of the unit and "log" to select logarithmic units. For example "log angstroms" to select the logarithm of wavelength in Angstroms and "inv microns" to select inverse microns. The various identifiers may be abbreviated as words but the syntax is not sophisticated enough to recognized standard scientific abbreviations except for those given explicitly below. .nf angstroms - Wavelength in Angstroms nanometers - Wavelength in nanometers millimicrons - Wavelength in millimicrons microns - Wavelength in microns millimeters - Wavelength in millimeters centimeter - Wavelength in centimeters meters - Wavelength in meters hertz - Frequency in hertz (cycles per second) kilohertz - Frequency in kilohertz megahertz - Frequency in megahertz gigahertz - Frequency in gigahertz m/s - Velocity in meters per second km/s - Velocity in kilometers per second ev - Energy in electron volts kev - Energy in kilo electron volts mev - Energy in mega electron volts nm - Wavelength in nanometers mm - Wavelength in millimeters cm - Wavelength in centimeters m - Wavelength in meters Hz - Frequency in hertz (cycles per second) KHz - Frequency in kilohertz MHz - Frequency in megahertz GHz - Frequency in gigahertz wn - Wave number (inverse centimeters) .fi The velocity units require a trailing value and unit defining the velocity zero point. For example to transform to velocity relative to a wavelength of 1 micron the unit string would be: .nf km/s 1 micron .fi .ih AIR/VACUUM CONVERSION The air to vacuum and vacuum to air conversions are obtained by multiplying or dividing by the air index of refraction as computed from the formulas in Allen's Astrophysical Quantities (p. 124 in 1973 edition). These formulas include temperature, pressure, and water vapour terms with the default values being the standard ones. .ih EXAMPLES 1. Convert a spectrum dispersion calibrated in Angstroms to electron volts and resample to a linear sampling. .nf cl> disptrans spec1 evspec1 ev linear+ evspec1: Dispersion transformed to ev. .fi 2. Apply an air to vacuum correction to an echelle spectrum using the default standard temperature and pressure. Don't resample but rather use a nonlinear dispersion function. .nf cl> disptrans highres.ec vac.ec angs air=air2vac vac.ec: Dispersion transformed to angstroms in vacuum with t = 15. C, p = 760. mmHg, f = 4. mmHg. .fi .ih REVISIONS .ls DISPTRANS V2.10.4 New task with this release. .le .ih SEE ALSO dispcor, identify, scopy, dopcor .endhelp ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������sptable-1.0.pre20180612/src/xonedspec/doc/dopcor.hlp������������������������������������������������0000664�0000000�0000000�00000015661�13310232156�0021741�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.help dopcor Jun94 noao.onedspec .ih NAME dopcor -- Apply doppler correction .ih USAGE dopcor input output redshift .ih PARAMETERS .ls input List of input spectra to be doppler corrected. .le .ls output List of doppler corrected spectra. If no output list is specified then the input spectra are modified. Also the output name may be the same as the input name to replace the input spectra by the calibrated spectra. .le .ls redshift Redshift or radial velocity (km/s) to be removed? The spectra are corrected so that the specified redshift is removed; i.e. spectra with a positive velocity are shifted to shorter wavelengths and vice-versa. This parameter may be either a number or an image header keyword with the desired redshift or velocity value. An image header keyword may also have an initial minus sign, '-', to specify the negative of a velocity or the redshift complement (1/(1+z)-1) of a redshift. The choice between a redshift and a velocity is made with the \fIisvelocity\fR parameter. .le .ls isvelocity = no Is the value specified by the \fIredshift\fR parameter a velocity? If no then the value is interpreted as a redshift and if it is yes then it is interpreted as a physical velocity in kilometers per second. Note that this is a relativistic velocity and not c*z! For nearby cosmological velocities users should specify a redshift (z = v_cosmological / c). .le .ls add = no Add doppler correction to existing correction in "multispec" spectra? .le .ls dispersion = yes Apply a correction to the dispersion function? .le .ls flux = no Apply a flux correction? .le .ls factor = 3 Flux correction factor as a power of 1+z when applying a flux correction. .le .ls apertures = "" List of apertures to be corrected. If none are specified then all apertures are corrected. An aperture list consists of comma separated aperture number or aperture number ranges. A range is hypen separated and may include an interval step following the character 'x'. See \fBranges\fR for further information. For N-dimensional spatial spectra such as long slit and Fabry-Perot spectra this parameter is ignored. .le .ls verbose = no Print corrections performed? The information includes the output image name, the apertures, the redshift, and the flux correction factor. .le .ih DESCRIPTION The input spectra (as specified by the input image list and apertures) are corrected by removing a specified doppler shift and written to the specified output images. The correction is such that if the actual shift of the observed object is specified then the corrected spectra will be the rest spectra. The opposite sign for a velocity or the redshift complement (1/(1+z)-1) may be used to add a doppler shift to a spectrum. There are two common usages. One is to take spectra with high doppler velocities, such as cosmological sources, and correct them to rest with respect to the earth. In this case the measured redshift or velocity is specified to "remove" this component. The other usage is to correct spectra to heliocentric or local standard of rest. The heliocentric or LSR velocities can be computed and entered in the image header with the task \fBrvcorrect\fR. In this case it is tempting to again think you are "removing" the velocity so that you specify the velocity as given in the header. But actually what is needed is to "add" the computed standard of rest velocity to the observed spectrum taken with respect to the telescope to place the dispersion in the desired center of rest. Thus, in this case you specify the opposite of the computed heliocentric or LSR velocity; i.e. use a negative. The redshift or space velocity in km/s is specified either as a number or as an image header keyword containing the velocity or redshift. If a number is given it applies to all the input spectra while an image header keyword may differ for each image. The latter method of specifying a velocity is useful if velocity corrections are recorded in the image header. See \fBrvcorrect\fR for example. The choice between a redshift and a space velocity for the \fIredshift\fR parameter is made using the \fIisvelocity\fR parameter. If isvelocity=yes then the header dispersion solution is modified according to the relativistic Doppler correction: lambda_new = lamda_old * sqrt((1 + v/c)/(1 - v/c)) where v is the value of "redshift". If isvelocity=no, \fIredshift\fR is interpreted as a cosmological redshift and the header dispersion solution is modified to give: lambda_new = lamda_old * z where z is the value of "redshift" If the \fIadd\fR parameter is used and the image uses a "multispec" format where the previous doppler factor is stored separately then the new doppler factor is: znew = (1 + z) * (1 + zold) - 1 = z + zold + z * zold where z is the specified doppler factor, zold is the previous one, and znew is the final doppler factor. If the \fIadd\fR parameter is no then the previous correction is replaced by the new correction. Note that for images using a linear or equispec coordinate system the corrections are always additive since a record is not kept of the previous correction. Also any flux correction is made based on the specified doppler correction rather than znew. There are two corrections which may be made and the user selects one or both of these. A correction to the dispersion function is selected with the \fIdispersion\fR parameter. This correction is a term to be applied to the dispersion coordinates defined for the image. \fIThe spectrum is not resampled, only the dispersion coordinate function is affected\fR. A correction to the flux, pixel values, is selected with the \fIflux\fR parameter. This correction is only significant for cosmological redshifts. As such the correction is dependent on a cosmological model as well as whether a total flux or surface brightness is measured. To provide the range of possible corrections the flux correction factor is defined by the \fIfactor\fR parameter as the power of 1+z (where z is the redshift) to be multiplied into the observed pixel values. .ih EXAMPLES 1. To dispersion and flux correct a quasar spectrum with redshift of 3.2 to a rest frame: .nf cl> dopcor qso001.ms qso001rest.ms 3.2 flux+ .fi 2. To correct a set of spectra (in place) to heliocentric rest the task \fBrvcorrect\fR is used to set the VHELIO keyword using an observed velocity of 0. Then: .nf cl> dopcor *.imh "" -vhelio isvel+ .fi 3. To artificially add a redshift of 3.2 to a spectrum the complementary redshift is computed: .nf cl> = 1/(1+3.2)-1 -0.76190476190476 cl> dopcor artspec "" -0.762 flux+ .fi .ih REVISIONS .ls DOPCOR V2.10.3 This task was extended to work on two and three dimensional spatial spectra such as long slit and Fabry-Perot spectra. The \fIadd\fR parameter was added. .le .ls DOPCOR V2.10.2 A sign error in converting velocity to redshift was fixed. A validity check on the velocities and redshifts was added. The documentation was corrected and improved. .le .ls DOPCOR V2.10 This task is new. .le .ih SEE ALSO ranges, rvcorrect .endhelp �������������������������������������������������������������������������������sptable-1.0.pre20180612/src/xonedspec/doc/fitprofs.hlp����������������������������������������������0000664�0000000�0000000�00000044205�13310232156�0022303�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.help fitprofs Mar92 noao.onedspec .ih NAME fitprofs -- Fit 1D profiles to features in image vectors .ih USAGE fitprofs input .ih PARAMETERS .ls input List of input images to be fit. The images may be one dimensional spectra (one or more spectra per image) or long slit spectra. Other types of nonspectral images may also be used and for two dimensional images the fitting direction will be determined from either the keyword DISPAXIS in the image header or the \fIdispaxis\fR parameter. .le .ls lines = "" List of lines, columns, or apertures to be selected from the input image format. The default empty list, "", selects all vectors in the images. The syntax is a list of comma separated numbers or ranges, where a range is a pair of hyphen separated numbers. .le .ls bands = "" List of bands for 3D images. The empty list, "", selects all bands. .le .ls dispaxis = ")_.dispaxis", nsum = ")_.nsum" Parameters for defining vectors in 2D and 3D images. The dispersion axis is 1 for line vectors, 2 for column vectors, and 3 for band vectors. A DISPAXIS parameter in the image header has precedence over the \fIdispaxis\fR parameter. The default values defer to the package parameters of the same name. .le The following are the fitting parameters. .ls region = "" Region of the input vectors to be fit specified as a pair of space separated numbers. The coordinates are defined in terms of the linear image header coordinate parameters. For dispersion corrected spectra this is usually wavelength in Angstroms and for other data it is usually pixels. A fitting region must be specified. .le .ls positions = "" File of initial or fixed profile positions and (optional) peaks, profile types, and widths. The format consists of lines with one or more whitespace separated fields. The fields are the position, peak relative to the continuum with negative values being absorption, profile type of gaussian, lorentzian, or voigt, and the gaussian and/or lorentzian full width at half maximum. Trailing fields may be missing and fields to be set from default parameters or the image data (the peak value) may be given as INDEF. Comments and any additional columns are ignored. The positions and widths are specified in the coordinate units of the image, usually wavelength for dispersion corrected spectra and pixels otherwise. .le .ls background = "" Background values defining the linear background. If not specified the single pixel values nearest the fitting region endpoints are used. Otherwise two whitespace separated values are expected. If a value is a number then that is the background at the lower or upper end of the fitting region (ordered in pixel space not wavelength). The special values "avg(w1,w2,z)" or "med(w1,w2,z)" (note that there can be no whitespace) may be specified, where w1 and w2 are dispersion values, and z is a multiplier. This will take the average or median of pixels within the specified range and multiply the result by the third argument. The dispersion point used for that value in computing the linear background is the average of the dispersion coordinates of the pixels used. .le .ls profile = "gaussian" (gaussian|lorentzian|voigt) Default profile type to be fit when a profile type is not specified in the positions file. The type are "gaussian", "lorentzian", or "voigt". .le .ls gfwhm = 20., lfwhm = 20. Default gaussian and lorentzian full width at half maximum (FWHM). These values are used for the initial and/or fixed width when they are not specified in the position file. .le .le .ls fitbackground = yes Fit the background? If "yes" a linear background across the fitting region will be fit simultaneously with the profiles. If "no" the background will be fixed. .le .ls fitpositions = "all" Position fitting option. This may be "fixed" to fix all positions at their initial values, "single" to fit a single shift to the positions while keeping their separations fixed, or "all" to independently fit all the positions. .le .ls fitgfwhm = "all", fitlfwhm = "all" Profile width fitting options. These may be "fixed" to fix all widths at their initial values, "single" to fit a single scale factor to the initial widths, or "all" to independently fit all the widths. .le The following parameters are used for error estimates as described below in the ERROR ESTIMATES section. .ls nerrsample = 0 Number of samples for the error computation. A value less than 10 turns off the error computation. A value of ~10 does a rough error analysis, a value of ~50 does a reasonable error analysis, and a value >100 does a detailed error analysis. The larger this value the longer the analysis takes. .le .ls sigma0 = INDEF, invgain = INDEF The pixel sigmas are modeled by the formula: .nf sigma**2 = sigma0**2 + invgain * I .fi where I is the pixel value and "**2" means the square of the quantity. If either parameter is specified as INDEF or with a value less than zero then no sigma estimates are made and so no error estimates for the measured parameters is made. .le The following parameters determine the output of the task. .ls components = "" All profiles defined by the position file are simultaneously fit but only a subset of the fitted profiles may be selected for output. A profile or component is identified by the order number in the position file; i.e. the first entry in the position file is 1, the second is 2, etc. The components to be output are specified by a range list. The empty list, "", selects all profiles. .le .ls verbose = yes Print fitting results and record of output images created on the standard output (normally the terminal). The fitting informations is printed to the logfile so there is normally no need to redirect this output. The output may be turned off when the task is run as a background task. .le .ls logfile = "logfile" Logfile for fitting results. If not specified the results will not be logged. .le .ls plotfile = "plotfile" File to contain plot output. The plots show the image vector with overplots of the total fit, the individual components, and the residuals. The plotfile may be examined and manipulated later with tools such as \fBgkimosaic\fR. .le .ls output = "" List of output images. If not specified then no output images are created. If images are specified the list is matched with the input list. .le .ls option = "fit" (fit|difference) Image output option. The choices are "fit" to output the fitted image vector which is the sum of the fitted profiles (without a background), or "difference" to output the data with the profiles subtracted. .le .ls clobber = no, merge = no Clobber or modify any existing output images? If clobbering is not enabled a warning is printed and any existing output images are not modified. If clobbering is enabled then either new images are created if merge is "no" or the new fits are merged with the existing images. Merging is meaningful when only a subset of the input is fit such as selected lines or apertures. .le .ih DESCRIPTION \fBFitprofs\fR fits one dimensional profile functions to image vectors and outputs the fitting parameters, plots, and model or residual image vectors. This is done noninteractively using a file of initial profile positions and widths. Interactive profile fitting may be done with the deblending option of \fBsplot\fR or \fBstsdas.fitting.ngaussfit\fR. The input consists of images in a variety of formats. These include all the spectral formats as well as standard images. For two dimensional images (or the first 2D plane of higher dimensional images) either the lines or columns may be fit with possible summing of adjacent lines or columns to increase the signal-to-noise. A subset of the image apertures, lines, or columns may be specified or all image vectors may be fit. The fitting parameters consist of a fitting region, a list of initial positions, peaks, and widths, initial background endpoints, the fitting function, and the parameters to be fit or constrained. The coordinates and units used for the positions and widths are those defined by the standard linear coordinate header parameters. For dispersion corrected spectra these are generally wavelengths in Angstroms and otherwise they are generally pixels. A fitting region must be specified by a pair of numbers. The background parameter may be left empty to select the pixel values at the endpoints of the fitting region for defining the initial linear background. Or values at the endpoints of the fitting region may be given explicitly in pixel space order (i.e. the first value is for the edge of the fitting region which has smaller pixel coordinate0 Values can also be computed from the data using the functions "avg(w1,w2)" or "med(w1,w2)" where w1 and w2 are dispersion coordinates. The pixels in the specified range are average or medianed and the dispersion point for the linear background is the average of the dispersion coordinates of the pixels. The position list file consists of one or more columns. The format of this file has one or more columns. The columns are the wavelength, the peak value (relative to the continuum with negative values being absorption), the profile type (gaussian, lorentzian, or voigt), and the gaussian and/or lorentzian FWHM. End columns may be missing or INDEF values may be specified to use the default parameter values (the profile and widths) or determine the peak from the data. Below are examples of the file line formats .nf wavelength wavelength peak wavelength peak (gaussian|lorenzian|voigt) wavelength peak gaussian gfwhm wavelength peak lorentzian lfwhm wavelength peak voigt gfwhm wavelength peak voigt gfwhm lfwhm 1234.5 <- Wavelength only 1234.5 -100 <- Wavelength and peak 1234.5 INDEF v <- Wavelength and profile type 1234.5 INDEF g 12 <- Wavelength and gaussian FWHM .fi where peak is the peak value, gfwhm is the gaussian FWHM, and lfwhm is the lorentzian FWHM. This format is the same as used by \fBsplot\fR and also by \fBartdata.mk1dspec\fR (except in the latter case the peak is normalized to a continuum of 1). The profile parameters fit are the central position, the peak amplitude, and the profile widths. The fitting may be constrained in number of ways. The linear background may be fixed or simultaneously fit with the profiles. The profile positions may be fixed, the relative separations fixed but a single zero point shift fit, or all positions may be fit simultaneously. The profile widths may also be fixed, the relative ratios of the widths fixed while fitting a single scale factor, or all widths fit simultaneously. The profile amplitudes are always fit. The fitting technique uses a nonlinear iterative Levenberg-Marquardt algorithm to reduce the Chi-square of the fit. The execution time increases rapidly with the number of profiles fit so there is an effective limit to the number of profiles that can be fit at once. The output includes a number of formats. The fitted parameters are recorded in a logfile (if specified) and printed on the standard output (if the verbose flag is set). This output includes the date, image vector, fitting parameters used, and a table of fitted or derived quantities. The parameters included some quantities relevant to spectral lines but others apply to any image data. The quantities are the profile center, the background or continuum at the center of the profile, the integral or flux of the profile (which is negative for profiles below the background), the equivalent width, the profile peak amplitude or core value, and the profile full width at half maximum. Pure gaussian and lorentzian profiles will have one of the widths set to zero while voigt profiles will have both values. Summary plots are recored in a plotfile (if specified). The plots show the data with the total fit, individual profiles, and residuals overplotted. The plotfile may be examined and printed using the task \fBgkimosaic\fR as well as other tasks which interpret GKI metacode. The final output consists of images in the same format as the input. The images may be of the total fit (sum of profiles without background) or of the difference (residuals) of the data minus the model. .ih ERROR ESTIMATES Error estimates may be computed for the fitted parameters. This requires a model for the pixel sigmas. Currently this model is based on a Poisson statistics model of the data. The model parameters are a constant Gaussian sigma and an "inverse gain" as specified by the parameters \fIsigma0\fR and \fIinvgain\fR. These parameters are used to compute the pixel value sigma from the following formula: .nf sigma**2 = sigma0**2 + invgain * I .fi where I is the pixel value and "**2" means the square of the quantity. If either the constant sigma or the inverse gain are specified as INDEF or with values less than zero then no noise model is applied and no error estimates are computed. Also if the number of error samples is less than 10 then no error estimates are computed. Note that for processed spectra this noise model will not generally be the same as the detector readout noise and gain. These parameters would need to be estimated in some way using the statistics of the spectrum. The use of an inverse gain rather than a direct gain was choosed to allow a value of zero for this parameters. This provides a model with constant uncertainties. The error estimates are computed by Monte-Carlo simulation. The model is fit to the data (using the noise sigmas) and this model is used to describe the noise-free spectrum. A number of simulations, given by the \fInerrsample\fR, are created in which random Gaussian noise is added to the noise-free spectrum based on the pixel sigmas from the noise model. The model fitting is done for each simulation and the absolute deviation of each fitted parameter to model parameter is recorded. The error estimate for the each parameter is then the absolute deviation containing 68.3% of the parameter estimates. This corresponds to one sigma if the distribution of parameter estimates is Gaussian though this method does not assume this. The Monte-Carlo technique automatically includes all effects of parameter correlations and does not depend on any approximations. However the computation of the errors does take a significant amount of time. The amount of time and the accuracy of the error estimates depend on how many simulations are done. A small number of samples (of order 10) is fast but gives crude estimates. A large number (greater than 100) is slow but gives very good estimates. A compromise value of 50 is recommended for many applications. .ih EXAMPLES 1. The following example creates an artificial spectrum and fits it. It requires the \fBartdata\fR and \fBproto\fR packages be loaded. .nf cl> mk1dspec test slope=1 temp=0 lines=testlines nl=20 cl> mknoise test rdnoise=10 poisson=yes cl> fields testlines fields=1,3 > fitlines cl> fitprofs test reg="4000 8000" pos=fitlines # Jul 27 17:49 test - Ap 1: # Nfit=20, background=YES, positions=all, gfwhm=all, lfwhm=all # center cont flux eqw core gfwhm lfwhm 6832.611 1363.188 -13461.8 9.875 -408.339 30.97 0. 7963.674 1507.641 -8193.58 5.435 -395.207 19.48 0. 5688.055 1217.01 -7075.11 5.814 -392.006 16.96 0. 6831.3 1363.02 -7102.01 5.21 -456.463 14.62 0. 7217.335 1412.323 -10110. 7.158 -427.797 22.2 0. 6709.286 1347.437 -4985.06 3.7 -225.346 20.78 0. 6434.317 1312.319 -7121.03 5.426 -342.849 19.51 0. 6130.415 1273.506 -6164. 4.84 -224.146 25.83 0. 4569.375 1074.138 -3904.6 3.635 -183.963 19.94 0. 5656.645 1212.999 -8202.81 6.762 -303.617 25.38 0. 4219.53 1029.458 -5161.64 5.014 -241.135 20.11 0. 4551.424 1071.845 -3802.61 3.548 -139.39 25.63 0. 4604.649 1078.643 -5539.15 5.135 -264.654 19.66 0. 6966.557 1380.294 -11717.5 8.489 -600.581 18.33 0. 4259.019 1034.501 -4280.38 4.138 -213.446 18.84 0. 5952.958 1250.843 -8006.98 6.401 -318.313 23.63 0. 4531.89 1069.351 -712.598 0.6664 -155.197 4.313 0. 7814.418 1488.579 -2926.49 1.966 -164.891 16.67 0. 5310.929 1168.846 -10132.2 8.669 -487.502 19.53 0. 5022.948 1132.066 -7532.8 6.654 -325.594 21.73 0. .fi 2. Suppose there is no obvious continuum level near the fitting region but you want to specify a flat continuum level as the average of pixels in a specified wavelength region. The background region would be specified as .nf background = "avg(4250,4425.3) avg(4250,4425.3)" .fi Note that the value must be given twice to get a flat continuum. .ih REVISIONS .ls FITPROFS V2.11.3 Modified to allow a more general specification of the background. .le .ls FITPROFS V2.11 Modified to include lorentzian and voigt profiles. The parameters and positions file format have changed in this version. A new parameter controls the number of Monte-Carlo samples used in the error estimates. .le .ls FITPROFS V2.10.3 Error estimates based on a simple noise model are now computed. .le .ls FITPROFS V2.10 This task is new. .le .ih TIME REQUIREMENTS The following CPU times were obtained with a Sun Sparcstation I. The number of pixels in the fitting region and the number of lines fit were varied. The worst case of fitting all parameters and a background was considered as well as the constrained case of fitting line positions and a single width with fixed background. .nf Npixels Nprofs Fitbkg Fitpos Fitsig CPU(sec) 100 5 yes all all 1.9 100 10 yes all all 3.3 100 15 yes all all 5.6 100 20 yes all all 9.0 512 5 yes all all 4.7 512 10 yes all all 10.0 512 15 yes all all 17.6 512 20 yes all all 27.8 1000 5 yes all all 8.0 1000 10 yes all all 18.0 1000 15 yes all all 31.8 1000 20 yes all all 50.2 1000 25 yes all all 72.8 1000 30 yes all all 100.2 512 5 no all single 2.8 512 10 no all single 5.3 512 15 no all single 8.6 512 20 no all single 12.8 .fi Crudely this implies CPU time goes as the 1.4 power of the number of profiles and the 0.75 power of the number of pixels. .ih SEE ALSO splot, stsdas.fitting.ngaussfit .endhelp �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������sptable-1.0.pre20180612/src/xonedspec/doc/identify.hlp����������������������������������������������0000664�0000000�0000000�00000102355�13310232156�0022263�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.help identify Jan96 noao.onedspec .ih NAME identify -- Identify features in one dimensional image vectors .ih SUMMARY Features are interactively marked in one dimensional image vectors. The features may be spectral lines when the vector is a spectrum or profile positions when the vector is a spatial cut. A function may be fit to the user coordinates as a function of pixel coordinates. This is primarily used to find dispersion functions for spectra such as arc-line calibration spectra. The profile position measurements are generally used for geometric calibrations. .ih USAGE identify images .ih PARAMETERS .ls images List of images in which to identify features and fit coordinate functions. .le .ls section = "middle line" If an image is not one dimensional or specified as a one dimensional image section then the image section given by this parameter is used. The section defines a one dimensional vector. The image is still considered to be two or three dimensional. It is possible to change the data vector within the program. The section parameter may be specified directly as an image section or in one of the following forms .nf line|column|x|y|z first|middle|last|# [first|middle|last|#]] first|middle|last|# [first|middle|last|#] line|column|x|y|z .fi where each field can be one of the strings separated by | except for # which is an integer number. The field in [] is a second designator which is used with three dimensional data. See the example section for examples of this syntax. Abbreviations are allowed though beware that 'l' is not a sufficient abbreviation. .le .ls database = "database" Database in which the feature data and coordinate functions are recorded. .le .ls coordlist = "linelists$idhenear.dat" User coordinate list consisting of an list of line coordinates. A comment line of the form "# units ", where is one of the understood units names, defines the units of the line list. If no units are specified then Angstroms are assumed. Some standard line lists are available in the directory "linelists$". The standard line lists are described under the topic \fIlinelists\fR. .le .ls units = "" The units to use if no database entry exists. The units are specified as described in .nf cl> help onedspec.package section=units .fi If no units are specified and a coordinate list is used then the units of the coordinate list are selected. If a database entry exists then the units defined there override both this parameter and the coordinate list. .le .ls nsum = "10" Number of lines, columns, or bands across the designated vector axis to be summed when the image is a two or three dimensional spatial spectrum. It does not apply to multispec format spectra. If the image is three dimensional an optional second number can be specified for the higher dimensional axis (the first number applies to the lower axis number and the second to the higher axis number). If a second number is not specified the first number is used for both axes. .le .ls match = -3. The maximum difference for a match between the feature coordinate function value and a coordinate in the coordinate list. Positive values are in user coordinate units and negative values are in units of pixels. .le .ls maxfeatures = 50 Maximum number of the strongest features to be selected automatically from the coordinate list (function 'l') or from the image data (function 'y'). .le .ls zwidth = 100. Width of graphs, in user coordinates, when in zoom mode (function 'z'). .le The following parameters are used in determining feature positions. .ls ftype = "emission" Type of features to be identified. The possibly abbreviated choices are "emission" and "absorption". .le .ls fwidth = 4. Full-width at the base (in pixels) of features to be identified. .le .ls cradius = 5. The maximum distance, in pixels, allowed between a feature position and the initial estimate when defining a new feature. .le .ls threshold = 0. In order for a feature center to be determined the range of pixel intensities around the feature must exceed this threshold. .le .ls minsep = 2. The minimum separation, in pixels, allowed between feature positions when defining a new feature. .le The following parameters are used to fit a function to the user coordinates. The \fBicfit\fR package is used and further descriptions about these parameters may be found under that package. .ls function = "spline3" The function to be fit to the user coordinates as a function of the pixel coordinate. The choices are "chebyshev", "legendre", "spline1", or "spline3". .le .ls order = 1 Order of the fitting function. The order is the number of polynomial terms or number of spline pieces. .le .ls sample = "*" Sample regions for fitting. This is in pixel coordinates and not the user coordinates. .le .ls niterate = 0 Number of rejection iterations. .le .ls low_reject = 3.0, high_reject = 3.0 Lower and upper residual rejection in terms of the RMS of the fit. .le .ls grow = 0 Distance from a rejected point in which additional points are automatically rejected regardless of their residuals. .le The following parameters control the input and output. .ls autowrite = no Automatically write or update the database? If "no" then when exiting the program a query is given if the feature data and fit have been modified. The query is answered with "yes" or "no" to save or not save the results. If \fIautowrite\fR is "yes" exiting the program automatically updates the database. .le .ls graphics = "stdgraph" Graphics device. The default is the standard graphics device which is generally a graphics terminal. .le .ls cursor = "" Cursor input file. If a cursor file is not given then the standard graphics cursor is read. .le The following parameters are queried when the 'b' key is used. .ls crval, cdelt These parameters specify an approximate coordinate value and coordinate interval per pixel when the automatic line identification algorithm ('b' key) is used. The coordinate value is for the pixel specified by the \fIcrpix\fR parameter in the \fBaidpars\fR parameter set. The default value of \fIcrpix\fR is INDEF which then refers the coordinate value to the middle of the spectrum. By default only the magnitude of the coordinate interval is used. Either value may be given as INDEF. In this case the search for a solution will be slower and more likely to fail. The values may also be given as keywords in the image header whose values are to be used. .le .ls aidpars = "" (parameter set) This parameter points to a parameter set for the automatic line identification algorithm. See \fIaidpars\fR for further information. .le .ih CURSOR KEYS .ls ? Clear the screen and print a menu of options. .le .ls a Apply next (c)enter or (d)elete operation to (a)ll features .le .ls b Identify features and find a dispersion function automatically using the coordinate line list and approximate values for the dispersion. .le .ls c (C)enter the feature nearest the cursor. Used when changing the position finding parameters or when features are defined from a previous feature list. .le .ls d (D)elete the feature nearest the cursor. (D)elete all features when preceded by the (a)ll key. This does not affect the dispersion function. .le .ls e Find features from a coordinate list without doing any fitting. This is like the 'l' key without any fitting. .le .ls f (F)it a function of the pixel coordinates to the user coordinates. This enters the interactive function fitting package. .le .ls g Fit a zero point shift to the user coordinates by minimizing the difference between the user and fitted coordinates. The coordinate function is not changed. .le .ls i (I)nitialize (delete features and coordinate fit). .le .ls j Go to the preceding line, column, or band in a 2D/3D or multispec image. .le .ls k Go to the next line, column, or band in a 2D/3D or multispec image. .le .ls l (L)ocate features in the coordinate list. A coordinate function must be defined or at least two features must have user coordinates from which a coordinate function can be determined. If there are features an initial fit is done, then features are added from the coordinate list, and then a final fit is done. .le .ls m (M)ark a new feature using the cursor position as the initial position estimate. .le .ls n Move the cursor or zoom window to the (n)ext feature (same as +). .le .ls o Go to the specified line, column, or band in a 2D/3D or multispec image. For 3D images two numbers are specified. .le .ls p (P)an to the original window after (z)ooming on a feature. .le .ls q (Q)uit and continue with next image. .le .ls r (R)edraw the graph. .le .ls s (S)hift the fit coordinates relative to the pixel coordinates. The user specifies the desired fit coordinate at the position of the cursor and a zero point shift to the fit coordinates is applied. If features are defined then they are recentered and the shift is the average shift. The shift in pixels, user coordinates, and z (fractional shift) is printed. .le .ls t Reset the current feature to the position of the cursor. The feature is \fInot\fR recentered. This is used to mark an arbitrary position. .le .ls u Enter a new (u)ser coordinate for the current feature. When (m)arking a new feature the user coordinate is also requested. .le .ls v Modify the fitting weight of the current feature. The weights are integers with the lowest weight being the default of 1. .le .ls w (W)indow the graph. A window prompt is given and a number of windowing options may be given. For more help type '?' to the window prompt or see help under \fIgtools\fR. .le .ls x Find a zero point shift for the current dispersion function. This is used by starting with the dispersion solution and features from a different spectrum. The mean shift in user coordinates, mean shift in pixels, and the fractional shift in user coordinates is printed. .le .ls y Up to \fImaxfeatures\fR emission peaks are found automatically (in order of peak intensity) and, if a dispersion solution is defined, the peaks are identified from the coordinate list. .le .ls z (Z)oom on the feature nearest the cursor. The width of the zoom window is determined by the parameter \fIzwidth\fR. .le .ls . Move the cursor or zoom window to the feature nearest the cursor. .le .ls 4 + Move the cursor or zoom window to the (n)ext feature. .le .ls 4 - Move the cursor or zoom window to the previous feature. .le Parameters are shown or set with the following "colon commands", which may be abbreviated. To show the value of a parameter type the parameter name alone and to set a new value follow the parameter name by the value. .ls :show file Show the values of all the parameters. If a file name is given then the output is appended to that file. If no file is given then the terminal is cleared and the output is sent to the terminal. .le .ls :features file Print the feature list and the fit rms. If a file name is given then the output is appended to that file. If no file is given then the terminal is cleared and the output is sent to the terminal. .le .ls :coordlist file Set or show the coordinate list file. .le .ls :cradius value Set or show the centering radius in pixels. .le .ls :threshold value Set or show the detection threshold for centering. .le .ls :database name Set or show the database for recording feature records. .le .ls :ftype value Set or show the feature type (emission or absorption). .le .ls :fwidth value Set or show the feature width in pixels. .le .ls :image imagename Set a new image or show the current image. .le .ls :labels value Set or show the feature label type (none, index, pixel, coord, user, or both). None produces no labeling, index labels the features sequentially in order of pixel position, pixel labels the features by their pixel coordinates, coord labels the features by their user coordinates (such as wavelength), user labels the features by the user or line list supplied string, and both labels the features by both the user coordinates and user strings. .le .ls :match value Set or show the coordinate list matching distance. .le .ls :maxfeatures value Set or show the maximum number of features automatically found. .le .ls :minsep value Set or show the minimum separation allowed between features. .le .ls :read name ap Read a record from the database. The record name defaults to the image name and, for 1D spectra, the aperture number defaults to aperture of the current image. .le .ls :write name ap Write a record to the database. The record name defaults to the image name and, for 1D spectra, the aperture number defaults to aperture of the current image. .le .ls :add name ap Add features from a database record. The record name defaults to the image name and, for 1D spectra, the aperture number defaults to aperture of the current image. Only the features are added to any existing list of features. The dispersion function is not read. .le .ls :zwidth value Set or show the zoom width in user units. .le .ls :/help Print additional help for formatting graphs. See help under "gtools". .le .ih DESCRIPTION Features in the input images are identified interactively and assigned user coordinates. A "coordinate function" mapping pixel coordinates to user coordinates may be determined from the identified features. A user coordinate list may be defined to automatically identify additional features. This task is used to measure positions of features, determine dispersion solutions for spectra, and to identify features in two and three dimensional images for mapping a two or three dimensional coordinate transformation. Because of this dual use the terms vector and feature are used rather than spectrum and spectral line. Each image in the input list is considered in turn. If the image is not one dimensional or a one dimensional section of an image then the image section given by the parameter \fIsection\fR is used. This parameter may be specified in several ways as described in the PARAMETERS and EXAMPLES sections. The image section is used to select a starting vector and image axis. If the image is not one dimensional or in multispec format then the number of lines, columns, or bands given by the parameter \fInsum\fR are summed. The one dimensional image vector is graphed. The initial feature list and coordinate function are read from the database if an entry exists. The features are marked on the graph. The image coordinates are in pixels unless a coordinate function is defined, in which case they are in user coordinate units. The pixel coordinate, coordinate function value, and user coordinate for the current feature are printed. The graphics cursor is used to select features and perform various functions. A menu of the keystroke options and functions is printed with the key '?'. The cursor keys and their functions are defined in the CURSOR KEYS section and described further below. The standard cursor mode keys are also available to window and redraw the graph and to produce hardcopy "snaps". There are a number of ways of defining features. They fall into two categories; interactively defining features with the cursor and using automatic algorithms. The 'm' key is the principle interactive feature marking method. Typing 'm' near the position of a feature applies a feature centering algorithm (see \fBcenter1d\fR) and, if a center is found, the feature is entered in the feature list and marked on the spectrum. If the new position is within a distance given by the parameter \fIminsep\fR of a previous feature it is considered to be the same feature and replaces the old feature. Normally the position of a new feature will be exactly the same as the original feature. The coordinate list is searched for a match between the coordinate function value (when defined) and a user coordinate in the list. If a match is found it becomes the default user coordinate which the user may override. The new feature is marked on the graph and it becomes the current feature. The redefinition of a feature which is within the minimum separation may be used to set the user coordinate from the coordinate list. The 't' key allows setting the position of a feature to other than that found by the centering algorithm. The principle automatic feature identification algorithm is executed with the 'b' key. The user is queried for an approximate coordinate value and coordinate interval per pixel. The coordinate value is for the center of the spectrum by default though this may be changed with the \fBaidpars\fR parameters. Only the magnitude of the coordinate interval per pixel is used by default though this also may be changed. Either value may be given as INDEF to do an unconstrained search, however, this will be much slower and more likely to fail. The algorithm searches for matches between the strong lines in the spectrum and lines in the coordinate list. The algorithm is described in the documentation for \fBaidpars\fR. The 'b' key works with no predefined dispersion solution or features. If two or more features are identified, with 'm', spanning the range of the data or if a coordinate function is defined, from a previous solution, then the 'e', 'l', and 'y' keys may be used to identify additional features from a coordinate list. The 'e' key only adds features at the coordinates of the line lists if the centering algorithm finds a feature at that wavelength (as described below). The 'y' key works in reverse by finding the prominent features using a peak finding algorithm and then looking in the coordinate list for entries near the estimated position. Up to a maximum number of features (\fImaxfeatures\fR) will be selected. If there are more peaks only the strongest are kept. In either of these cases there is no automatic fitting and refitting of the dispersion function. The 'l' key combines automatic fits with locating lines from the coordinate list. If two or more features are defined an initial fit is made. Then for each coordinate value in the coordinate list the pixel coordinate is determined and a search for a feature at that point is made. If a feature is found (based on the parameters \fIftype, fwidth\fR, \fIcradius\fR, and \fBthreshold\fR) its user coordinate value based on the coordinate function is determined. If the coordinate function value matches the user coordinate from the coordinate list within the error limit set by the parameter \fImatch\fR then the new feature is entered in the feature list. Up to a maximum number of features, set by the parameter \fImaxfeatures\fR, may be defined in this way. A new user coordinate function is fit to all the located features. Finally, the graph is redrawn in user coordinates with the additional features found from the coordinate list marked. A minimum of two features must be defined for the 'l' key algorithm to work. However, three or more features are preferable to determine changes in the dispersion as a function of position. The 'f' key fits a function of the pixel coordinates to the user coordinates. The type of function, order and other fitting parameters are initially set with the parameters \fIfunction, order, sample, niterate, low_reject, high_reject\fR and \fIgrow\fR.. The value of the function for a particular pixel coordinate is called the function coordinate and each feature in the feature list has a function coordinate value. The fitted function also is used to convert pixel coordinates to user coordinates in the graph. The fitting is done within the interactive curve fitting package which has its own set of interactive commands. For further information on this package see the help material under \fBicfit\fR. If a zero point shift is desired without changing the coordinate function the user may specify the coordinate of a point in the spectrum with the 's' key from which a shift is determined. The 'g' key also determines a shift by minimizing the difference between the user coordinates and the fitted coordinates. This is used when a previously determined coordinate function is applied to a new spectrum having fewer or poorer lines and only a zero point shift can reasonably be determined. Note that the zero point shift is in user coordinates. This is only an approximate correction for shifts in the raw spectra since these shifts are in pixels and the coordinate function should also be appropriately shifted. One a set of features is defined one may select features for various operations. To select feature as the current feature the keys '.', 'n', '+', and '-' are used. The '.' selects the feature nearest the cursor, the 'n' and '+' select the next feature, and the '-' selects the previous feature relative to the current feature in the feature list as ordered by pixel coordinate. These keys are useful when redefining the user coordinate with the 'u' key, changing the fitting weight of a feature with 'v', and when examining features in zoom mode. Features may be deleted with the key 'd'. All features are deleted when the 'a' key immediately precedes the delete key. Deleting the features does not delete the coordinate function. Features deleted in the curve fitting package also are removed from the feature list upon exiting the curve fitting package. It is common to transfer the feature identifications and coordinate function from one image to another. When a new image without a database entry is examined, such as when going to the next image in the input list, changing image lines or columns with 'j', 'k' and 'o', or selecting a new image with the ":image" command, the current feature list and coordinate function are kept. Alternatively, a database record from a different image may be read with the ":read" command. When transferring feature identifications between images the feature coordinates will not agree exactly with the new image feature positions and several options are available to reregister the feature positions. The key 'c' centers the feature nearest the cursor using the current position as the starting point. When preceded with the 'a' key all the features are recentered (the user must refit the coordinate function if desired). As an aside, the recentering function is also useful when the parameters governing the feature centering algorithm are changed. An additional options is the ":add" command to add features from a database record. This does not overwrite previous features (or the fitting functions) as does ":read". The (c)entering function is applicable when the shift between the current and true feature positions is small. Larger shifts may be determined automatically with the 's' or 'x' keys. A zero point shift is specified interactively with the 's' key by using the cursor to indicate the coordinate of a point in the spectrum. If there are no features then the shift is exactly as marked by the cursor. If there are features the specified shift is applied, the features are recentered, and the mean shift for all the features is determined. The 'x' key uses the automatic line identification algorithm (see \fBaidpars\fR) with the constraint that the dispersion is nearly the same and the is primarily a shift in the coordinate zero point. If features are defined, normally by inheritance from another spectrum, then a first pass is done to identify those features in the spectrum. Since this only works when the shifts are significantly less than the dispersion range of the spectrum (i.e. a significant number of features are in common) a second pass using the full coordinate line list is performed if a shift based on the features is not found. After a shift is found any features remaining from the original list are recentered and a mean shift is computed. In addition to the single keystroke commands there are commands initiated by the key ':' (colon commands). As with the keystroke commands there are a number of standard graphics features available beginning with ":." (type ":.help" for these commands). The identify colon commands allow the task parameter values to be listed and to be reset within the task. A parameter is listed by typing its name. The colon command ":show" lists all the parameters. A parameter value is reset by typing the parameter name followed by the new value; for example ":match 10". Other colon commands display the feature list (:features), control reading and writing records to the database (:read and :write), and set the graph display format. The feature identification process for an image is completed by typing 'q' to quit. Attempting to quit an image without explicitly recording changes in the feature database produces a warning message unless the \fIautowrite\fR parameter is set. If this parameter is not set a prompt is given asking whether to save the results otherwise the results are automatically saved. Also the reference spectrum keyword REFSPEC is added to the image header at this time. This is used by \fBrefspectra\fR and \fBdispcor\fR. As an immediate exit the 'I' interrupt key may be used. This does not save the feature information and may leave the graphics in a confused state. .ih DATABASE RECORDS The database specified by the parameter \fIdatabase\fR is a directory of simple text files. The text files have names beginning with 'id' followed by the entry name, usually the name of the image. The database text files consist of a number of records. A record begins with a line starting with the keyword "begin". The rest of the line is the record identifier. Records read and written by \fBidentify\fR have "identify" as the first word of the identifier. Following this is a name which may be specified following the ":read" or ":write" commands. If no name is specified then the image name is used. For 1D spectra the database entry includes the aperture number and so to read a solution from a aperture different than the current image and aperture number must be specified. For 2D/3D images the entry name has the 1D image section which is what is specified to read the entry. The lines following the record identifier contain the feature information and dispersion function coefficients. The dispersion function is saved in the database as a series of coefficients. The section containing the coefficients starts with the keyword "coefficients" and the number of coefficients. The first four coefficients define the type of function, the order or number of spline pieces, and the range of the independent variable (the line or column coordinate along the dispersion). The first coefficient is the function type code with values: .nf Code Type 1 Chebyshev polynomial 2 Legendre polynomial 3 Cubic spline 4 Linear spline .fi The second coefficient is the order (actually the number of terms) of the polynomial or the number of pieces in the spline. The next two coefficients are the range of the independent variable over which the function is defined. These values are used to normalize the input variable to the range -1 to 1 in the polynomial functions. If the independent variable is x and the normalized variable is n, then .nf n = (2 * x - (xmax + xmin)) / (xmax - xmin) .fi where xmin and xmax are the two coefficients. The spline functions divide the range into the specified number of pieces. A spline coordinate s and the nearest integer below s, denoted as j, are defined by .nf s = (x - xmin) / (xmax - xmin) * npieces j = integer part of s .fi where npieces are the number of pieces. The remaining coefficients are those for the appropriate function. The number of coefficients is either the same as the function order for the polynomials, npieces+1 for the linear spline, or npieces + 3 for the cubic spline. 1. Chebyshev Polynomial The polynomial can be expressed as the sum .nf y = sum from i=1 to order {c_i * z_i} .fi where the the c_i are the coefficients and the z_i are defined interactively as: .nf z_1 = 1 z_2 = n z_i = 2 * n * z_{i-1} - z_{i-2} .fi 2. Legendre Polynomial The polynomial can be expressed as the sum .nf y = sum from i=1 to order {c_i * z_i} .fi where the the c_i are the coefficients and the z_i are defined interactively as: .nf z_1 = 1 z_2 = n z_i = ((2*i-3) * n * z_{i-1} - (i-2) * z_{i-2}) / (i-1) .fi 3. Linear Spline The linear spline is evaluated as .nf y = c_j * a + c_{j+1} * b .fi where j is as defined earlier and a and b are fractional difference between s and the nearest integers above and below .nf a = (j + 1) - s b = s - j .fi 4. Cubic Spline The cubic spline is evaluated as .nf y = sum from i=0 to 3 {c_{i+j} * z_i} .fi where j is as defined earlier. The term z_i are computed from a and b, as defined earlier, as follows .nf z_0 = a**3 z_1 = 1 + 3 * a * (1 + a * b) z_2 = 1 + 3 * b * (1 + a * b) z_3 = b**3 .fi .ih EXAMPLES 1. Because this task is interactive and has many possible applications it is difficult to provide actual examples. Instead some uses of the task are described. .ls o For defining distortions in the slit dimension as a function of wavelength the positions of objects are marked at some wavelength. The task \fBreidentify\fR is then used to trace the features to other wavelengths. .le .ls o For determining dispersion solutions in a one dimensional spectrum an arc calibration is used. Three emission features are marked and the (l)ocate key is used to find additional features from a coordinate list of arc lines. The dispersion solution is fit interactively and badly determined or misidentified lines are deleted. The solution may be written to the database or transferred to the object spectrum by reading the object image and deleting all the features. Deleting the features does not delete the coordinate function. .le .ls o For determining a two or three dimensional coordinate transformation the a dispersion solution is determined at one slit position in a long slit arc spectrum or one spatial position in a Fabry-Perot spectrum as in the previous example. The features are then traced to other positions with the task \fBreidentify\fR. .le 2. For images which are two or three dimensional it is necessary to specify the image axis for the data vector and the number of pixels at each point across the vector direction to sum. One way specify a vector is to use an image section to define a vector. For example, to select column 20: .nf cl> identify obj[20,*] .fi The alternative is to use the section parameter. Below are some examples of the section parameter syntax for an image "im2d" which is 100x200 and "im3d" which is 100x200x50. On the left is the section string syntax and on the right is the image section .nf Section parameter | Image section | Description ------------------|---------------------|--------------------- first line | im2d[*,1] | First image line middle column | im2d[50,*] | Middle image column last z | im3d[100,200,*] | Last image z vector middle last y | im3d[50,*,50] | Image y vector line 20 | im2d[*,20] | Line 20 column 20 | im2d[20,*] | Column 20 x 20 | im2d[*,20] | Line 20 y 20 | im2d[20,*] | Column 20 y 20 30 | im2d[20,*,30] | Column 20 z 20 30 | im3d[20,30,*] | Image z vector x middle | im3d[*,100,25] | Middle of image y middle | im3d[50,*,25] | Middle of image z middle | im3d[50,100,*] | Middle of image .fi The most common usage should be "middle line", "middle column" or "middle z". The summing factors apply to the axes across the specified vector. For 3D images there may be one or two values. The following shows which axes are summed, the second and third columns, when the vector axis is that shown in the first column. .nf Vector axis | Sum axis in 2D | Sum axes in 3D ------------------|---------------------|-------------------- 1 | 2 | 2 3 2 | 1 | 1 3 3 | - | 1 2 .fi .ih REVISIONS .ls IDENTIFY V2.11 The dispersion units are now determined from a user parameter, the coordinate list, or the database entry. A new key, 'e', has been added to add features from a line list without doing any fits. This is like the 'l' but without the automatic fitting before and after adding new features. A new key, 'b', has been added to apply an automatic line identification algorithm. The 'x' key has been changed to use the automatic line identification algorithm. The allows finding much larger shifts. The match parameter may now be specified either in user coordinates or in pixels. The default is now 3 pixels. The default threshold value has been changed to 0. .le .ls IDENTIFY V2.10.3 The section and nsum parameter syntax was extended to apply to 3D images. The previous values and defaults may still be used. The 'v' key was added to allow assigning weights to features. .le .ls IDENTIFY V2.10 The principle revision is to allow multiple aperture images and long slit spectra to be treated as a unit. New keystrokes allow jumping or scrolling within multiple spectra in a single image. For aperture spectra the database entries are referenced by image name and aperture number and not with image sections. Thus, IDENTIFY solutions are not tied to specific image lines in this case. There is a new autowrite parameter which may be set to eliminate the save to database query upon exiting. The new colon command "add" may be used to add features based on some other spectrum or arc type and then apply the fit to the combined set of features. .le .ih SEE ALSO autoidentify, reidentify, aidpars, center1d, linelists, fitcoords, icfit, gtools .endhelp �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������sptable-1.0.pre20180612/src/xonedspec/doc/lcalib.hlp������������������������������������������������0000664�0000000�0000000�00000011464�13310232156�0021676�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.help lcalib Mar92 noao.onedspec .ih NAME lcalib -- List information about the spectral calibration data .ih USAGE lcalib option star_name .ih PARAMETERS .ls option Chooses calibration data to be listed. Option may be: "bands" to list the bandpasses at each wavelength, "ext" to list the extinction at each wavelength, "mags", "fnu", or "flam" to list the magnitude, or flux of the star (selected by the star_name parameter) at each wavelength, or "stars" to list the star names available in the calibration directory. .le .ls star_name Selects which star's magnitude list is chosen if the option parameter is "mags", "fnu", "flam", or "bands". Also if '?' a list of available stars in the specified calibration directory is given. .le The following three queried parameters apply if the selected calibration file is for a blackbody. See \fBstandard\fR for further details. .ls mag The magnitude of the observed star in the band given by the \fImagband\fR parameter. If the magnitude is not in the same band as the blackbody calibration file then the magnitude may be converted to the calibration band provided the "params.dat" file containing relative magnitudes between the two bands is in the calibration directory .le .ls magband The standard band name for the input magnitude. This should generally be the same band as the blackbody calibration file. If it is not the magnitude will be converted to the calibration band. .le .ls teff The effective temperature (deg K) or the spectral type of the star being calibrated. If a spectral type is specified a "params.dat" file must exist in the calibration directory. The spectral types are specified in the same form as in the "params.dat" file. For the standard blackbody calibration directory the spectral types are specified as A0I, A0III, or A0V, where A can be any letter OBAFGKM, the single digit subclass is between 0 and 9, and the luminousity class is one of I, III, or V. If no luminousity class is given it defaults to dwarf. .le .ls extinction Extinction file. The current standard extinction files: .nf onedstds$kpnoextinct.dat - KPNO standard extinction onedstds$ctioextinct.dat - CTIO standard extinction .fi .le .ls caldir Calibration directory containing standard star data. The directory name must end with /. The current calibration directories available in the onedstds$ may be listed with the command: .nf cl> page onedstds$README .fi .le .ls fnuzero = 3.68e-20 The absolute flux per unit frequency at a magnitude of zero. This is used to convert the calibration magnitudes to absolute flux by the formula Flux = fnuzero * 10. ** (-0.4 * magnitude) The flux units are also determined by this parameter. However, the frequency to wavelength interval conversion assumes frequency in hertz. The default value is based on a calibration of Vega at 5556 Angstroms of 3.52e-20 ergs/cm2/s/hz for a magnitude of 0.048. This default value is that used in earlier versions of this task which did not allow the user to change this calibration. .le .ih DESCRIPTION LCALIB provides a means of checking the flux calibration data. The calibration data consists of extinction, bandpasses, and stellar magnitudes. The extinction is given in an extinction file consisting of lines with wavelength and extinction. The wavelengths must be order in increasing wavelength and the wavelengths must be in Angstroms. There are two standard extinction files currently available, "onedstds$kpnoextinct.dat", and "onedstds$ctioextinct.dat". The standard star data are in files in a calibration directory specified with the parameter \fIcaldir\fR. A standard star file is selected by taking the star name given, by the parameter \fIstar_name\fR, removing blanks, +'s and -'s, appending ".dat", and converting to lower case. This file name is appended to the specified calibration directory. A calibration file consists of lines containing a wavelength, a stellar magnitude, and a bandpass full width. The wavelengths are in Angstroms. Comment lines beginning with # may be included in the file. The star names printed by this task are just the first line of each file in the calibration directory with the first character (#) removed. The calibration files may be typed, copied, and printed. \fBLcalib\fR may also be used to list data from the calibration files. .ih EXAMPLES .nf # List the extinction table cl> lcalib ext # Plot the extinction table cl> lcalib ext | graph # Plot the energy distribution cl> lcalib mags "bd+28 4211" | graph # List the names of all the stars cl> lcalib stars caldir=onedstds$irscal/ # As above but for IIDS file cl> lcalib stars calib_file=onedstds$iidscal/ .fi .ih REVISIONS .ls LCALIB V2.10 This task has a more compact listing for the "stars" option and allows paging a list of stars when the star name query is not recognized. .le .ih SEE ALSO standard, sensfunc, onedstds$README .endhelp ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������sptable-1.0.pre20180612/src/xonedspec/doc/mkspec.hlp������������������������������������������������0000664�0000000�0000000�00000004754�13310232156�0021736�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.help mkspec Mar92 noao.onedspec .ih NAME mkspec -- generate an artifical spectrum or image (obsolete) .ih USAGE mkspec image_name image_title ncols nlines function .ih PARAMETERS .ls image_name The name to be given to the image file .le .ls image_title A character string to be used to describe the image .le .ls ncols The number of pixels in the spectrum (the length of the image). .le .ls nlines The number or lines (rows) in the image. .le .ls function An indicator specifying the form of the spectrum: 1 - a constant, 2 - a ramp running from start_level to end_level, 3 - a black body extending in wavelength (Angstroms) from start_wave to end_wave at a given temperature (in degrees K). .le .ls constant The value to be assigned to the spectrum if function=1 (constant). .le .ls start_level The starting value to be assigned to the spectrum at pixel 1 if function=2 (ramp). .le .ls end_level The ending value of the spectrum assigned at pixel=ncols if function=2. .le .ls start_wave The wavelength (Angstroms) assigned to pixel 1 if function=3 (Black Body). .le .ls end_wave The wavelength (Angstroms) assigned to the last pixel if function=3. .le .ls temperature The black body temperature (degrees K) for which the spectrum is to be created if function=3. .le .ih DESCRIPTION An artificial image is created with the specified name and length. The image may have a constant value (function=1), or may be a ramp with either positive or negative slope (function=2), or may be a black body curve (function=3). Only those parameters specific to the functional form of the image need be specified. In all cases the parameters image_name, image_title, ncols, nlines, and function are required. If function=1, parameter constant is required; if function=2, start_level and end_level are required; if function=3, start_wave, end_wave, and temperature are required. All black body functions are normalized to 1.0 at their peak intensity which may occur at a wavelength beyond the extent of the generated spectrum. NOTE THAT THIS TASK IS OBSOLETE AND ARTDATA.MK1DSPEC SHOULD BE USED. In particular this task does not set the header dispersion coordinate system. .ih EXAMPLES .nf cl> mkspec allones "Spectrum of 1.0" 1024 1 1 constant=1.0 cl> mkspec ramp "From 100.0 to 0.0" 1024 64 2 start=100 \ >>> end=0.0 cl> mkspec bb5000 "5000 deg black body" 512 1 3 start=3000 \ >>> end=8000 temp=5000 .fi .ih REVISIONS .ls MKSPEC V2.10 This task is unchanged. .le .ih SEE ALSO artdata.mk1dspec, artdata.mk2dspec, artdata.mkechelle ear endhelp ��������������������sptable-1.0.pre20180612/src/xonedspec/doc/names.hlp�������������������������������������������������0000664�0000000�0000000�00000003523�13310232156�0021550�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.help names Mar92 noao.onedspec .ih NAME names -- Generate image names from a root and a range descriptor .ih USAGE names input records .ih PARAMETERS .ls input The root file name for the input records to be calibrated. .le .ls records The range of spectra to be included in the calibration operation. Each range item will be appended to the root name to form an image file name. .le .ls append = "" If not a null string, this character string will be appended to all the generated image names. This allows for a specification of image sections. .le .ls check = no If set to yes, a check is made that each name implied by the range specification has at least an image header. The pixel file is not checked. If set to no, then all possible image names are generated even if no image exists. .le .ih DESCRIPTION A sequence of image names is generated from the input root file name and the range description by appending the possible range values to the root in the form "root.nnnn". At least four digits will follow the root. If an append string is specified, this is added to the image name as well. The generated image names are written to STDOUT, but may be redirected to a file for further use. .ih EXAMPLES The following will generate names of the form nite1.0001, nite1.0002 ... nite1.0010 and place the list in the file nite1.lst. .nf cl> names nite1 1-10 >nite1.lst .fi The next example uses the append option to specify that only the first 512 pixels of each image (spectrum) are to used in the image name. .nf cl> names nite1 1-10 append="[1:512]" >nite1.lst .fi .ih REVISIONS .ls NAMES V2.10 This task is unchanged. .le .ih .ih BUGS The append option is only useful for adding image sections since it is added after the ONEDSPEC name is generated. Appending other strings produces names such as root.0012str which are not recognized by the package. .endhelp �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������sptable-1.0.pre20180612/src/xonedspec/doc/ndprep.hlp������������������������������������������������0000664�0000000�0000000�00000007570�13310232156�0021743�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.help ndprep Mar92 noao.onedspec .ih NAME ndprep -- Make a neutral density filter calibration image .ih USAGE ndprep filter_curve output .ih PARAMETERS .ls filter_curve Neutral density filter curve. The directory specified by the parameter \fIdirectory\fR is prepended to this name so if a directory is specified then it should not be given here. If '?' a list of filter curves in the specified directory is typed. .le .ls output Output neutral density filter image. .le .ls w0 Starting wavelength for the output image in Angstroms. .le .ls dw Wavelength increment for the output image in Angstroms. .le .ls nw Number of wavelength points for the output image (i.e. the size of the output image). .le .ls nspace = 0 Number of spatial points for a two dimensional image. If the value is zero then a one dimensional image is created. .le .ls logarithm = no Use logarithmic wavelengths and intervals? If yes then the wavelengths will have the same starting and ending points and number of pixels but the wavelength intervals will be logarithmic. .le .ls flux = yes Conserve flux when rebinning to logarithmic wavelength intervals? .le .ls dispaxis = 1 Dispersion axis for two dimensional images. Dispersion along the lines is 1 and dispersion along the columns is 2. .le .ls directory = "onedstds$ctio/" Directory containing neutral density filter curves. This directory is prepended to the specified fiter curve file (and so must end with '/' or '$'). .le .ih DESCRIPTION A neutral density (ND) filter curve is converted to a calibration image with the same size and wavelength range as the images to be calibrated. A list of standard neutral density curves is typed if the filter curve name is given as '?'. The ND curves are text files containing wavelength and filter transmission pairs. Comments begin with '#'. A plot of the ND curve can be obtained using \fBgraph\fR. The ND curve is first interpolated to a one dimensional image of \fInw\fR wavelength points with starting wavelength \fIwO\fR and wavelength increment \fIdw\fR using the task \fBsinterp\fR. The wavelength parameters must be in the same units as the filter curves (currently Angstroms) even if the final calibration image is to be in logarithmic wavelength intervals. If logarithmic wavelength format is specified the image is rebinned over the same wavelength range with the same number of points using the task \fBdispcor\fR. The rebinning may include flux conservation to account for the changing size of pixels or simply interpolate. Note that flux conservation will change the apparent shape of the ND curve. If the number of points across the dispersion, \fInspace\fR is zero then the final calibration image is one dimensional. If it is greater than zero the one dimensional ND image is expanded to the specified number of spatial points with the dispersion axis specified by the parameter \fIdispaxis\fR (1 = dispersion along the lines, 2 = dispersion along the columns). .ih EXAMPLES To get a list of standard ND filter curves: cl> ndprep ? To graph the ND filter curve: cl> graph onedstds$ctio/nd1m.100mag.dat Naturally, if a calibration image is made then the image plotting tasks such as \fBgraph\fR, \fBimplot\fR, and \fBsplot\fR may also be used. To make a one dimensional ND calibration spectrum: .nf cl> ndprep w0=4000 dw=1.2 nw=512 Input ND filter curve: onedstds$ctio/nd1m.100mag.dat Output calibration image: NDimage .fi To make a two dimensional ND calibration spectrum in logarithmic wavelength: .nf cl> ndprep w0=4000 dw=1.2 nw=512 nspace=200 log+ Input ND filter curve: onedstds$ctio/nd4m.u000mag.dat Output calibration image: NDimage .fi .ih REVISIONS .ls NDPREP V2.10 This task was moved from the \fBproto\fR package. It was originally written at CTIO for CTIO data. It's functionality is largely unchanged though it has been updated for changes in the \fBonedspec\fR package. .le .ih SEE ALSO sinterp, dispcor .endhelp ����������������������������������������������������������������������������������������������������������������������������������������sptable-1.0.pre20180612/src/xonedspec/doc/onedspec.hlp����������������������������������������������0000664�0000000�0000000�00000026554�13310232156�0022256�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.help package Nov94 noao.onedspec .ih NAME onedspec -- generic 1D spectral reduction and analysis package .ih USAGE onedspec .ih PARAMETERS .ls observatory = "observatory" Observatory at which the spectra were obtained if not specified in the image header by the keyword OBSERVAT. This parameter is used by several tasks in the package through parameter redirection so this parameter may be used to affect all these tasks at the same time. The observatory may be one of the observatories in the observatory database, "observatory" to select the observatory defined by the environment variable "observatory" or the parameter \fBobservatory.observatory\fR, or "obspars" to select the current parameters set in the \fBobservatory\fR task. See help for \fBobservatory\fR for additional information. .le .ls caldir = "" Calibration directory containing standard star data. This parameter is used by several tasks in the package through redirection. A list of standard calibration directories may be obtained by listing the file "onedstds$README"; for example: cl> page onedstds$README The user may copy or create their own calibration files and specify the directory. The directory "" refers to the current working directory. .le .ls interp = "poly5" (nearest|linear|poly3|poly5|spline3|sinc) Spectrum interpolation type used when spectra are resampled. The choices are: .nf nearest - nearest neighbor linear - linear poly3 - 3rd order polynomial poly5 - 5th order polynomial spline3 - cubic spline sinc - sinc function .fi .le The following parameters apply to two and three dimensional images such as long slit or Fabry-Perot spectra. They allow selection of a line or column as the spectrum "aperture" and summing of neighboring elements to form a one dimensional spectrum as the tasks in the ONEDSPEC package expect. .ls dispaxis = 1 The image axis corresponding to the dispersion. If there is an image header keyword DISPAXIS then the value of the keyword will be used otherwise this package parameter is used. The dispersion coordinates are a function of column, line, or band when this parameter is 1, 2 or 3. .le .ls nsum = "1" The number of neighboring elements to sum. This is a string parameter that can have one or two numbers. For two dimensional images only one number is needed and specifies the number of lines or columns to sum depending on the dispersion axis. For three dimensional images two numbers may be given (if only one is given it defaults to the same value for both spatial axes) to specify the summing of the two spatial axes. The order is the lower dimensional spatial axis first. For an even value the elements summed are the central specified "aperture", nsum / 2 - 1 below, and nsum /2 above; i.e the central value is closer to the lower element than the upper. For example, for nsum=4 and an aperture of 10 for a dispersion axis of 1 in a two dimensional image the spectrum used will be the sum of lines 9 to 12. .le .ls records = "" This is a dummy parameter. It is applicable only in the \fBimred.irs\fR and \fBimred.iids\fR packages. .le .ls version = "ONEDSPEC V3: November 1991" Package version identification. .le .ih DESCRIPTION The \fBonedspec\fR package contains generic tasks for the reduction, analysis, and display of one dimensional spectra. The specifics of individual tasks may be found in their IRAF "help" pages. This document describes the general and common features of the tasks. The functions provided in the \fBonedspec\fR package with applicable tasks are summarized in Table 1. .ce Table 1: Functions provided in the \fBonedspec\fR package .nf 1. Graphical display of spectra bplot - Batch plots of spectra identify - Identify features and fit dispersion functions specplot - Stack and plot multiple spectra splot - Interactive spectral plot/analysis 2. Determining and applying dispersion calibrations dispcor - Dispersion correct spectra dopcor - Apply doppler corrections identify - Identify features and fit dispersion functions refspectra - Assign reference spectra to other spectra reidentify - Automatically identify features in spectra specshift - Shift spectral dispersion coordinate system 3. Determining and applying flux calibrations calibrate - Apply extinction and flux calibrations to spectra deredden - Apply interstellar extinction correction dopcor - Apply doppler corrections lcalib - List calibration file data sensfunc - Create sensitivity function standard - Tabulate standard star data 4. Fitting spectral features and continua continuum - Fit the continuum in spectra fitprofs - Fit gaussian profiles sfit - Fit spectra and output fit, ratio, or difference splot - Interactive spectral plot/analysis 5. Arithmetic and combining of spectra sarith - Spectrum arithmetic scombine - Combine spectra splot - Interactive spectral plot/analysis 6. Miscellaneous functions mkspec - Generate an artificial spectrum names - Generate a list of image names from a string sapertures - Set or change aperture header information scopy - Select and copy spectra sinterp - Interpolate a table of x,y to create a spectrum slist - List spectrum header parameters splot - Interactive spectral plot/analysis .fi There are other packages which provide additional functions or specialized tasks for spectra. Radial velocity measurements are available in the \fBnoao.rv\fR package. The \fBnoao.imred\fR package contains a number of packages for specific types of data or instruments. These packages are listed in Table 2. .ce Table 2: \fBImred\fR spectroscopy packages .nf argus - CTIO ARGUS reduction package ctioslit - CTIO spectrophotometric reduction package echelle - Echelle spectral reductions (slit and FOE) hydra - KPNO HYDRA (and NESSIE) reduction package iids - KPNO IIDS spectral reductions irs - KPNO IRS spectral reductions kpnocoude - KPNO coude reduction package (slit and 3 fiber) kpnoslit - KPNO low/moderate dispersion slits (Goldcam, RCspec, Whitecam) specred - Generic slit and fiber spectral reduction package .fi Finally, there are non-NOAO packages which may contain generally useful software for spectra. Currently available packages are \fBstsdas\fR and \fBxray\fR. .ih SPECTRUM IMAGE FORMATS AND COORDINATE SYSTEMS See the separate help topic \fIspecwcs\fR. .ih INTERPOLATION Changing the dispersion sampling of spectra, such as when converting to a constant sampling interval per pixel or a common sampling for combining or doing arithmetic on spectra, requires interpolation. The tasks which reinterpolate spectra, if needed, are \fBdispcor, sarith, scombine,\fR and \fBsplot\fR. The interpolation type is set by the package parameter \fIinterp\fR. The available interpolation types are: .nf nearest - nearest neighbor linear - linear poly3 - 3rd order polynomial poly5 - 5th order polynomial spline3 - cubic spline sinc - sinc function .fi The default interpolation type is a 5th order polynomial. The choice of interpolation type depends on the type of data, smooth verses strong, sharp, undersampled features, and the requirements of the user. The "nearest" and "linear" interpolation are somewhat crude and simple but they avoid "ringing" near sharp features. The polynomial interpolations are smoother but have noticible ringing near sharp features. They are, unlike the sinc function described below, localized. In V2.10 a "sinc" interpolation option is available. This function has advantages and disadvantages. It is important to realize that there are disadvantages! Sinc interpolation approximates applying a phase shift to the fourier transform of the spectrum. Thus, repeated interpolations do not accumulate errors (or nearly so) and, in particular, a forward and reverse interpolation will recover the original spectrum much more closely than other interpolation types. However, for undersampled, strong features, such as cosmic rays or narrow emission or absorption lines, the ringing can be more severe than the polynomial interpolations. The ringing is especially a concern because it extends a long way from the feature causing the ringing; 30 pixels with the truncated algorithm used. Note that it is not the truncation of the interpolation function which is at fault! Because of the problems seen with sinc interpolation it should be used with care. Specifically, if there are no undersampled, narrow features it is a good choice but when there are such features the contamination of the spectrum by ringing is much more severe than with other interpolation types. .ih UNITS In versions of the NOAO spectroscopy packages prior to V2.10 the dispersion units used were restricted to Angstroms. In V2.10 the first, experimental, step of generalizing to other units was taken by allowing the two principle spectral plotting tasks, \fBsplot\fR and \fBspecplot\fR, to plot in various units. Dispersion functions are still assumed to be in Angstroms but in the future the generalization will be completed to all the NOAO spectroscopy tasks. The dispersion units capability of the plotting tasks allows specifying the units with the "units" task parameter and interactively changing the units with the ":units" command. In addition the 'v' key allows plotting in velocity units with the zero point velocity defined by the cursor position. The units are specified by strings having a unit type from the list below along with the possible preceding modifiers, "inverse", to select the inverse of the unit and "log" to select logarithmic units. For example "log angstroms" to plot the logarithm of wavelength in Angstroms and "inv microns" to plot inverse microns. The various identifiers may be abbreviated as words but the syntax is not sophisticated enough to recognized standard scientific abbreviations except as noted below. .nf Table 1: Unit Types angstroms - Wavelength in Angstroms nanometers - Wavelength in nanometers millimicrons - Wavelength in millimicrons microns - Wavelength in microns millimeters - Wavelength in millimeters centimeter - Wavelength in centimeters meters - Wavelength in meters hertz - Frequency in hertz (cycles per second) kilohertz - Frequency in kilohertz megahertz - Frequency in megahertz gigahertz - Frequency in gigahertz m/s - Velocity in meters per second km/s - Velocity in kilometers per second ev - Energy in electron volts kev - Energy in kilo electron volts mev - Energy in mega electron volts z - Redshift nm - Wavelength in nanometers mm - Wavelength in millimeters cm - Wavelength in centimeters m - Wavelength in meters Hz - Frequency in hertz (cycles per second) KHz - Frequency in kilohertz MHz - Frequency in megahertz GHz - Frequency in gigahertz wn - Wave number (inverse centimeters) .fi The velocity and redshift units require a trailing value and unit defining the velocity zero point. For example to plot velocity relative to a wavelength of 1 micron the unit string would be: .nf km/s 1 micron .fi Some additional examples of units strings are: .nf milliang megahertz inv mic log hertz m/s 3 inv mic z 5015 ang .fi .ih SEE ALSO apextract, longslit, rv, imred, specwcs .endhelp ����������������������������������������������������������������������������������������������������������������������������������������������������sptable-1.0.pre20180612/src/xonedspec/doc/refspectra.hlp��������������������������������������������0000664�0000000�0000000�00000043344�13310232156�0022610�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.help refspectra Mar92 noao.onedspec .ih NAME refspectra -- Assign reference spectra .ih USAGE refspectra input [records] .ih PARAMETERS .ls input List of input spectra or root names to be assigned reference spectra. When using the record number extension format, record number extensions will be appended to each root name in the list. .le .ls records (imred.irs and imred.iids packages only) List of records or ranges of records to be appended to the input root names when using record number extension format. The syntax of this list is comma separated record numbers or ranges of record numbers. A range consists of two numbers separated by a hyphen. An example of this syntax is "1-5,13,17-19". A null list ("") may be used if no record number extensions are desired. This is a positional query parameter only if the record format is specified with the \fIrecformat\fR parameter. .le .ls references = "*.imh" List of reference spectra to be assigned or a "reference spectra assignment table" (see DESCRIPTION section). .le .ls apertures = "" List of apertures to be SELECTED from the input list of spectra. If no list is specified then all apertures are selected. The syntax is the same as the record number extensions. .le .ls refaps = "" List of reference spectra apertures to be SELECTED. If no list is specified then all apertures are selected. The syntax is the same as the record number extensions. .le .ls ignoreaps = yes Ignore the input and reference apertures when ASSIGNING reference spectra. If the aperture numbers are not ignored then only the reference spectra with the same aperture number as a particular input spectra are used when assigning reference spectra. Otherwise all the reference spectra are used. This does not apply to the "match" and "average" options which always ignore the aperture numbers. Note that this parameter applies to relating reference spectra to input spectra and does not override the aperture selections on the input spectra and reference spectra. .le .ls select = "interp" Selection method for assigning reference spectra. The methods are: .ls average Average two reference spectra without regard to any aperture, sort, or group parameters. If only one reference spectrum is specified then it is assigned with a warning. If more than two reference spectra are specified then only the first two are used and a warning is given. There is no checking of the aperture numbers or group values. .le .ls following Select the nearest following spectrum in the reference list based on the sort and group parameters. If there is no following spectrum use the nearest preceding spectrum. .le .ls interp Interpolate between the preceding and following spectra in the reference list based on the sort and group parameters. If there is no preceding and following spectrum use the nearest spectrum. The interpolation is weighted by the relative distances of the sorting parameter (see cautions in DESCRIPTION section). .le .ls match Match each input spectrum with the reference spectrum list in order. This overrides any aperture or group values. .le .ls nearest Select the nearest spectrum in the reference list based on the sort and group parameters. .le .ls preceding Select the nearest preceding spectrum in the reference list based on the sort and group parameters. If there is no preceding spectrum use the nearest following spectrum. .le .le .ls sort = "jd" Image header keyword to be used as the sorting parameter for selection based on order. The header parameter must be numeric but otherwise may be anything. Common sorting parameters are times or positions. A null string, "", or the word "none" may be use to disable the sorting parameter. .le .ls group = "ljd" Image header keyword to be used to group spectra. For those selection methods which use the group parameter the reference and object spectra must have identical values for this keyword. This can be anything but it must be constant within a group. Common grouping parameters are the date of observation "date-obs" (provided it does not change over a night) or the local Julian day number. A null string, "", or the word "none" may be use to disable the grouping parameter. .le .ls time = no, timewrap = 17. Is the sorting parameter a 24 hour time? If so then the time orgin for the sorting is specified by the timewrap parameter. This time should precede the first observation and follow the last observation in a 24 hour cycle. .le .ls override = no Override previous assignments? If an input spectrum has reference spectra assigned previously the assignment will not be changed unless this flag is set. .le .ls confirm = yes Confirm reference spectrum assignments? If \fIyes\fR then the reference spectra assignments for each input spectrum are printed and the user may either accept the assignment or not. Rejected assignments leave the input spectrum unchanged. .le .ls assign = yes Assign the reference spectrum by entering it in the image header? The input spectra are only modified if this parameter is \fIyes\fR. This parameter may be set to \fIno\fR to get a list of assignments without actually entering the assignments in the image headers. .le .ls logfiles = "STDOUT,logfile" List of log files for recording reference spectra assignments. The file STDOUT prints to the standard output. If not specified ("") then no logs will be recorded. .le .ls verbose = yes Verbose log output? This prints additional information about the input and reference spectra. This is useful for diagnosing why certain spectra are ignored or not assigned as intended. .le .ih DESCRIPTION This task allows the user to define which reference spectra are to be used in the calculation of the dispersion solution of object spectra. The assignment of reference spectra to object spectra is often a complex task because of the number of spectra, the use of many distinct apertures, and different modes of observing such as interspersed arc calibration spectra or just one calibration for a night. This task provides a number of methods to cover many of the common cases. A reference spectrum is defined to be a spectrum that has been used to calculate a wavelength solution with the tasks IDENTIFY or REIDENTIFY. These tasks have set the keyword REFSPEC1 in the image header equal to the spectrum's own name. Wavelength reference spectra are assigned to input spectra by entering the reference spectrum name or pair of names in the image header under the keywords REFSPEC1 and REFSPEC2. When two reference spectra are assigned, the spectrum names may be followed by a weighting factor (assumed to be 1 if missing). The wavelength of a pixel is then the weighted average of the wavelengths from the reference spectra dispersion solutions. The weighting factors are calculated by choosing an appropriate selection method, ie average, interpolation, etc. Note, however, that these assignments may be made directly using the task \fBhedit\fR or with some other task or script if none of the methods are suitable. The spectra to be assigned references are specified by an input list. Optional numeric record format extensions may be appended to each name (used as a root name) in the input list in the \fBiids/irs\fR packages. The input spectra may be restricted to a particular set of aperture numbers by the parameter \fIapertures\fR; the spectra not in the list of apertures are skipped. If the aperture list is null (i.e. specified as "") then all apertures are selected. One further selection may be made on the input spectra. If the parameter \fIoverride\fR is no then input spectra which have existing reference spectra assignments (which includes the reference spectra) are skipped. The reference spectra parameter \fIreferences\fR may take two forms. It may be an image list of spectra or a text file containing a "reference spectrum assignment table". The table consists of pairs of strings/lists with the first string being a list of object spectra and the second string being a list of reference spectra. If this table is used, then only those object spectra in the table that are also listed in the input parameter list are processed. The example below illustrates the reference spectrum assignment table: .nf spec1 spec2,spec3,spec4 spec5 spec6,spec7 spect8,spec9 spec10 spec11 spec12 spec13 spec14 spec15 .fi As a convenience, if a reference list in the table is missing, the preceding reference list is implied. This table may be used to make arbitrary assignments. The reference spectra in the specified list may also be restricted to a subset of aperture numbers. However, in the case of averaging, the reference aperture selection is ignored. In the case of matching, if a reference spectrum is not selected then the matching input spectrum is also skipped (in order to maintain a one-to-one correspondence). Spectra in the reference list which are not reference spectra (as defined earlier) are also ignored and a warning is printed. Note that no check is made that a dispersion solution actually exists in the dispersion solution database. There may be cases where there are only reference spectra for some apertures and it is desired to apply these reference spectra to the other apertures. The \fIignoreaps\fR flag may be used to force an assignment between reference and object spectra with different aperture numbers. Note that this flag is applied after the input and reference list aperture number selections are made; in other words this applies only to the assignments and not the input selection process. Once the appropriate reference spectra from the reference list have been determined for an input spectrum they are assigned using one of the methods selected by the parameter \fIselect\fR. The "match" method simply pairs each element of the input spectrum list with each element in the reference spectrum list. If a reference assignment table is used with "match", then only the first spectrum in the reference list for each input spectrum is assigned. The "average" method assigns the first two spectra in the reference list ignoring aperture numbers or groups. The spectra are averaged by assigning equal weights. There is no weighting based on any sort parameter. If there are more than two spectra in the reference list then only the first two spectra are used and the remainder are ignored. If a reference assignment table is used only the first two reference spectra listed for each object in the table are averaged. The remaining selection methods group the spectra using a header keyword which must be constant within a group. If no group parameter is specfied (the null string "" or the word "none") then grouping does not occur. Only reference spectra with the same group header value as the object are assigned to an object spectrum. One likely group parameter is the "date-obs" keyword. This is usually constant over a night at CTIO and KPNO. At other sites this may not be the case. Therefore, the task \fBsetjd\fR may be used to set a local Julian day number which is constant over a night at any observatory. Within a group the spectra are ordered based on a numeric image header parameter specified by the \fIsort\fR parameter. A null string "" or the word "null" may be used to select no sort parameter. Parameters which are times, as indicated by the \fItime\fR parameter, are assumed to be cyclic with a period of 24 hours. The time wrap parameter defines the origin of a cycle and should precede the first observation and follow the last observation in a 24 hour period; i.e. for nighttime observations this parameter value should bee sometime during the day. Particularly with interpolating or choosing the nearest reference spectrum it is important that the sorting parameter refer to the middle of the exposure. A Julian date at the middle of an exposure may be calculated with the task \fBsetjd\fR or a middle UT time may be computed with the task \fBsetairmass\fR. The selection methods may choose the "nearest", "preceding", or "following" reference spectrum. Alternatively, the reference wavelengths may be interpolated between the preceding and following reference spectra with weights given by the relative distances measured by the sorting parameter. In the cases where a preceding or following spectrum is required and one is not found then the nearest reference spectrum is used. These methods are used for observing sequences where the reference spectra are taken either nearby in time or space. The option "interp" should not be used without some thought as to the nature of the interpolation. If the sorting parameter is a time (a 24 hour cyclic parameter as opposed to a continuous parameter such as a Julian date) then the user must be aware of when these times were recorded in the header. For example, let us assume that the sort parameter is "ut" and that this time was recorded in the header at the beginning of the exposure. If the object spectrum exposure time is longer than the reference spectra exposure times, then interpolation will weight the preceding reference spectrum too heavily. This problem can be circumvented by using the "average" selection method along with the reference assignment table. Or the sort time parameter in the headers of the spectra can be changes with \fIsetjd\fR or \fIsetairmass\fR or edited to reflect the values at mid-exposure (see EXAMPLES). Once the reference spectrum or spectra for a input spectrum have been identified the user may also chose to override any previous reference assignments, to accept or not accept the current reference assignments (in the case of not accepting the reference assignment the image header is not updated), to only list the current reference assignments and not update any image headers, as well as to record the reference assignments to log files. These options are separately controlled by the remaining task parameters. .ih KEYWORDS This task uses the header keyword BEAM-NUM to sort the apertures. It has an integer value. If the keyword does not exist then all apertures are assumed to be 1. The keyword REFSPEC1 is used to search for reference spectra. This keyword can be previously created by the tasks IDENTIFY and REIDENTIFY. The two keywords REFSPEC1 and optionally REFSPEC2 are created by the task when the assign parameter is set to yes. They take the form: .nf REFSPEC1='d1.0001' or REFSPEC1='d5.0001 0.756' REFSPEC2='d5.0002 0.244' .fi .ih EXAMPLES 1. Compute a Julian date at the midpoint of the exposure for sorting and a local Julian day number for grouping and then assign spectra using interpolation. .nf cl> setjd *.imh jd=jd ljd=ljd cl> refspec *.imh sort=jd group=ljd select=interp .fi 2. Specifically assign reference spectra to input spectra. .nf cl> refspectra spec1,spec3 refe=spec2,spec4 select=match .fi 3. Use a reference assignment table to assign reference spectra to input spectra using the "average" option. First a table is created using an editor. .nf cl> type reftable spec1 spec2,spec3,spec4 spec5 spec6,spec7 spect8,spec9 spec10 spec11 spec12 spec13 spec14 spec15 cl> refspec spec*.imh recfor- select=average refe=reftable .fi 4. Assign the nearest reference spectrum in zenith distance using wildcard lists. By default the aperture numbers must match. cl> refspec *.imh "" sort=zd select=nearest time- 5. Assign a specific reference spectrum to all apertures. cl> refspec *.imh "" refer=refnite1 ignoreaps+ 6. Confirm assignments. .nf cl> hselect irs.*.imh "$I,beam-num,ut,refspec1" yes irs.0009.imh 0 0:22:55 irs.0009 irs.0010.imh 1 0:22:53 irs.0010 irs.0100.imh 0 8:22:55 irs.0101.imh 1 8:22:53 irs.0447.imh 0 13:00:07 irs.0447 irs.0448.imh 1 13:00:05 irs.0448 cl> refspec irs 100-101 refer=irs.*.imh conf+ ver+ select=nearest\ >>> ignoreaps- [irs.0100] Not a reference spectrum [irs.0101] Not a reference spectrum [irs.0100] refspec1='irs.0447' Accept assignment (yes)? [irs.0101] refspec1='irs.0448' Accept assignment (yes)? .fi Because the reference spectrum list includes all spectra the warning messages "Not a reference spectrum" are printed with verbose output. Remember a reference spectrum is any spectrum which has a reference spectrum assigned which refers to itself. 7. Assign reference spectra with weights using interpolation. In this example we want to sort by "ut" but this keyword value was recorded at the beginning of the integration. So we first create an new keyword and then compute its value to be that of mid-exposure. The new keyword is then used as the sorting parameter. .nf cl> hedit *.imh utmid 0. add+ ver- show- cl> hedit *.imh utmid "(ut)" ver- show- cl> hedit *.imh utmid "(mod(utmid+exptime/7200.,24.))" ver- show- cl> refspec *.imh refer=*.imh recfor- select=interp sort=utmid .fi 8. Assign reference spectra using the "average" option and the reference assignment table with data with record number extensions. First edit the file reftable: .nf cl> type reftable spec.0001 arc1.0001,arc2.0001 spec.0002 arc1.0002,arc2.0002 spec.0003 arc1.0003,arc2.0003 spec.0004 arc1.0004,arc2.0004 cl> refspec spec.*.imh recfor- refer=reftable select=average .fi 9. Assign a reference spectrum for aperture 1 to the object spectra for apertures 2 thru 5. .nf cl> refspec spec 2-5 recfor+ refer=arc.*.imh refaps=1 ignoreaps+ .fi .ih REVISIONS .ls REFSPECTRA V2.10.3 If no reference spectrum is found in the interp, nearest, following, preceding methods then a list of the reference spectra is given showing why each was not acceptible. .le .ls REFSPECTRA V2.10 A group parameter was added to allow restricting assignments by observing period; for example by night. The record format option was removed and the record format syntax is available in the \fBirs/iids\fR packages. .le .ih SEE ALSO identify, reidentify, dispcor, setjd, setairmass .endhelp ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������sptable-1.0.pre20180612/src/xonedspec/doc/reidentify.hlp��������������������������������������������0000664�0000000�0000000�00000064117�13310232156�0022615�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.help reidentify Jan96 noao.onedspec .ih NAME reidentify -- Reidentify features .ih SUMMARY Given a reference vector with identified features and (optionally) a coordinate function find the same features in other elements of the reference image and fit a new dispersion function or determine a zero point shift. After all vectors of the reference image are reidentified use the reference vectors to reidentify corresponding vectors in other images. This task is used for transferring dispersion solutions in arc calibration spectra and for mapping geometric and dispersion distortion in two and three dimensional images. .ih USAGE reidentify reference images .ih PARAMETERS .ls reference Image with previously identified features to be used as features reference for other images. If there are multiple apertures, lines, or columns in the image a master reference is defined by the \fIsection\fR parameter. The other apertures in multispec images or other lines, or columns (selected by \fIstep\fR) are reidentified as needed. .le .ls images List of images in which the features in the reference image are to be reidentified. In two and three dimensional images the reidentifications are done by matching apertures, lines, columns, or bands with those in the reference image. .le .ls interactive = no Examine and fit features interactively? If the task is run interactively a query (which may be turned off during execution) will be given for each vector reidentified after printing the results of the automatic fit and the user may chose to enter the interactive \fBidentify\fR task. .le .ls section = "middle line" If the reference image is not one dimensional or specified as a one dimensional image section then this parameter selects the master reference image vector. The master reference is used when reidentifying other vectors in the reference image or when other images contain apertures not present in the reference image. This parameter also defines the direction (columns, lines, or z) of the image vectors to be reidentified. The section parameter may be specified directly as an image section or in one of the following forms .nf line|column|x|y|z first|middle|last|# [first|middle|last|#]] first|middle|last|# [first|middle|last|#] line|column|x|y|z .fi where each field can be one of the strings separated by | except for # which is an integer number. The field in [] is a second designator which is used with three dimensional data. See the example section for \fBidentify\fR for examples of this syntax. Abbreviations are allowed though beware that 'l' is not a sufficient abbreviation. .le .ls newaps = yes Reidentify new apertures in the images which are not in the reference image? If no, only apertures found in the reference image will be reidentified in the other images. If yes, the master reference spectrum is used to reidentify features in the new aperture and then the new aperture solution will be added to the reference apertures. All further identifications of the new aperture will then use this solution. .le .ls override = no Override previous solutions? If there are previous solutions for a particular image vector being identified, because of a previous \fBidentify\fR or \fBreidentify\fR, this parameter selects whether to simply skip the reidentification or do a reidentification and overwrite the solution in the database. .le .ls refit = yes Refit the coordinate function? If yes and there is more than one feature and a coordinate function was defined in the reference image database then a new coordinate function of the same type as in the reference is fit using the new pixel positions. Otherwise only a zero point shift is determined for the revised coordinates without changing the form of the coordinate function. .le The following parameters are used for selecting and reidentifying additional lines, columns, or apertures in two dimensional formats. .ls trace = no There are two methods for defining additional reference lines, columns, or bands in two and three dimensional format images as selected by the \fIstep\fR parameter. When \fItrace\fR is no the master reference line or column is used for each new reference vector. When this parameter is yes then as the reidentifications step across the image the last reidentified features are used as the reference. This "tracing" is useful if there is a coherent shift in the features such as with long slit spectra. However, any features lost during the tracing will be lost for all subsequent lines or columns while not using tracing always starts with the initial set of reference features. .le .ls step = "10" The step from the reference line, column, or band used for selecting and/or reidentifying additional lines, columns, or bands in a two or three dimensional reference image. For three dimensional images there may be two numbers to allow independent steps along different axes. If the step is zero then only the reference aperture, line, column, or band is used. For multiaperture images if the step is zero then only the requested aperture is reidentified and if it is non-zero (the value does not matter) then all spectra are reidentified. For long slit or Fabry-Perot images the step is used to sample the image and the step should be large enough to map any significant changes in the feature positions. .le .ls nsum = "10" Number of lines, columns, or bands across the designated vector axis to be summed when the image is a two or three dimensional spatial spectrum. It does not apply to multispec format spectra. If the image is three dimensional an optional second number can be specified for the higher dimensional axis (the first number applies to the lower axis number and the second to the higher axis number). If a second number is not specified the first number is used for both axes. This parameter is not used for multispec type images. .le .ls shift = "0" Shift in user coordinates to be added to the reference features before centering. If the image is three dimensional then two numbers may be specified for the two axes. Generally no shift is used by setting the value to zero. When stepping to other lines, columns, or bands in the reference image the shift is added to the primary reference spectrum if not tracing. When tracing the shift is added to last spectrum when stepping to higher lines and subtracted when stepping to lower lines. If a value if INDEF is specified then an automatic algorithm is applied to find a shift. .le .ls search = 0. If the \fIshift\fR parameter is specified as INDEF then an automatic search for a shift is made. There are two algorithms. If the search value is INDEF then a cross-correlation of line peaks is done. Otherwise if a non-zero value is given then a pattern matching algorithm (see \fIautoidentify\fR) is used. A positive value specifies the search radius in dispersion units and a negative value specifies a search radius as a fraction of the reference dispersion range. .le .ls nlost = 0 When reidentifying features by tracing, if the number of features not found in the new image vector exceeds this number then the reidentification record is not written to the database and the trace is terminated. A warning is printed in the log and in the verbose output. .le The following parameters define the finding and recentering of features. See also \fBcenter1d\fR. .ls cradius = 5. Centering radius in pixels. If a reidentified feature falls further than this distance from the previous line or column when tracing or from the reference feature position when reidentifying a new image then the feature is not reidentified. .le .ls threshold = 0. In order for a feature center to be determined, the range of pixel intensities around the feature must exceed this threshold. This parameter is used to exclude noise peaks and terminate tracing when the signal disappears. However, failure to properly set this parameter, particularly when the data values are very small due to normalization or flux calibration, is a common error leading to failure of the task. .le The following parameters select and control the automatic addition of new features during reidentification. .ls addfeatures = no Add new features from a line list during each reidentification? If yes then the following parameters are used. This function can be used to compensate for lost features from the reference solution, particularly when tracing. Care should be exercised that misidentified features are not introduced. .le .ls coordlist = "linelists$idhenear.dat" User coordinate list consisting of a list of line coordinates. Some standard line lists are available in the directory "linelists$". The standard line lists are described under the topic \fIlinelists\fR. .le .ls match = -3. The maximum difference for a match between the feature coordinate function value and a coordinate in the coordinate list. Positive values are in user coordinate units and negative values are in units of pixels. .le .ls maxfeatures = 50 Maximum number of the strongest features to be selected automatically from the coordinate list. .le .ls minsep = 2. The minimum separation, in pixels, allowed between feature positions when defining a new feature. .le The following parameters determine the input and output of the task. .ls database = "database" Database containing the feature data for the reference image and in which the features for the reidentified images are recorded. .le .ls logfiles = "logfile" List of files in which to keep a processing log. If a null file, "", is given then no log is kept. .le .ls plotfile = "" Optional file to contain metacode plots of the residuals. .le .ls verbose = no Print reidentification information on the standard output? .le .ls graphics = "stdgraph" Graphics device. The default is the standard graphics device which is generally a graphics terminal. .le .ls cursor = "" Cursor input file. If a cursor file is not given then the standard graphics cursor is read. .le The following parameters are queried when the 'b' key is used in the interactive review. .ls crval, cdelt These parameters specify an approximate coordinate value and coordinate interval per pixel when the automatic line identification algorithm ('b' key) is used. The coordinate value is for the pixel specified by the \fIcrpix\fR parameter in the \fBaidpars\fR parameter set. The default value of \fIcrpix\fR is INDEF which then refers the coordinate value to the middle of the spectrum. By default only the magnitude of the coordinate interval is used. Either value may be given as INDEF. In this case the search for a solution will be slower and more likely to fail. The values may also be given as keywords in the image header whose values are to be used. .le .ls aidpars = "" (parameter set) This parameter points to a parameter set for the automatic line identification algorithm. See \fIaidpars\fR for further information. .le .ih DESCRIPTION Features (spectral lines, cross-dispersion profiles, etc.) identified in a single reference vector (using the tasks \fBidentify\fR or \fBautoidentify\fR) are reidentified in other reference vectors and the set of reference vectors are reidentified in other images with the same type of vectors. A vector may be a single one dimensional (1D) vector in a two or three dimensional (2D or 3D) image, the sum of neighboring vectors to form a 1D vector of higher signal, or 1D spectra in multiaperture images. The number of vectors summed in 2D and 3D images is specified by the parameter \fInsum\fR. This parameter does not apply to multiaperture images. As the previous paragraph indicates, there are two stages in this task. The first stage is to identify the same features from a single reference vector to a set of related reference vectors. This generally consists of other vectors in the same reference image such as other lines or columns in a long slit spectrum or the set of 1D aperture spectra in a multiaperture image. In these cases the vectors are identified by a line, column, band, or aperture number. The second stage is to reidentify the features from the reference vectors in the matching vectors of other images. For example the same lines in the reference image and another image or the same apertures in several multiaperture images. For multiaperture images the reference vector and target vector will have the same aperture number but may be found in different image lines. The first stage may be skipped if all the reference vectors have been identified. If the images are 2D or 3D or multiaperture format and a \fIstep\fR greater than zero is specified then additional vectors (lines/columns/bands) in the reference image will be reidentified from the initial master reference vector (as defined by an image section or \fIsection\fR parameter) provided they have not been reidentified previously or the \fIoverride\fR flag is set. For multiple aperture spectral images, called multiaperture, a step size of zero means don't reidentify any other aperture and any other step size reidentifies all apertures. For two and three dimensional images, such as long slit and Fabry-Perot spectra, the step(s) should be large enough to minimize execution time and storage requirements but small enough to follow shifts in the features (see the discussion below on tracing). The reidentification of features in other reference image vectors may be done in two ways selected by the parameter \fItrace\fR. If not tracing, the initial reference vector is applied to the other selected vectors. If tracing, the reidentifications are made with respect to the last set of identifications as successive steps away from the reference vector are made. The tracing method is appropriate for two and three dimensional spatial images, such as long slit and Fabry-Perot spectra, in which the positions of features traced vary smoothly. This allows following large displacements from the initial reference by using suitably small steps. It has the disadvantage that features lost during the reidentifications will not propagate (unless the \fIaddfeatures\fR option is used). By not tracing, the original set of features is used for every other vector in the reference image. When tracing, the parameter \fInlost\fR is used to terminate the tracing whenever this number of features has been lost. This parameter, in conjunction with the other centering parameters which define when a feature is not found, may be useful for tracing features which disappear before reaching the limits of the image. When reidentifying features in other images, the reference features are those from the same aperture, line, column, or band of the reference image. However, if the \fInewaps\fR parameter is set apertures in multiaperture spectra which are not in the reference image may be reidentified against the master reference aperture and added to the list of apertures to be reidentified in other images. This is useful when spectra with different aperture numbers are stored as one dimensional images. The reidentification of features between a reference vector and a target vector is done as follows. First a mean shift between the two vectors is determined. After correcting for the shift the estimated pixel position of each reference feature in the target vector is used as the starting point for determining a feature center near this position. The centering fails the feature is dropped and a check against the \fInlost\fR is made. If it succeeds it is added to the list of features found in the target spectrum. A zero point shift or new dispersion function may be determined. New features may then be added from a coordinate list. The details are given below. There may be a large shift between the two vectors such that the same feature in the target vector is many pixels away from the pixel position in the reference spectrum. A shift must then be determined. The \fIshift\fR parameter may be used to specify a shift. The shift is in user coordinates and is added to the reference user coordinates before trying to center on a feature. For example if the reference spectrum has a feature at 5015A but in the new spectrum the feature is at 5025A when the reference dispersion function is applied then the shift would be +10. Thus a reference feature at 5015A would have the shift added to get 5025A, then the centering would find the feature some pixel value and that pixel value would be used with the true user coordinate of 5015A in the new dispersion solution. When tracing a 2D/3D reference spectrum the shift is applied to the previous reidentified spectrum rather than the initial reference spectrum. The shift is added for increasing line or column values and subtracted for decreasing line or column values. This allows "tracing" when there is a rotation or tilt of the 2D or 3D spectrum. When not tracing the shift is always added to the reference spectrum features as described previously. When reidentify other images with the reference spectrum the shift parameter is always just added to the reference dispersion solution matching the aperture, line, or column being reidentified. If the \fIshift\fR parameter is given as INDEF then an automatic search algorithm is applied. There are two algorithms that may be used. If the \fIsearch\fR parameter is INDEF then a cross-correlation of the features list with the peaks found in the target spectrum is performed. This algorithm can only find small shifts since otherwise many lines may be missing off either end of the spectrum relative to the reference spectrum. If the search parameter is non-zero then the pattern matching algorithm described in \fIaidpars\fR is used. The search parameter specified a search radius from the reference solution. If the value is positive the search radius is a distance in dispersion units. If the value is negative then the absolute value is used as a fraction of the dispersion range in the reference solution. For example, a value of -0.1 applied to reference dispersion solution with a range of 1000A would search for a new solution within 100A of the reference dispersion solution. The pattern matching algorithm has to stages. First if there are more than 10 features in the reference the pattern matching tries to match the lines in the target spectrum to those features with a dispersion per pixel having the same sign and a value within 2%. If no solution is found then the \fIlinelist\fR is used to match against the lines in the target spectrum, again with the dispersion per pixel having the same sign and a value within 5%. The first stage works when the set of features is nearly the same while the second stage works when the shifts are large enough that many features in the reference and target spectra are different. The centering algorithm is described under the topic \fIcenter1d\fR and also in \fBidentify\fR. If a feature positions shifts by more than the amount set by the parameter \fIcradius\fR from the starting position (possibly after adding a shift) or the feature strength (peak to valley) is less than the detection \fIthreshold\fR then the new feature is discarded. The \fIcradius\fR parameter should be set large enough to find the correct peak in the presence of any shifts but small enough to minimize incorrect identifications. The \fIthreshold\fR parameter is used to eliminate identifications with noise. Failure to set this parameter properly for the data (say if data values are very small due to a calibration or normalization operation) is the most common source of problems in using this task. If a fitting function is defined for the features in the reference image, say a dispersion function in arc lamp spectra, then the function is refit at each reidentified line or column if the parameter \fIrefit\fR is yes. If refitting is not selected then a zero point shift in the user coordinates is determined without changing the form of the fitting function. The latter may be desirable for tracking detector shifts through a sequence of observation using low quality calibration spectra. When refitting, the fitting parameters from the reference are used including iterative rejection parameters to eliminate misidentifications. If the parameter \fIaddfeatures\fR is set additional features may be added from a line list. If there are reference features then the new features are added AFTER the initial reidentification and function fit. If the reference consists only of a dispersion function, that is it has no features, then new features will be added followed by a function fit and then another pass of adding new features. A maximum number of added features, a matching distance in user coordinates, and a minimum separation from other features are additional parameters. This option is similar to that available in \fBidentify\fR and is described more fully in the help for that task. A statistics line is generated for each reidentified vector. The line contains the name of the image being reidentified (which for two dimensional images includes the image section and for multiaperture spectra includes the aperture number), the number of features found relative to the number of features in the reference, the number of features used in the function fit relative to the number found, the mean pixel, user coordinate, and fractional user coordinate shifts relative to the reference coordinates, and the RMS relative to the final coordinate system (whether refit or simply shifted) excluding any iteratively rejected features from the calculation. If the task is run with the \fIinteractive\fR flag the statistics line is printed to the standard output (the terminal) and a query is made whether to examine and/or refit the features. A response of yes or YES will put the user in the interactive graphical mode of \fBidentify\fR. See the description of this task for more information. The idea is that one can monitor the statistics information, particularly the RMS if refitting, and select only those which may be questionable to examine interactively. A response of no or NO will continue on to the next reidentification. The capitalized responses turn off the query and act as permanent response for all other reidentifications. This statistics line, including headers, is written to any specified log files. The log information includes the image being reidentified and the reference image, and the initial shift. If an accessible file name is given for the plot file then a residual plot of the reidentified lines is recorded in this file. The plot file can be viewed with \fBgkimosaic, stdgraph\fR or reading the file with ".read" when in cursor mode (for example with "=gcur"). The reidentification results for this task are recorded in a \fIdatabase\fR. Currently the database is a directory and entries in the database are text files with filenames formed by adding the prefix "id" to the image name without an image extension. .ih EXAMPLES 1. Arc lines and a dispersion solution were defined for the middle aperture in the multispec for arc spectrum a042.ms. To reidentify the other apertures in the reference image and then another arc image: .nf cl> reiden a042.ms a045.ms inter+ step=1 ver+ REIDENTIFY: NOAO/IRAF V2.9 valdes@puppis Fri 29-Jun-90 Reference image = a042.ms.imh, New image = a042.ms, Refit = yes Image Data Found Fit Pix Shift User Shift RMS a042.ms - Ap 24 48/48 47/48 -2.38E-4 -3.75E-6 0.699 Fit dispersion function interactively? (no|yes|NO|YES) (yes): y a042.ms - Ap 24 48/48 47/48 -2.38E-4 -3.75E-6 0.699 a042.ms - Ap 23 48/48 47/48 0.216 1.32 0.754 Fit dispersion function interactively? (no|yes|NO|YES) (yes): n a042.ms - Ap 22 48/48 47/48 0.0627 0.383 0.749 Fit dispersion function interactively? (no|yes|NO|YES) (yes): n a042.ms - Ap 21 48/48 47/48 0.337 2.06 0.815 Reference image = a042.ms.imh, New image = a045.ms, Refit = yes Image Data Found Fit Pix Shift User Shift RMS a045.ms - Ap 24 48/48 47/48 -2.38E-4 -3.75E-6 0.699 Fit dispersion function interactively? (no|yes|NO|YES) (yes): y a045.ms - Ap 24 48/48 47/48 -2.38E-4 -3.75E-6 0.699 a045.ms - Ap 23 48/48 47/48 0.216 1.32 0.754 Fit dispersion function interactively? (no|yes|NO|YES) (yes): N a045.ms - Ap 22 48/48 47/48 0.0627 0.383 0.749 a042.ms - Ap 21 48/48 47/48 0.337 2.06 0.815 a042.ms - Ap 20 48/48 47/48 -0.293 -1.79 0.726 a042.ms - Ap 19 48/48 48/48 0.472 2.88 0.912 .fi This example is verbose and includes interactive review of reidentifications. The statistics lines have been shortened. 2. To trace a stellar profile and arc lines in long slit images for the purpose of making a distortion correction: .nf cl> reiden rog022[135,*] "" trace+ cl> reiden rog023 "" sec="mid line" trace+ .fi .ih REVISIONS .ls REIDENTIFY V2.11 The \fIsearch\fR parameter and new searching algorithm has been added. The task will now work with only a warning if the reference image is absent; i.e. it is possible to reidentify given only the database. The \fIaddfeatures\fR function will now add features before a fit if there are no reference database features. Previously features could only be added after an initial fit using the reference features and, so, required the reference database to contain features for reidentification. This new feature is useful if one wants to uses a dispersion function from one type of calibration but wants to add features for a different kind of calibration. .le .ls REIDENTIFY V2.10.3 The section, nsum, step, and shift parameter syntax was extended to apply to 3D images. The previous values and defaults may still be used. For multiaperture data a step of zero selects only the reference aperture to be reidentified and any other step selects reidentifying all apertures. .le .ls REIDENTIFY V2.10 This task is a new version with many new features. The new features include an interactive options for reviewing identifications, iterative rejection of features during fitting, automatic addition of new features from a line list, and the choice of tracing or using a single master reference when reidentifying features in other vectors of a reference spectrum. Reidentifications from a reference image to another image is done by matching apertures rather than tracing. New apertures not present in the reference image may be added. .le .ih SEE ALSO autoidentify, identify, aidpars, center1d, linelists, fitcoords .endhelp �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������sptable-1.0.pre20180612/src/xonedspec/doc/rspectext.hlp���������������������������������������������0000664�0000000�0000000�00000011262�13310232156�0022465�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.help rspectext Oct93 onedspec .ih NAME rspectext -- convert 1D ascii text spectra to IRAF image spectra .ih USAGE rspectext input output .ih PARAMETERS .ls input Input list of ascii text spectra. These may have a optional FITS header at the beginning and then two columns of wavelength and flux. .le .ls output Output list of IRAF spectra image names. The list must match the input list. .le The following parameters are only used if there is no FITS header with the data. .ls title = "" Title to be assigned to the spectra. .le .ls flux = no Are the flux values flux calibrated? If so then header keywords are inserted to identify this for the IRAF spectral software. .le .ls dtype = "linear" (none|linear|log|nonlinear|interp) Type of dispersion to assign to the spectra. The options are: .ls none No dispersion function and nothing is added to the image header. .le .ls linear Store the linear dispersion parameters \fBcrval1\fR and \fBcdelt1\fR in the image header. The wavelength values are ignored. This may be used if the wavlength values are known to be linear but one wants to avoid possible roundoff and resampling errors introduced by the "interp" option. .le .ls log Store the log-linear dispersion parameters \fBcrval1\fR and \fBcdelt1\fR in the image header. The wavelength values are ignored. This may be used if the wavlength values are known to be linear in the log of the wavelength but one wants to avoid possible roundoff and resampling errors introduced by the "interp" option. .le .ls nonlinear Store the wavelength values in the image header as a lookup table. The flux values are not resampled. The wavelength values need not be evenly sampled. .le .ls interp Use the wavelength values to resample to a linear dispersion between the first and last wavelength values. The dispersion per pixel is determined by the number of pixels and the endpoint wavelengths. .le .le .ls crval1 = 1., cdelt1 = 1. The wavelength coordinate of the first pixel and the wavelength interval per pixel to be used with the linear and log dispersion types. .le .ih DESCRIPTION Ascii text files consisting of an optional FITS header (usually produced by \fBwspectext\fR) and a two column list of wavelengths and fluxes are converted to IRAF image spectra. If a header is included then the header information is assumed to describe the spectra including any dispersion function. If no header is given then the minimal information for describing spectra in IRAF is added. The dispersion function can be set either a linear or log-linear based on two keywords (ignoring the wavelength values) or from the wavelength values. The latter may be stored in the header as a lookup table allowing for nonlinear dispersions or resample to a linear dispersion. This task is a script based on \fBrtextimage\fR for the creating the image and entering the flux values, \fBhedit\fR to set some of the header keywords, and \fBdispcor\fR to handle the nonlinear or resampled dispersion functions. .ih EXAMPLES 1. Create spectrum from a text file originally produced by \fBwspectext\fR. .nf cl> type text001 BITPIX = 8 / 8-bit ASCII characters NAXIS = 1 / Number of Image Dimensions NAXIS1 = 100 / Length of axis ORIGIN = 'NOAO-IRAF: WTEXTIMAGE' / IRAF-MAX= 0. / Max image pixel (out of date) IRAF-MIN= 0. / Min image pixel (out of date) IRAF-B/P= 32 / Image bits per pixel IRAFTYPE= 'REAL FLOATING ' / Image datatype OBJECT = 'TITLE ' / FILENAME= 'TEST ' / IRAF filename FORMAT = '5G14.7 ' / Text line format APNUM1 = '1 1 ' DC-FLAG = 0 WCSDIM = 1 CTYPE1 = 'LINEAR ' CRVAL1 = 4000. CRPIX1 = 1. CDELT1 = 10.1010101010101 CD1_1 = 10.1010101010101 LTM1_1 = 1. WAT0_001= 'system=equispec ' WAT1_001= 'wtype=linear label=Wavelength units=Angstroms ' END 4000.00 1000. 4010.10 1005.54 4020.20 1011.05 ... cl> rspectext text001 spec001 .fi 2. Create a spectrum with a nonlinear dispersion using the wavelength values as a lookup table. .nf cl> type text002 4000.00 1000. 4010.10 1005.54 4020.20 1011.05 ... cl> rspectext text002 spec002 title="HH12" dtype=nonlinear .fi .ih REVISIONS .ls RSPECTEXT V2.11 The task now automatically senses the presence of a header. .le .ls RSPECTEXT V2.10.3 This is a new task with this version. .le .ih SEE ALSO wspectext, rtextimage, dispcor, mkms, imspec, sinterp .endhelp ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������sptable-1.0.pre20180612/src/xonedspec/doc/sapertures.hlp��������������������������������������������0000664�0000000�0000000�00000016675�13310232156�0022656�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.help sapertures Jul95 noao.onedspec .ih NAME sapertures -- Set or change aperture header information .ih USAGE sapertures input .ih PARAMETERS .ls input List of spectral images to be modified. .le .ls apertures = "" List of apertures to be modified. The null list selects all apertures. A list consists of comma separated numbers and ranges of numbers. A range is specified by a hyphen. An optional step size may be given by using the 'x' followed by a number. See \fBxtools.ranges\fR for more information. .le .ls apidtable = "" Aperture table. This may be either a text file or an image. A text file consisting of lines with an aperture number, beam number, dispersion type code, coordinate of the first physical pixel, coordinate interval per physical pixel, redshift factor, lower extraction aperture position, upper extraction aperture position, and aperture title or identification. An image will contain the keywords SLFIBnnn with string value consisting of aperture number, beam number, optional right ascension and declination, and aperture title. Any field except the aperture number may be given the value INDEF to indicate that the value is not to be changed from the current value. Any apertures not in this table are assigned the values given by the task parameters described below. As a special case a file having just the aperture number, beam number, and spectrum aperture identification may be used. This file format as well as use of an image header is the same as that in the \fBapextract\fR package. .le .ls wcsreset = no Reset the world coordinate system (WCS) of the selected apertures to uncorrected pixels. If this parameter is set the \fIapidtable\fR and task aperture parameters are ignored. This option sets the dispersion type flag to -1, the starting coordinate value to 1, the interval per pixel to 1, and no redshift factor and leaves the other parameters unchanged. The option is useful when it is desired to apply a second dispersion correction using \fBidentify\fR and \fBdispcor\fR. .le .ls verbose = no Print a record of each aperture modified? Only those apertures in which the beam number or label are changed are printed. .le If no aperture table is specified or if there is not an aperture entry in the table for a selected aperture the following parameter values are used. A value of INDEF will leave the corresponding parameter unchanged. .ls beam = INDEF Beam number. .le .ls dtype = INDEF Dispersion type. The dispersion types are: .nf -1 Linear with dispersion correction flag off 0 Linear with dispersion correction flag on 1 Log-linear with dispersion correction flag on .fi .le .ls w1 = INDEF Coordinate of the first physical pixel. Note that it is possible that the physical pixels are not the same as the logical pixels if an image section has been extracted. .le .ls dw = INDEF Coordinate interval per physical pixel. Note that it is possible that the physical pixels intervals are not the same as the logical pixels intervals if an image section has been extracted. .le .ls z = INDEF Redshift factor. This is usually set with the task \fBdopcor\fR. Coordinates are divided by one plus the redshift factor (1+z). .le .ls aplow = INDEF, aphigh = INDEF The aperture extraction limits. These are set when the \fBapextract\fR package is used and it is unlikely that one would use this task to change them. .le .ls title = INDEF Aperture title or identification string. .le .ih DESCRIPTION This task sets or changes any of the aperture specific parameters except the aperture number and the number of valid pixels. It is particularly useful for images which use the "multispec" world coordinate system attribute strings which are not readily accessible with other header editors. A list of images and a list of apertures is used to select which spectra are to be modified. The default empty string for the apertures selects all apertures. The new values are specified either in an aperture table file or with task parameters. The aperture table is used to give different values to specific apertures. If all apertures are to have the same values this file need not be used. The aperture parameters which may be modified are the beam number, the dispersion type, the coordinate of the first physical pixel, the coordinate interval per physical pixel, the redshift factor, the aperture extraction limits, and the title. The task has parameters for each of these and the aperture table consists of lines starting with an aperture number followed by the above parameters in the list order and separated by whitespace. As a special case the aperture table may be a file abbreviated to aperture number, beam number, and title or an image with keywords SLFIBnnn containing the aperture number, beam number, optional right ascension and declination, and title. These special cases allow use of the same file orimage used in the \fBapextract\fR package. If any of the parameters are specified as INDEF then the value will be unchanged. If the \fIwcsreset\fR parameter is set then the aperture table and task aperture parameters are ignored and the selected apertures are reset to have a dispersion type of -1, a starting coordinate of 1, a coordinate interval of 1, and a redshift factor of 0. This other parameters are not changed. These choice of parameters has the effect of resetting the spectrum to physical pixel coordinates and flagging the spectra as not being dispersion calibrated. One use of this option is to allow the \fBdispcor\fR task to be reapplied to previously dispersion calibrated spectra. The \fIverbose\fR parameter lists the old and new values when there is a change. If there are no changes there will be no output. .ih EXAMPLES 1. To add titles to a multifiber extraction and change one of the beam numbers: .nf cl> type m33aps 36 2 Henear 37 0 Sky 38 1 New title 39 1 Another title 41 0 Sky 42 1 Yet another title 43 1 YAT 44 1 Was a sky but actually has an object 45 1 Wow 46 1 Important new discovery 47 0 Sky 48 2 Henear cl> saper m33.ms apid=m33aps v+ demoobj1.ms: Aperture 37: --> Sky Aperture 38: --> New title Aperture 39: --> Another title Aperture 41: --> Sky Aperture 42: --> Yet another title Aperture 43: --> YAT Aperture 44: beam 0 --> beam 1 Aperture 44: --> Was a sky but actually has an object Aperture 45: --> Wow Aperture 46: --> Important new discovery Aperture 47: --> Sky .fi 2. To reset a dispersion calibrated multifiber spectrum: .nf cl> saper test.ms wcsreset+ verbose+ test.ms: Aperture 1: w1 4321. --> 1. dw 1.23 --> 1. Aperture 2: w1 4321. --> 1. dw 1.23 --> 1. .fi 3. To set a constant wavelength length scale (with the default parameters): .nf cl> saper test.ms dtype=0 w1=4321 dw=1.23 v+ test.ms: Aperture 1: w1 1. --> 4321. dw 1. --> 1.23 Aperture 2: w1 1. --> 4321. dw 1. --> 1.23 .fi 4. To reset the wavelengths and title of only aperture 3: .nf cl> saper test.ms aper=3 w1=4325 dw=1.22 title=HD12345 v+ test.ms: Aperture 3: w1 4321. --> 4325. dw 1.23 --> 1.22 apid --> HD12345 .fi .ih REVISIONS .ls SAPERTURES V2.11 This task has been modified to allow use of image header keywords as done in the APEXTRACT package. .le .ls SAPERTURES V2.10.3 This task has been greatly expanded to allow changing any of the WCS parameters as well as the beam number and aperture title. .le .ls SAPERTURES V2.10 This task is new. .le .ih SEE ALSO specshift, proto.wcsreset, hedit, ranges, onedspec.package .endhelp �������������������������������������������������������������������sptable-1.0.pre20180612/src/xonedspec/doc/sarith.hlp������������������������������������������������0000664�0000000�0000000�00000056762�13310232156�0021754�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.help sarith Mar93 noao.onedspec .ih NAME sarith -- Spectrum arithmetic .ih USAGE sarith input1 op input2 output .ih PARAMETERS .ls input1 List of input images to be used as operands. .le .ls op Operator to be applied to the first operand or to both operands. The unary or single operand operators are: .nf abs - absolute value copy - copy (see also \fBscopy\fR) dex - decimal exponentiation (antilog of base 10 logarithm) exp - base e exponentiation (antilog of natural logarithm) flam - convert F-nu to F-lambda fnu - convert F-lambda to F-nu inv - inverse ln - natural logarithm log - base 10 logarithm lum - convert magnitude to luminosity mag - convert luminosity to magnitude sqrt - square root .fi The binary or two operand operators are: .nf replace - replace first operand values by second operand values + - addition - - subtraction * - multiplication / - division ^ - exponentiation .fi .le .ls input2 Lists of input spectra or constants to be used as second operands for binary operations. If a single value is specified it applies to all the first operand input images otherwise the list must match the first operand list in number. .le .ls output List of resultant output images or root names. Image sections are ignored and if the output format is "onedspec" then any record extensions are stripped to form the root name. If no output list is specified then the input list is used and the input images are replaced by the resultant spectra. If a single output name is specified then all resultant spectra are written to the same output image or image root name. This allows packing or merging multiple spectra and requires properly setting the \fIclobber\fR, \fImerge\fR, \fIrenumber\fR and \fIoffset\fR parameters to achieve the desired output. If more than one output image is specified then it must match the input image list in number. .le .ls w1 = INDEF, w2 = INDEF Starting and ending wavelengths to be copied. If \fIw1\fR is not specified then the wavelength of the starting edge of the first pixel is used (wavelength at pixel coordinate 0.5) and if \fIw2\fR is not specified then the wavelength of the ending edge of the last pixel is used (wavelength of the last pixel plus 0.5). If both are not specified, that is set to INDEF, then the whole spectrum is copied and the \fIrebin\fR parameter is ignored. Note that by specifying both endpoints the copied region can be set to have increasing or decreasing wavelength per pixel. If the spectrum only partially covers the specified range only that portion of the spectrum within the range is copied. It is an error if the range is entirely outside that of a spectrum. .le .ls apertures = "", beams = "" List of apertures and beams to be selected from the input spectra. The logical intersection of the two lists is selected. The null list selects all apertures or beams. A list consists of comma separated numbers and ranges of numbers. A range is specified by a hyphen. An optional step size may be given by 'x' followed by a number. See \fBxtools.ranges\fR for more information. If the first character is "!" then the apertures/beams not in the list are selected. Note that a "!" in either of the lists complements the intersection of the two lists. For longslit input spectra the aperture numbers selects the lines or columns to be extracted. For 3D Fabry-Perot spectra the aperture numbers select the first spatial axis. .le .ls bands = "" List of bands in 3D multispec. For 3D spatial spectra the band parameter applies to the second spatial axis. The null list selects all bands. The syntax is as described above. .le .ls apmodulus = 0 Modulus to be applied to the input aperture numbers before matching against the aperture list. If zero then no modulus is used. This is used to select apertures which are related by the same modulus, typically a factor of 10; for example, 10, 1010, and 2010 with a modulus of 1000 are related. .le .ls reverse = no Reverse the order of the operands in a binary operation? Because the first operand is used as the image header template, dispersion coordinate template, and output image in the case of a null output list it must be an image and not a constant. To allow certain operations, for example subtracting a spectra from a constant or using the subtractand as the dispersion coordinate template, the reverse option is used to reverse the order of the operands in a binary operation. .le .ls ignoreaps = no Ignore aperture numbers in the second operand? Normally, spectra in binary operations must have matching aperture numbers, otherwise an error is printed. If this parameter is yes then the spectra are matched by line number with the last line being used if the second operand spectrum has fewer lines than the first operand spectrum. This is generally used to allow using a single spectrum with multiple aperture spectra. .le .ls format = "multispec" (multispec|onedspec) Output image format and name syntax. The "multispec" format consists of one or more spectra in the same image file. The "onedspec" format consists of a single spectrum per image with names having a root name and a four digit aperture number extension. Note that converting to "onedspec" format from three dimensional images where the third dimension contains associated spectra will not include data from the extra dimension. Image sections may be used in this case. .le .ls renumber = no Renumber the output aperture numbers? If set the output aperture numbers, including any preexisting spectra when merging, are renumbered beginning with 1. The \fIoffset\fR parameter may be used to change the starting number. .le .ls offset = 0 Offset to be added to the input or renumbered aperture number to form the final output aperture number. .le .ls clobber = no Modify an existing output image either by overwriting or merging? .le .ls merge = no Merge apertures into existing spectra? This requires that the \fIclobber\fR parameter be set. If not merging then the selected spectra entirely replace those in existing output images. If merging then the input spectra replace those in the output image with the same aperture number and new apertures are added if not present. .le .ls rebin = yes Rebin the spectrum to the exact wavelength range specified by the \fIw1\fR and \fIw2\fR parameters? If the range is given as INDEF for both endpoints this parameter does not apply. If a range is given and this parameter is not set then the pixels in the specified range (using the nearest pixels to the endpoint wavelengths) are copied without rebinning. In this case the wavelength of the first pixel may not be exactly that specified by \fIw1\fR and the dispersion, including non-linear dispersions, is unchanged. If this parameter is set the spectra are interpolated to have the first and last pixels at exactly the specified endpoint wavelengths while preserving the same number of pixels in the interval. Linear and log-linear dispersion types are maintained while non-linear dispersions are linearized. .le .ls errval = 0. Value for resultant pixel if an arithmetic error occurs such as dividing by zero or the square root of a negative number. .le .ls verbose = no Print a record of each operation? .le .ih DESCRIPTION \fBSarith\fR performs arithmetic operations on spectra. It is distinguished from \fBimarith\fR in that it includes unary operators, like \fBimfunction\fR but with some specific to astronomical spectra, and binary operations between two spectra are performed in dispersion coordinate space (typically wavelength) rather than logical pixel space. In the latter case the spectra are checked for matching dispersion functions (which are not necessarily linear) and, if they don't match, the second operand is interpolated without flux conservation. (If flux conservation is desired then the task \fBdispcor\fR should be used first.) Thus, the spectra may have different dispersion functions but the arithmetic is done at matching wavelengths. The default interpolation function is a 5th order polynomial. The choice of interpolation type is made with the package parameter "interp". It may be set to "nearest", "linear", "spline3", "poly5", or "sinc". Remember that this applies to all tasks which might need to interpolate spectra in the \fBonedspec\fR and associated packages. For a discussion of interpolation types see \fBonedspec\fR. The unary operators operate on the spectra in the first operand list to produce the specified output spectra, which may be the same as the input spectra. The operators include: .nf abs - absolute value copy - copy (see also \fBscopy\fR) dex - decimal exponentiation (antilog of base 10 logarithm) exp - base e exponentiation (antilog of natural logarithm) flam - convert F-nu to F-lambda fnu - convert F-lambda to F-nu inv - inverse ln - natural logarithm log - base 10 logarithm lum - convert magnitude to luminosity mag - convert luminosity to magnitude sqrt - square root .fi The luminosity to magnitude and magnitude to luminosity operators are based on the standard relation: .nf mag = -2.5 * log (lum) .fi where the log is base 10. The F-nu to F-lambda and F-lambda to F-nu operators are based on the relation: .nf F-nu = F-lambda * lambda / nu .fi where lambda is wavelength and nu is frequency (currently the wavelength is assumed to be Angstroms and so F-lambda is in units of per Angstrom and F-nu is in units of per Hertz). In all the operators it is the responsibility of user as to the appropriateness of the operator to the input. The binary operators operate on the spectra in the first operand list and the spectra or numerical constants in the second operand. Numeric constants are equivalent to spectra having the specified value at all pixels. The binary operators are the standard arithmetic ones plus exponentiation and replacement: .nf replace - replace first operand values by second operand values + - addition - - subtraction * - multiplication / - division ^ - exponentiation .fi If the second operand is a spectrum, as mentioned previously, it is interpolated, without flux conservation, to the dispersion function of the first operand spectrum if necessary. There is a distinctions between the first operand and the second operand. The first operand must always be a spectrum. It supplies the dispersion function to be matched by the second operand spectrum. It also supplies a copy of it's image header when a new output spectrum is created. In cases where it is desired to have the second operand be the dispersion/header reference and/or the first operand be a constant the \fIreverse\fR parameter is used. For example to subtract a spectrum from the constant 1: .nf cl> sarith 1 - spec invspec reverse+ .fi or to subtract two spectra using the subtractand as the dispersion reference: .nf cl> sarith spec1 - spec2 diff reverse+ .fi When a binary operation on a pair of spectra is performed the aperture numbers may be required to be the same if \fIignoreaps\fR is no. For images containing multiple spectra the apertures need not be in the same order but only that matching apertures exist. If this parameter is set to yes then aperture numbers are ignored when the operation is performed. For multiple spectra images the second operand spectra are matched by image line number rather than by aperture. If the second operand image has fewer lines, often just one line, then the last line is used repeatedly. This feature allows multiple spectra in the primary operand list to be operated upon by a single spectrum; for example to subtract one spectrum from all spectra in the in a multiple spectrum image. If it is an error to perform an operation on certain data values, for example division by zero or the square root of a negative number, then the output value is given the value specified by the parameter \fIerrval\fR. A log of the operations performed may be printed to the standard output, which may then be redirected if desired, if the \fIverbose\fR parameter is set. In the output the last bracketed number is the aperture number of the spectrum. INPUT/OUTPUT The arithmetic part of \fBsarith\fR is fairly straightforward and intuitive. The selection of input spectra from input images and the placing of output spectra in output images can be more confusing because there are many possibilities. This section concentrates on the topics of the input and output. Since the concepts apply to all of the operators it simplifies things to think in terms of copying input spectra to output spectra; the "copy" operator. Note that the task \fBscopy\fR is actually just this case of \fBsarith\fR with parameters set for copying. While the discussion here is similar to that in the help for \fBscopy\fR, the examples for that task are more focused for illustrating this topic than the \fBsarith\fR examples which concentrate more on the arithmetic aspects of the task. Input spectra are specified by an image list which may include explicit image names, wildcard templates and @files containing image names. The image names may also include image sections such as to select portions of the wavelength coverage. The input images may be either one or two dimensional spectra. One dimensional spectra may be stored in individual one dimensional images or as lines in two (or three) dimensional images. The one dimensional spectra are identified by an aperture number, which must be unique within an image, and a beam number. Two dimensional long slit and three dimensional Fabry-Perot spectra are treated, for the purpose of this task, as a collection of spectra with dispersion either along any axis specified by the DISPAXIS image header parameter or the \fIdispaxis\fR package parameter. The aperture and band parameters specify a spatial position. A number of adjacent lines, columns, and bands, specified by the \fInsum\fR package parameter, will be summed to form an aperture spectrum. If number is odd then the aperture/band number refers to the middle and if it is even it refers to the lower of the two middle lines or columns. In the case of many spectra each stored in separate one dimensional images, the image names may be such that they have a common root name and a four digit aperture number extension. This name syntax is called "onedspec" format. Including such spectra in an input list may be accomplished either with wildcard templates such as .nf name* name.????.imh .fi where the image type extension ".imh" must be given to complete the template but the actual extension could also be that for an STF type image, or using an @file prepared with the task \fBnames\fR. To generate this syntax for output images the \fIformat\fR parameter is set to "onedspec" (this will be discussed further later). From the input images one may select a range of wavelengths with the \fIw1\fR and \fIw2\fR parameters and a subset of spectra based on aperture and beam numbers using the \fIaperture\fR and \fIbeam\fR parameters. If the wavelength range is specified as INDEF the full spectra are used without any resampling. If the aperture and beam lists are not specified, an empty list, then all apertures and beams are selected. The lists may be those spectra desired or the complement obtained by prefixing the list with '!'. Only the selected wavelength range and spectra will be operated upon and passed on to the output images. Specifying a wavelength range is fairly obvious except for the question of pixel sampling. Either the pixels in the specified range are used without resampling or the pixels are resampled to correspond eactly to the requested range. The choice is made with the \fIrebin\fR parameter. In the first case the nearest pixels to the specified wavelength endpoints are determined and those pixels and all those in between are used. The dispersion relation is unchanged. In the second case the spectra are reinterpolated to have the specified starting and ending wavelengths with the same number of pixels between those points as in the original spectrum. The reinterpolation is done in either linear or log-linear dispersion. The non-linear dispersion functions are interpolated to a linear dispersion. Using \fBsarith\fR with long slit and Fabry-Perot images provides a quick and simple type of extraction as opposed to using the \fBapextract\fR package. When summing it is often desired to start each aperture after the number of lines summed. To do this specify a step size in the aperture/band list. For example to extract columns 3 to 23 summing every 5 columns you would use an aperture list of "3-23x5" and an \fInsum\fR of 5. If you do not use the step in the aperture list you would extract the sum of columns 1 to 5, then columns 2 to 6, and so on. In the special case of subapertures extracted by \fBapextract\fR, related apertures are numbered using a modulus; for example apertures 5, 1005, 2005. To allow selecting all related apertures using a single aperture number the \fIapmodulus\fR parameter is used to specify the modulus factor; 1000 in the above example. This is a very specialized feature which should be ignored by most users. The output list of images may consist of an empty list, a single image, or a list of images matching the input list in number. Note that it is the number of image names that matters and not the number of spectra since there may be any number of spectra in an image. The empty list converts to the same list as the input and is shorthand for replacing the input image with the output image upon completion; therefore it is equivalent to the case of a matching list. If the input consists of just one image then the distinction between a single output and a matching list is moot. The interesting distinction is when there is an input list of two or more images. The two cases are then a mapping of many-to-many or many-to-one. Note that it is possible to have more complex mappings by repeating the same output name in a matching list provided clobbering, merging, and possibly renumbering is enabled. In the case of a matching list, spectra from different input images will go to different output images. In the case of a single output image all spectra will go to the same output image. Note that in this discussion an output image when "onedspec" format is specified is actually a root name for possibly many images. However, it should be thought of as a single image from the point of view of image lists. When mapping many spectra to a single output image, which may have existing spectra if merging, there may be a conflict with repeated aperture numbers. One option is to consecutively renumber the aperture numbers, including any previous spectra in the output image when merging and then continuing with the input spectra in the order in which they are selected. This is specified with the \fIrenumber\fR parameter which renumbers beginning with 1. Another options which may be used independently of renumbering or in conjunction with it is to add an offset as specified by the \fIoffset\fR parameter. This is last step in determining the output aperture numbers so that if used with the renumber option the final aperture numbers begin with one plus the offset. It has been mentioned that it is possible to write and add to existing images. If an output image exists an error will be printed unless the \fIclobber\fR parameter is set. If clobbering is allowed then the existing output image will be replaced by the new output. Rather than replacing an output image sometimes one wants to replace certain spectra or add new spectra. This is done by selecting the \fImerge\fR option. In this case if the output has a spectrum with the same aperture number as the input spectrum it is replaced by the input spectrum. If the input spectrum aperture number is not in the output then the spectrum is added to the output image. To add spectra with the same aperture number and not replace the one in the output use the \fIrenumber\fR or \fIoffset\fR options. .ih EXAMPLES In addition to the examples in this section there are many examples in the help for \fBscopy\fR which illustrate aspects of selecting input spectra and producing various types of output. Those examples are equivalent to using the "copy" operator. The same examples will also apply with other operators where the input spectra are modified arithmetically before being copied to the output images. I. SIMPLE EXAMPLES The simple examples use only a single input image and create a new output image. 1. Examples of unary operations: .nf cl> sarith example1 mag "" magexample cl> sarith magexample lum "" example2 cl> sarith example1 log "" logexample .fi Note that a place holder for the second operand is required on the command line which will be ignored. 2. Examples of binary operations using constants: .nf cl> sarith example1 + 1000 example2 cl> sarith example1 - 1000 example2 reverse+ cl> sarith example1 / 1000 example2 cl> sarith example1 ** 2 example2 .fi 3. Examples of binary operations between spectra with matching apertures: .nf cl> sarith example1 + example2 example3 cl> sarith example1 - example2 example3 .fi 4. Example of binary operations between spectra with the second image consisting of a single spectrum: .nf cl> sarith example1 / flatspec flatexample1 ignore+ errval=1 .fi II. MORE COMPLEX EXAMPLES 5. Unary and constant operations on a list of images: .nf cl> sarith example* fnu "" %example%fnu% cl> sarith example* + 1000 %example%fnu% .fi 6. Binary operations on a list of images using a single second operand with matching apertures: .nf cl> sarith example* - skyspec %example%skysub%* .fi 7. Selecting apertures to operate upon: .nf cl> sarith example* - skyspec %example%skysub%* aper=1,5,9 .fi 8. Extract the sum of each 10 columns in a long slit spectrum and normalize by the central spectrum: .nf cl> nsum = "10" cl> sarith longslit copy "" longslit.ms aper=5-500x10 longslit[5] --> longslit.ms[5] longslit[15] --> longslit.ms[15] longslit[25] --> longslit.ms[25] ... cl> sarith longslit.ms / longslit.ms[*,25] norm ignore+ longslit.ms[5] / longslit.ms[*,25][245] --> norm[5] longslit.ms[15] / longslit.ms[*,25][245] --> norm[15] longslit.ms[25] / longslit.ms[*,25][245] --> norm[25] ... .fi 9. In place operations: .nf cl> sarith example* + 1000 example* clobber+ example1[1] + 1000. --> example1[1] example1[2] + 1000. --> example1[2] ... example2[1] + 1000. --> example2[1] example2[2] + 1000. --> example2[2] ... cl> sarith example* flam "" example* clobber+ example1[1] -- flam --> example1[1] example1[2] -- flam --> example1[2] ... example2[1] -- flam --> example2[1] example2[2] -- flam --> example2[2] ... cl> sarith example* - skyspec "" clobber+ ignore+ example1[1] + skyspec[1] --> example1[1] example1[2] + skyspec[1] --> example1[2] ... example2[1] + skyspec[1] --> example2[1] example2[2] + skyspec[1] --> example2[2] ... .fi 10. Merging existing spectra with the results of operations: .nf cl> sarith example* / flat "" clobber+ merge+ renum+ ignor+ .fi .ih REVISIONS .ls SARITH V2.11 Previously both w1 and w2 had to be specified to select a range to be used. Now if only one is specified the second endpoint defaults to the first or last pixel. The noise band in multispec data is only copied from the primary spectrum and not modified. This is a kludge until the noise is handled properly. .le .ls SARITH V2.10.3 Additional support for 3D multispec/equispec or spatial spectra has been added. The "bands" parameter allows selecting specific bands and the onedspec output format creates separate images for each selected aperture and band. .le .ls SARITH V2.10 This task is new. .le .ih SEE ALSO scopy, splot, imarith, imfunction .endhelp ��������������sptable-1.0.pre20180612/src/xonedspec/doc/sbands.hlp������������������������������������������������0000664�0000000�0000000�00000020315�13310232156�0021715�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.help sbands Nov93 onedspec .ih NAME sbands -- bandpass spectrophotometry of spectra .ih USAGE sbands input output bands .ih PARAMETERS .ls input Input list of spectra to be measured. These may be one dimensional spectra in individual or "multispec" format or calibrated spatial spectra such as long slit or Fabry-Perot images. The dispersion axis and summing parameters are specified by package parameters for the spatial spectra. .le .ls output Output file for the results. This may be a filename or "STDOUT" to write to the terminal. .le .ls bands Bandpass file consisting of lines with one, two, or three bandpasses per line. A bandpass is specified by an identification string (quoted if it is null or contains whitespace), the central wavelength, the width of the bandpass in wavelength, and a filter filename with the special value "none" if there is no filter (a flat unit response). This format is described further in the description section. .le .ls apertures = "" List of apertures to select from the input spectra. For one dimensional spectra this is the aperture number and for spatial spectra it is the column or line. If the null string is specified all apertures are selected. The aperture list syntax is a range list which includes intervals and steps (see \fBranges\fR). .le .ls normalize = yes Normalize the bandpass fluxes by the bandpass response? If no then the results will depend on the bandpass widths and filter function values. If yes then fluxes will be comparable to an average pixel value. When computing indices and equivalent widths the flux must either be normalized or the bandpasses and filter response functions must be the same. .le .ls mag = no, magzero = 0. Output the bandpass fluxes as magnitudes with specified magnitude zero point? .le .ls verbose = yes Include a verbose header giving a banner, the parameters used, the bandpasses, and column headings? .le .ih DESCRIPTION \fBSbands\fR performs bandpass spectrophotometry with one or more bandpasses on one or more spectra. A list of input spectra is specified. The spectra may be of any type acceptible in the \fBnoao.onedspec\fR package including multispec format with nonlinear dispersion, long slit spectra, and even 3D cubes with one dispersion axis. The \fIapertures\fR parameter allows selecting a subset of the spectra by aperture number. The bandpasses are specified in a text file. A bandpass consists of four fields; an identification name, the wavelength of the bandpass center, a bandpass width, and a filename for a filter. The identification is a string which must be quoted if a null name or a name with whitespace is desired. The identification could be given as the central wavelength if nothing else is appropriate. The filter field is a filename for a text file containing the filter values. A filter file consists of a wavelength ordered list of wavelength and relative response. Extrapolation uses the end point values and interpolation is linear. The special name "none" is used if there is no filter. This is equivalent to unit response at all wavelengths. In the bandpass file there may be one, two, or three bandpasses on a line. Below are some examples of the three cases: .nf alpha 5000 10 myalpha.dat beta1 4000 100 none beta2 4100 100 none line 4500 100 none red 4000 200 none blue 5000 200 none .fi The flux in each bandpass is measured by summing each pixel in the interval multiplied by the interpolated filter response at that pixel. At the edges of the bandpass the fraction of the pixel in the bandpass is used. If the bandpass goes outside the range of the data an INDEF value will be reported. If the \fInormalize\fR option is yes then the total flux is divided by the sum of the filter response values. If the \fImag\fR option is yes the flux will be converted to a magnitude (provided it is positive) using the formula .nf magnitude = magzero - 2.5 * log10 (flux) .fi where \fImagzero\fR is a parameter for the zero point magnitude and log10 is the base 10 logarithm. Note that there is no attempt to deal with the pixel flux units. This is the responsiblity of the user. If there is only one bandpass (on one line of the band file) then only the band flux or magnitude is reported. If there are two bandpasses the fluxes or magnitudes for the two bands are reported as well as a band index, the flux ratio or magnitude difference (depending on the \fImag\fR) flag, and an equivalent width using the second band as the continuum. If there are three bandpasses then a continuum bandpass flux is computed as the interpolation between the bandpass centers to the center of the first bandpass. The special bandpass identification "cont" will be reported. The equivalent width is obtained from the two bandpasses by the formala .nf eq. width = (1 - flux1 / flux2) * width1 .fi where flux1 and flux2 are the two bandpass fluxes and width1 is the width of the first bandpass. Note that for this to be meaningful the bandpasses should be normalized or have the same width/response. The results of measuring each bandpass in each spectrum are written to the specified output file. This file may be given as "STDOUT" to write the results to the terminal. The output file contains lines with the spectrum name and aperture, the band identifications and fluxes or magnitudes, and the band index and equivalent width (if appropriate). The \fIverbose\fR option allows creating a more documented output by including a commented header with the task name and parameters, the bandpass definitions, and column labels. The examples below show the form of the output. .ih EXAMPLES The following examples use artificial data and arbitrary bands. 1. Show example results with one, two, and three bandpass entries in the bandpass file. .nf cl> type bands test 6125 50 none red 6025 100 none blue 6225 100 none test 6125 50 none red 6025 100 none test 6125 50 none blue 6225 100 none test 6125 50 none cl> sbands oned STDOUT bands # SBANDS: NOAO/IRAF IRAFX valdes@puppis Mon 15:31:45 01-Nov-93 # bands = bands, norm = yes, mag = no # band filter wavelength width # test none 6125. 50. # red none 6025. 100. # blue none 6225. 100. # test none 6125. 50. # red none 6025. 100. # test none 6125. 50. # blue none 6225. 100. # test none 6125. 50. # # spectrum band flux band flux index eqwidth oned(1) test 44.33 cont 97.97 0.45 27.37 oned(1) test 44.33 red 95.89 0.46 26.89 oned(1) test 44.33 blue 100.04 0.44 27.84 oned(1) test 44.33 .fi 2. This example shows measurments on a long slit spectrum with an aperture selection and magnitude output. .nf cl> type lsbands.dat band1 4500 40 none band2 4600 40 none band3 4700 40 none cl> nsum=5 cl> sbands ls STDOUT lsbands.dat apertures=40-60x5 mag+ magzero=10.1 # SBANDS: NOAO/IRAF IRAFX valdes@puppis Mon 15:37:18 01-Nov-93 # bands = lsbands.dat, norm = yes, mag = yes, magzero = 10.10 # band filter wavelength width # band1 none 4500. 40. # band2 none 4600. 40. # band3 none 4700. 40. # # spectrum band mag ls[38:42,*](40) band1 3.14 ls[38:42,*](40) band2 3.19 ls[38:42,*](40) band3 3.15 ls[43:47,*](45) band1 3.13 ls[43:47,*](45) band2 3.15 ls[43:47,*](45) band3 3.14 ls[48:52,*](50) band1 2.34 ls[48:52,*](50) band2 2.43 ls[48:52,*](50) band3 2.43 ls[53:57,*](55) band1 3.10 ls[53:57,*](55) band2 3.15 ls[53:57,*](55) band3 3.12 ls[58:62,*](60) band1 3.14 ls[58:62,*](60) band2 3.19 ls[58:62,*](60) band3 3.15 .fi .ih REVISIONS .ls SBANDS V2.10.4 The flux column is now printed to 6 digits of precision with possible exponential format to permit flux calibrated spectra to print properly. .le .ls SBANDS V2.10.3 The task is new in this release .le .ih SEE ALSO splot .endhelp �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������sptable-1.0.pre20180612/src/xonedspec/doc/scombine.hlp����������������������������������������������0000664�0000000�0000000�00000110757�13310232156�0022254�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.help scombine Sep97 noao.onedspec .ih NAME scombine -- Combine spectra .ih USAGE scombine input output .ih PARAMETERS .ls input List of input images containing spectra to be combined. The spectra in the images to be combined are selected with the \fIapertures\fR and \fIgroup\fR parameters. Only the primary spectrum is combined and the associated band spectra are ignored. .le .ls output List of output images to be created containing the combined spectra. If the grouping option is "all" or "apertures" then only one output image will be created. In the first case the image will contain only one spectrum and in the latter case there will be a spectrum for each selected aperture. If the grouping option is "images" then there will be one output spectrum per input spectrum. .le .ls noutput = "" List of output images to be created containing the number of spectra combined. The number of images required is the same as the \fIoutput\fR list. Any or all image names may be given as a null string, i.e. "", in which case no output image is created. .le .ls logfile = "STDOUT" File name for recording log information about the combining operation. The file name "STDOUT" is used to write the information to the terminal. If the null string is specified then no log information is printed or recorded. .le .ls apertures = "" List of apertures to be selected for combining. If none is specified then all apertures are selected. The syntax is a blank or comma separated list of aperture numbers or aperture ranges separated by a hyphen. .le .ls group = "apertures" (all|images|apertures) Option for grouping input spectra for combining (after selection by aperture) from one or more input images. The options are: .ls "all" Combine all spectra from all images in the input list into a single output spectrum. .le .ls "images" Combine all spectra in each input image into a single spectrum in separate output images. .le .ls "apertures" Combine all spectra of the same aperture from all input images and put it into a single output image with the other selected apertures. .le .le .ls combine = "average" (average|median|sum) Option for combining pixels at the same dispersion coordinate after any rejection operation. The options are to compute the "average", "median", or "sum" of the pixels. The median uses the average of the two central values when the number of pixels is even. .le .ls reject = "none" (none|minmax|ccdclip|crreject|sigclip|avsigclip|pclip) Type of rejection operation performed on the pixels which overlap at each dispersion coordinate. The algorithms are discussed in the DESCRIPTION section. The rejection choices are: .nf none - No rejection minmax - Reject the nlow and nhigh pixels sigclip - Reject pixels using a sigma clipping algorithm avsigclip - Reject pixels using an averaged sigma clipping algorithm ccdclip - Reject pixels using CCD noise parameters crreject - Reject only positive pixels using CCD noise parameters pclip - Reject pixels using sigma based on percentiles .fi .le .ls first = no Use the first input spectrum of each set to be combined to define the dispersion coordinates for combining and output? If yes then all other spectra to be combined will be interpolated to the dispersion of this reference spectrum and that dispersion defines the dispersion of the output spectrum. If no, then all the spectra are interpolated to a linear dispersion as determined by the following parameters. The interpolation type is set by the package parameter \fIinterp\fR. .le .ls w1 = INDEF, w2=INDEF, dw = INDEF, nw = INDEF, log = no The output linear or log linear wavelength scale if the dispersion of the first spectrum is not used. INDEF values are filled in from the maximum wavelength range and minimum dispersion of the spectra to be combined. The parameters are aways specified in linear wavelength even when the log parameter is set to produce constant pixel increments in the log of the wavelength. The dispersion is interpreted in that case as the difference in the log of the endpoints divided by the number of pixel increments. .le .ls scale = "none" (none|mode|median|mean|exposure|@|!) Multiplicative image scaling to be applied. The choices are none, scale by the mode, median, or mean of the specified statistics section, scale by the exposure time in the image header, scale by the values in a specified file, or scale by a specified image header keyword. When specified in a file the scales must be one per line in the order of the input spectra. .le .ls zero = "none" (none|mode|median|mean|@|!) Additive zero level image shifts to be applied. The choices are none or shift by the mode, median, or mean of the specified statistics section, shift by values given in a file, or shift by values given by an image header keyword. When specified in a file the zero values must be one per line in the order of the input spectra. .le .ls weight = "none" (none|mode|median|mean|exposure|@|!) Weights to be applied during the final averaging. The choices are none, the mode, median, or mean of the specified statistics section, the exposure time, values given in a file, or values given by an image header keyword. When specified in a file the weights must be one per line in the order of the input spectra. .le .ls sample = "" Wavelength sample regions to use in computing spectrum statistics for scaling and weighting. If no sample regions are given then the entire input spectrum is used. The syntax is colon separated wavelengths or a file containing colon separated wavelengths preceded by the @ character; i.e. @. .le .ce Algorithm Parameters .ls lthreshold = INDEF, hthreshold = INDEF Low and high thresholds to be applied to the input pixels. This is done before any scaling, rejection, and combining. If INDEF the thresholds are not used. .le .ls nlow = 1, nhigh = 1 (minmax) The number of low and high pixels to be rejected by the "minmax" algorithm. These numbers are converted to fractions of the total number of input spectra so that if no rejections have taken place the specified number of pixels are rejected while if pixels have been rejected by thresholding or nonoverlap, then the fraction of the remaining pixels, truncated to an integer, is used. .le .ls nkeep = 1 The minimum number of pixels to retain or the maximum number to reject when using the clipping algorithms (ccdclip, crreject, sigclip, avsigclip, or pclip). When given as a positive value this is the minimum number to keep. When given as a negative value the absolute value is the maximum number to reject. This is actually converted to a number to keep by adding it to the number of images. .le .ls mclip = yes (ccdclip, crreject, sigclip, avsigcliip) Use the median as the estimate for the true intensity rather than the average with high and low values excluded in the "ccdclip", "crreject", "sigclip", and "avsigclip" algorithms? The median is a better estimator in the presence of data which one wants to reject than the average. However, computing the median is slower than the average. .le .ls lsigma = 3., hsigma = 3. (ccdclip, crreject, sigclip, avsigclip, pclip) Low and high sigma clipping factors for the "ccdclip", "crreject", "sigclip", "avsigclip", and "pclip" algorithms. They multiply a "sigma" factor produced by the algorithm to select a point below and above the average or median value for rejecting pixels. The lower sigma is ignored for the "crreject" algorithm. .le .ls rdnoise = "0.", gain = "1.", snoise = "0." (ccdclip, crreject) Effective CCD readout noise in electrons, gain in electrons/DN, and sensitivity noise as a fraction. These parameters are used with the "ccdclip" and "crreject" algorithms. The values may be either numeric or an image header keyword which contains the value. Note that if the spectra have been extracted from a 2D CCD image then the noise parameters must be adjusted for background and the aperture summing. .le .ls sigscale = 0.1 (ccdclip, crreject, sigclip, avsigclip) This parameter determines when poisson corrections are made to the computation of a sigma for images with different scale factors. If all relative scales are within this value of unity and all relative zero level offsets are within this fraction of the mean then no correction is made. The idea is that if the images are all similarly though not identically scaled, the extra computations involved in making poisson corrections for variations in the sigmas can be skipped. A value of zero will apply the corrections except in the case of equal images and a large value can be used if the sigmas of pixels in the images are independent of scale and zero level. .le .ls pclip = -0.5 (pclip) Percentile clipping algorithm parameter. If greater than one in absolute value then it specifies a number of pixels above or below the median to use for computing the clipping sigma. If less than one in absolute value then it specifies the fraction of the pixels above or below the median to use. A positive value selects a point above the median and a negative value selects a point below the median. The default of -0.5 selects approximately the quartile point. See the DESCRIPTION section for further details. .le .ls grow = 0 Number of pixels to either side of a rejected pixel to also be rejected. This applies only to pixels rejected by one of the rejection algorithms and not the threshold rejected pixels. .le .ls blank = 0. Value to use when there are no input pixels to combine for an output pixel. .le .ih DESCRIPTION \fBScombine\fR combines input spectra by interpolating them (if necessary) to a common dispersion sampling, rejecting pixels exceeding specified low and high thresholds, scaling them in various ways, applying a rejection algorithm based on known or empirical noise statistics, and computing the sum, weighted average, or median of the remaining pixels. The input spectra are specified using an image list in which each image may contain multiple spectra. The set of spectra may be restricted by the \fIaperture\fR parameter to specific apertures. The set of input spectra may then be grouped using the \fIgroup\fR parameter and each group combined separately into a final output spectrum. The grouping options are to select all the input spectra regardless of the input image or aperture number, select all spectra of the same aperture, or select all the spectra from the same input image. The output consists of either a single image with one spectrum for each combined group or, when grouping by image, an image with the single combined spectra from each input image. The output images and combined spectra inherit the header parameters from the first spectrum of the combined group. In addition to the combined spectrum an associated integer spectrum containing the number of pixels combined and logfile listing the combined spectra, scaling, weights, etc, may be produced. The spectral combining is done using pixels at common dispersion coordinates rather than physical or logical pixel coordinates. If the spectra to be combined do not have identical dispersion coordinates then the spectra are interpolated to a common dispersion sampling before combining. The interpolation conserves pixel values rather pixel fluxes. This means that flux calibrated data is treated correctedly and that spectra in counts are not corrected in the interpolation for changes in pixel widths. The default interpolation function is a 5th order polynomial. The choice of interpolation type is made with the package parameter "interp". It may be set to "nearest", "linear", "spline3", "poly5", or "sinc". Remember that this applies to all tasks which might need to interpolate spectra in the \fBonedspec\fR and associated packages. For a discussion of interpolation types see \fBonedspec\fR. There are two choices for the common dispersion coordinate sampling. If the \fIfirst\fR parameter is set then the dispersion sampling of the first spectrum is used. This dispersion system may be nonlinear. If the parameter is not set then the user specified linear or log linear dispersion system is used. Any combination of starting wavelength, ending wavelength, wavelength per pixel, and number of output pixels may be specified. Unspecified values will default to reasonable values based on the minimum or maximum wavelengths of all spectra, the minimum dispersion, and the number of pixels needed to satisfy the other parameters. If the parameters overspecify the linear system then the ending wavelength is adjusted based on the other parameters. Note that for a log linear system the wavelengths are still specified in nonlog units and the dispersion is finally recalculated using the difference of the log wavelength endpoints divided by the number pixel intervals (the number of pixels minus one). There are several stages to combining a selected group of spectra. The first is interpolation to a common dispersion sampling as discussed above. The second stage is to eliminate any pixels outside the specified thresholds. Note that the thresholds apply to the interpolated spectra. Scaling and zero offset factors are computed and applied to the spectra if desire. The computation of these factors as well as weights is discussed in the following section. Next there is a choice of rejection algorithms to identify and eliminate deviant pixels. Some of these are based on order statistics and some relative to the distance from an initial median or average using a noise model cutoff. A growing factor may be applied to neighbors of rejected pixels to reject additional pixels. The various algorithms are described in detail in a following section. Finally, the remaining pixels are combined by summing (which may not be appropriate when pixels are rejected), computing a median, or computing a weighted or unweighted average. The combined spectrum is written to an output image as well the number of pixels used in the final combining. SCALES AND WEIGHTS In order to combine spectra with rejection of pixels based on deviations from some average or median they must be scaled to a common level. There are two types of scaling available, a multiplicative intensity scale and an additive zero point shift. The intensity scaling is defined by the \fIscale\fR parameter and the zero point shift by the \fIzero\fR parameter. These parameters may take the values "none" for no scaling, "mode", "median", or "mean" to scale by statistics of the spectrum pixels, "exposure" (for intensity scaling only) to scale by the exposure time keyword in the image header, any other image header keyword specified by the keyword name prefixed by the character '!', and the name of a file containing the scale factors for the input image prefixed by the character '@'. Examples of the possible parameter values are shown below where "myval" is the name of an image header keyword and "scales.dat" is a text file containing a list of scale factors. .nf scale = none No scaling zero = mean Intensity offset by the mean scale = exposure Scale by the exposure time zero = !myval Intensity offset by an image keyword scale = @scales.dat Scales specified in a file .fi The spectrum statistics factors are computed within specified sample regions given as a series of colon separated wavelengths. If no regions are specified then all pixels are used. If the wavelength sample list is too long the regions can be defined in a file and specified in the \fIsample\fR parameter using the syntax @ where file is the filename. The statistics are as indicated by their names. In particular, the mode is a true mode using a bin size which is a fraction of the range of the pixels and is not based on a relationship between the mode, median, and mean. Also thresholded pixels are excluded from the computations as well as during the rejection and combining operations. The "exposure" option in the intensity scaling uses the value of the image header keyword (EXPTIME, EXPOSURE, or ITIME). Note that the exposure keyword is also updated in the final image as the weighted average of the input values. If one wants to use a nonexposure time keyword and keep the exposure time updating feature the image header keyword syntax is available; i.e. !. Scaling values may be defined as a list of values in a text file. The file name is specified by the standard @file syntax. The list consists of one value per line. The order of the list is assumed to be the same as the order of the input spectra. It is a fatal error if the list is incomplete and a warning if the list appears longer than the number of input spectra. Consideration of the grouping parameter must be included in generating this list since spectra may come from different images, some apertures may be missing, and, when there are multiple output spectra or images, the same list will be repeatedly used. If both an intensity scaling and zero point shift are selected the multiplicative scaling is done first. Use of both makes sense for images if the intensity scaling is the exposure time to correct for different exposure times and with the zero point shift allowing for sky brightness changes. This is less relevant for spectra but the option is available. The spectrum statistics and scale factors are recorded in the log file unless they are all equal, which is equivalent to no scaling. The intensity scale factors are normalized to a unit mean and the zero point shifts are adjust to a zero mean. Scaling affects not only the mean values between spectra but also the relative pixel uncertainties. For example scaling an spectrum by a factor of 0.5 will reduce the effective noise sigma of the spectrum at each pixel by the square root of 0.5. Changes in the zero point also changes the noise sigma if the spectrum noise characteristics are Poissonian. In the various rejection algorithms based on identifying a noise sigma and clipping large deviations relative to the scaled median or mean, one may need to account for the scaling induced changes in the spectrum noise characteristics. In those algorithms it is possible to eliminate the "sigma correction" while still using scaling. The reasons this might be desirable are 1) if the scalings are similar the corrections in computing the mean or median are important but the sigma corrections may not be important and 2) the spectrum statistics may not be Poissonian, either inherently or because the spectra have been processed in some way that changes the statistics. In the first case because computing square roots and making corrections to every pixel during the iterative rejection operation may be a significant computational speed limit the parameter \fIsigscale\fR selects how dissimilar the scalings must be to require the sigma corrections. This parameter is a fractional deviation which, since the scale factors are normalized to unity, is the actual minimum deviation in the scale factors. For the zero point shifts the shifts are normalized by the mean shift before adjusting the shifts to a zero mean. To always use sigma scaling corrections the parameter is set to zero and to eliminate the correction in all cases it is set to a very large number. If the final combining operation is "average" then the spectra may be weighted during the averaging. The weights are specified in the same way as the scale factors. The weights, scaled to a unit sum, are printed in the log output. The weights are only used for the final weighted average and sigma image output. They are not used to form averages in the various rejection algorithms. For weights in the case of no scaling or only multiplicative scaling the weights are used as given or determined so that images with lower signal levels will have lower weights. However, for cases in which zero level scaling is used the weights are computed from the initial weights (the exposure time, image statistics, or input values) using the formula: .nf weight_final = weight_initial / (scale * zero) .fi where the zero values are those before adjustment to zero mean over all images. The reasoning is that if the zero level is high the sky brightness is high and so the S/N is lower and the weight should be lower. THRESHOLD REJECTION There is an initial threshold rejection step which may be applied. The thresholds are given by the parameters \fIlthreshold\fR and \fIhthreshold\fR. Values of INDEF mean that no threshold value is applied. Threshold rejection may be used to exclude very bad pixel values or as a way of masking images. The former case is useful to exclude very bright cosmic rays. Some of the rejection algorithms, such as "avsigclip", can perform poorly if very strong cosmic rays are present. For masking one can use a task like \fBimedit\fR or \fBimreplace\fR to set parts of the spectra to be excluded to some very low or high magic value. REJECTION ALGORITHMS The \fIreject\fR parameter selects a type of rejection operation to be applied to pixels not thresholded. If no rejection operation is desired the value "none" is specified. This task is closely related to the image combining task \fBimcombine\fR and, in particular, has the same rejection algorithms. Some the algorithms are more appropriate to images but are available in this task also for completeness. MINMAX .in 4 A specified fraction of the highest and lowest pixels are rejected. The fraction is specified as the number of high and low pixels, the \fInhigh\fR and \fInlow\fR parameters, when data from all the input spectra are used. If pixels are missing where there is no overlap or have been rejected by thresholding then a matching fraction of the remaining pixels, truncated to an integer, are used. Thus, .nf nl = n * nlow/nspectra + 0.001 nh = n * nhigh/nspectra + 0.001 .fi where n is the number of pixels to be combined, nspectra is the number of input spectra, nlow and nhigh are task parameters and nl and nh are the final number of low and high pixels rejected by the algorithm. The factor of 0.001 is to adjust for rounding of the ratio. As an example with 10 input spectra and specifying one low and two high pixels to be rejected the fractions to be rejected are 0.1 and 0.2 and the number rejected as a function of n is: .nf n 0 1 2 3 4 5 6 7 8 9 10 nl 0 0 0 0 0 1 1 1 1 1 2 nh 0 0 0 0 0 0 0 0 0 0 1 .fi .in -4 CCDCLIP .in 4 If the noise characteristics of the spectra can be described by fixed gaussian noise, a poissonian noise which scales with the square root of the intensity, and a sensitivity noise which scales with the intensity, the sigma in data values at a pixel with true value , as approximated by the median or average with the lowest and highest value excluded, is given as: .nf sigma = ((rn / g) ** 2 + / g + (s * ) ** 2) ** 1/2 .fi where rn is the read out noise in electrons, g is the gain in electrons per data value, s is a sensitivity noise given as a fraction, and ** is the exponentiation operator. Often the sensitivity noise, due to uncertainties in the pixel sensitivities (for example from the flat field), is not known in which case a value of zero can be used. This model is typically valid for CCD images. During extraction of spectra from CCD images the noise parameters of the spectrum pixels will be changed from those of the CCD pixels. Currently it is up to the user to determine the proper modifications of the CCD read noise gain, and sensitivity noise. The read out noise is specified by the \fIrdnoise\fR parameter. The value may be a numeric value to be applied to all the input spectra or an image header keyword containing the value for spectra from each image. Similarly, the parameter \fIgain\fR specifies the gain as either a value or image header keyword and the parameter \fIsnoise\fR specifies the sensitivity noise parameter as either a value or image header keyword. The algorithm operates on each output pixel independently. It starts by taking the median or unweighted average (excluding the minimum and maximum) of the unrejected pixels provided there are at least two input pixels. The expected sigma is computed from the CCD noise parameters and pixels more that \fIlsigma\fR times this sigma below or \fIhsigma\fR times this sigma above the median or average are rejected. The process is then iterated until no further pixels are rejected. If the average is used as the estimator of the true value then after the first round of rejections the highest and lowest values are no longer excluded. Note that it is possible to reject all pixels if the average is used and is sufficiently skewed by bad pixels such as cosmic rays. If there are different CCD noise parameters for the input images (as might occur using the image header keyword specification) then the sigmas are computed for each pixel from each image using the same estimated true value. If the images are scaled and shifted and the \fIsigscale\fR threshold is exceeded then a sigma is computed for each pixel based on the spectrum scale parameters; i.e. the median or average is scaled to that of the original image before computing the sigma and residuals. After rejection the number of retained pixels is checked against the \fInkeep\fR parameter. If there are fewer pixels retained than specified by this parameter the pixels with the smallest residuals in absolute value are added back. If there is more than one pixel with the same absolute residual (for example the two pixels about an average or median of two will have the same residuals) they are all added back even if this means more than \fInkeep\fR pixels are retained. Note that the \fInkeep\fR parameter only applies to the pixels used by the clipping rejection algorithm and does not apply to threshold or bad pixel mask rejection. This is the best clipping algorithm to use if the CCD noise parameters are adequately known. The parameters affecting this algorithm are \fIreject\fR to select this algorithm, \fImclip\fR to select the median or average for the center of the clipping, \fInkeep\fR to limit the number of pixels rejected, the CCD noise parameters \fIrdnoise, gain\fR and \fIsnoise\fR, \fIlsigma\fR and \fIhsigma\fR to select the clipping thresholds, and \fIsigscale\fR to set the threshold for making corrections to the sigma calculation for different image scale factors. .in -4 CRREJECT .in 4 This algorithm is identical to "ccdclip" except that only pixels above the average are rejected based on the \fIhsigma\fR parameter. This is appropriate for rejecting cosmic ray events and works even with two spectra. .in -4 SIGCLIP .in 4 The sigma clipping algorithm computes at each output pixel the median or average excluding the high and low values and the sigma about this estimate. There must be at least three input pixels, though for this method to work well there should be at least 10 pixels. Values deviating by more than the specified sigma threshold factors are rejected. These steps are repeated, except that after the first time the average includes all values, until no further pixels are rejected or there are fewer than three pixels. After rejection the number of retained pixels is checked against the \fInkeep\fR parameter. If there are fewer pixels retained than specified by this parameter the pixels with the smallest residuals in absolute value are added back. If there is more than one pixel with the same absolute residual (for example the two pixels about an average or median of two will have the same residuals) they are all added back even if this means more than \fInkeep\fR pixels are retained. Note that the \fInkeep\fR parameter only applies to the pixels used by the clipping rejection algorithm and does not apply to threshold rejection. The parameters affecting this algorithm are \fIreject\fR to select this algorithm, \fImclip\fR to select the median or average for the center of the clipping, \fInkeep\fR to limit the number of pixels rejected, \fIlsigma\fR and \fIhsigma\fR to select the clipping thresholds, and \fIsigscale\fR to set the threshold for making corrections to the sigma calculation for different spectrum scale factors. .in -4 AVSIGCLIP .in 4 The averaged sigma clipping algorithm assumes that the sigma about the median or mean (average excluding the low and high values) is proportional to the square root of the median or mean at each point. This is described by the equation: .nf sigma(column,line) = sqrt (gain(line) * signal(column,line)) .fi where the \fIestimated\fR signal is the mean or median (hopefully excluding any bad pixels) and the gain is the \fIestimated\fR proportionality constant having units of photons/data number. This noise model is valid for spectra whose values are proportional to the number of photons recorded. In effect this algorithm estimates a photon per data value gain for each spectrum. The gain proportionality factor is computed independently for each output spectrum by averaging the square of the residuals (at points having three or more input values) scaled by the median or mean. Once the proportionality factor is determined, deviant pixels exceeding the specified thresholds are rejected at each point by estimating the sigma from the median or mean. If any values are rejected the median or mean (this time not excluding the extreme values) is recomputed and further values rejected. This is repeated until there are no further pixels rejected or the number of remaining input values falls below three. Note that the proportionality factor is not recomputed after rejections. If the spectra are scaled differently and the sigma scaling correction threshold is exceeded then a correction is made in the sigma calculations for these differences, again under the assumption that the noise in an spectra scales as the square root of the mean intensity. After rejection the number of retained pixels is checked against the \fInkeep\fR parameter. If there are fewer pixels retained than specified by this parameter the pixels with the smallest residuals in absolute value are added back. If there is more than one pixel with the same absolute residual (for example the two pixels about an average or median of two will have the same residuals) they are all added back even if this means more than \fInkeep\fR pixels are retained. Note that the \fInkeep\fR parameter only applies to the pixels used by the clipping rejection algorithm and does not apply to threshold rejection. This algorithm works well for even a few input spectra. It works better if the median is used though this is slower than using the average. Note that if the spectra have a known read out noise and gain (the proportionality factor above) then the "ccdclip" algorithm is superior. However, currently the CCD noise characteristics are not well propagated during extraction so this empirical algorithm is the one most likely to be useful. The two algorithms are related in that the average sigma proportionality factor is an estimate of the gain. The parameters affecting this algorithm are \fIreject\fR to select this algorithm, \fImclip\fR to select the median or average for the center of the clipping, \fInkeep\fR to limit the number of pixels rejected, \fIlsigma\fR and \fIhsigma\fR to select the clipping thresholds, and \fIsigscale\fR to set the threshold for making corrections to the sigma calculation for different image scale factors. .in -4 PCLIP .in 4 The percentile clipping algorithm is similar to sigma clipping using the median as the center of the distribution except that, instead of computing the sigma of the pixels from the CCD noise parameters or from the data values, the width of the distribution is characterized by the difference between the median value and a specified "percentile" pixel value. This width is then multipled by the scale factors \fIlsigma\fR and \fIhsigma\fR to define the clipping thresholds above and below the median. The clipping is not iterated. The pixel values at each output point are ordered in magnitude and the median is determined. In the case of an even number of pixels the average of the two middle values is used as the median value and the lower or upper of the two is the median pixel when counting from the median pixel to selecting the percentile pixel. The parameter \fIpclip\fR selects the percentile pixel as the number (if the absolute value is greater than unity) or fraction of the pixels from the median in the ordered set. The direction of the percentile pixel from the median is set by the sign of the \fIpclip\fR parameter with a negative value signifying pixels with values less than the median. Fractional values are internally converted to the appropriate number of pixels for the number of input spectra. A minimum of one pixel and a maximum corresponding to the extreme pixels from the median are enforced. The value used is reported in the log output. Note that the same percentile pixel is used even if pixels have been rejected by nonoverlap or thresholding; for example, if the 3nd pixel below the median is specified then the 3rd pixel will be used whether there are 10 pixels or 5 pixels remaining after the preliminary steps. After rejection the number of retained pixels is checked against the \fInkeep\fR parameter. If there are fewer pixels retained than specified by this parameter the pixels with the smallest residuals in absolute value are added back. If there is more than one pixel with the same absolute residual (for example the two pixels about an average or median of two will have the same residuals) they are all added back even if this means more than \fInkeep\fR pixels are retained. Note that the \fInkeep\fR parameter only applies to the pixels used by the clipping rejection algorithm and does not apply to threshold or bad pixel mask rejection. Some examples help clarify the definition of the percentile pixel. In the examples assume 10 pixels. The median is then the average of the 5th and 6th pixels. A \fIpclip\fR value of 2 selects the 2nd pixel above the median (6th) pixel which is the 8th pixel. A \fIpclip\fR value of -0.5 selects the point halfway between the median and the lowest pixel. In this case there are 4 pixels below the median, half of that is 2 pixels which makes the percentile pixel the 3rd pixel. The percentile clipping algorithm is most useful for clipping small excursions, such as the wings of bright lines when combining disregistered observations, that are missed when using the pixel values to compute a sigma. It is not as powerful, however, as using the CCD noise parameters (provided they are accurately known) to clip about the median. This algorithm is primarily used with direct images but remains available for spectra. The parameters affecting this algorithm are \fIreject\fR to select this algorithm, \fIpclip\fR to select the percentile pixel, \fInkeep\fR to limit the number of pixels rejected, and \fIlsigma\fR and \fIhsigma\fR to select the clipping thresholds. .in -4 GROW REJECTION Neighbors of pixels rejected by the rejection algorithms may also be rejected. The number of neighbors to be rejected on either side is specified by the \fIgrow\fR parameter. This rejection step is also checked against the \fInkeep\fR parameter and only as many pixels as would not violate this parameter are rejected. Unlike it's application in the rejection algorithms at this stage there is no checking on the magnitude of the residuals and the pixels retained which would otherwise be rejected are randomly selected. COMBINING After all the steps of offsetting the input images, masking pixels, threshold rejection, scaling, and applying a rejection algorithms the remaining pixels are combined and output. The pixels may be combined by computing the median or by computing a weighted average. .ih EXAMPLES 1. Combine orders of echelle images. .nf cl> scombine *.ec *%.ec%% group=images combine=sum .fi 2. Combine all spectra using range syntax and scale by the exposure times. .nf cl> names irs 10-42 > irs.dat cl> scombine @irs.dat irscombine group=all scale=exptime .fi 3. Combine spectra by apertures using exposure time scaling and weighting. .nf cl> scombine *.ms combine.ms nout=ncombine.ms \\ >>> group=apertures scale=exptime weights=exptime .fi .ih REVISIONS .ls SCOMBINE V2.10.3 The weighting was changed from using the square root of the exposure time or spectrum statistics to using the values directly. This corresponds to variance weighting. Other options for specifying the scaling and weighting factors were added; namely from a file or from a different image header keyword. The \fInkeep\fR parameter was added to allow controling the maximum number of pixels to be rejected by the clipping algorithms. The \fIsnoise\fR parameter was added to include a sensitivity or scale noise component to the noise model. .le .ls SCOMBINE V2.10 This task is new. .le .ih NOTES The pixel uncertainties and CCD noise model are not well propagated. In particular it would be desirable to propagate the pixel uncertainties and CCD noise parameters from the initial CCD images. .ih SEE ALSO images.imcombine ccdred.combine .endhelp sptable-1.0.pre20180612/src/xonedspec/doc/scoords.hlp000066400000000000000000000052341331023215600221220ustar00rootroot00000000000000.help scoords May97 onedspec .ih NAME scoords -- set spectrum coordinates from a pixel array (1D only) .ih USAGE scoords images coords .ih PARAMETERS .ls images List of one dimensional spectrum image names. .le .ls coords List of file names containing the coordinate values. There may be one file which applies to all input images or a matching list of one coordinate file for each input image. The coordinate files are a list of coordinate values with one coordinate per line. The coordinates must be ordered in increasing or decreasing value. The number of coordinates must match the number of pixels in the image. .le .ls label = "" Optional coordinate axis label. A typical value is "Wavelength" for wavelength coordinates. .le .ls units = "" Optional coordinate axis units. A typical value is "Angstroms". In order to allow coordinate conversions by other IRAF spectra tasks the value should be specified as one of the known units (see units description in \fBonedspec.package\fR). .le .ls verbose = yes Print a line as each spectrum is processed? .le .ih DESCRIPTION \fBScoords\fR sets spectral coordinates in one dimensional spectral images as a list of coordinates in the image header. The coordinate file(s) consists of coordinate values given one per line. Each coordinate value is assigned to an image pixel in the order given and so the number of coordinate values must match the number of pixels in the spectrum. Also the coordinates must be monotonically increasing or decreasing. When multiple spectra are to be set a matching list of coordinates can be specified or a single coordinate file for all images may be used. The coordinate system set in the header is an example of the "multispec" world coordinate system. This is understood by all the standard IRAF tasks. It is described under the help topic "onedspec.specwcs". Once the coordinates are set one may resample the spectrum to a more compact linear description using the task \fBdispcor\fR. Since the coordinate values are stored in the header (double precision numbers) the header can become quite large if the spectrum is long. Be sure the environment variable "min_lenuserarea" which defines the maximum size of the image header in number of characters is large enough to hold all the coordinates. .ih EXAMPLES 1. Set the coordinates for a spectrum. .nf cl> type coords.dat 4000. 4010.123 4020.246 4031.7 cl> scoords spec coords.dat label=Wavelength units=Angstroms cl> listpix spec wcs=world 4000. 124. 4010.123 543 .fi .ih REVISIONS .ls SCOORDS V2.11 This is a new task with this version. .le .ih SEE ALSO rtextimage, dispcor, specwcs, onedspec.package .endhelp sptable-1.0.pre20180612/src/xonedspec/doc/scopy.hlp000066400000000000000000000510271331023215600216040ustar00rootroot00000000000000.help scopy Mar93 noao.onedspec .ih NAME scopy -- Select and copy spectra .ih USAGE scopy input output .ih PARAMETERS .ls input List of input images containing spectra to be copied. .le .ls output List of output image names or root names. Image sections are ignored and if the output format is "onedspec" then any record extensions are stripped to form the root name. If no output list is specified then the input list is used and the input images are replaced by the copied output spectra. If a single output name is specified then all copied spectra are written to the same output image or image root name. This allows packing or merging multiple spectra and requires properly setting the \fIclobber\fR, \fImerge\fR, \fIrenumber\fR and \fIoffset\fR parameters to achieve the desired output. If more than one output image is specified then it must match the input image list in number. .le .ls w1 = INDEF, w2 = INDEF Starting and ending wavelengths to be copied. If \fIw1\fR is not specified then the wavelength of the starting edge of the first pixel is used (wavelength at pixel coordinate 0.5) and if \fIw2\fR is not specified then the wavelength of the ending edge of the last pixel is used (wavelength of the last pixel plus 0.5). If both are not specified, that is set to INDEF, then the whole spectrum is copied and the \fIrebin\fR parameter is ignored. Note that by specifying both endpoints the copied region can be set to have increasing or decreasing wavelength per pixel. If the spectrum only partially covers the specified range only that portion of the spectrum within the range is copied. It is an error if the range is entirely outside that of a spectrum. .le .ls apertures = "", beams = "" List of apertures and beams to be selected from the input spectra. The logical intersection of the two lists is selected. The null list selects all apertures or beams. A list consists of comma separated numbers and ranges of numbers. A range is specified by a hyphen. An optional step size may be given by 'x' followed by a number. See \fBxtools.ranges\fR for more information. If the first character is "!" then the apertures/beams not in the list are selected. Note that a "!" in either of the lists complements the intersection of the two lists. For longslit input spectra the aperture numbers selects the lines or columns to be extracted. For 3D Fabry-Perot spectra the aperture numbers select the first spatial axis. .le .ls bands = "" List of bands in 3D multispec. For 3D spatial spectra the band parameter applies to the second spatial axis. The null list selects all bands. The syntax is as described above. .le .ls apmodulus = 0 Modulus to be applied to the input aperture numbers before matching against the aperture list. If zero then no modulus is used. This is allows selecting apertures which are related by the same modulus, typically a factor of 10; for example, 10, 1010 and 2010 with a modulus of 1000 are related. .le .ls format = "multispec" (multispec|onedspec) Output image format and name syntax. The "multispec" format consists of one or more spectra in the same image file. The "onedspec" format consists of a single spectrum per image with names having a root name and a four digit aperture number extension. Note that converting to "onedspec" format from three dimensional images where the third dimension contains associated spectra will not include data from the extra dimension. Image sections may be used in that case. .le .ls renumber = no Renumber the output aperture numbers? If set the output aperture numbers, including any preexisting spectra when merging, are renumbered beginning with 1. The \fIoffset\fR parameter may be used to change the starting number. .le .ls offset = 0 Offset to be added to the input or renumbered aperture number to form the final output aperture number. .le .ls clobber = no Modify an existing output image either by overwriting or merging? .le .ls merge = no Merge apertures into existing spectra? This requires that the \fIclobber\fR parameter be set. If not merging then the selected spectra entirely replace those in existing output images. If merging then the input spectra replace those in the output image with the same aperture number and new apertures are added if not present. .le .ls rebin = yes Rebin the spectrum to the exact wavelength range specified by the \fIw1\fR and \fIw2\fR parameters? If the range is given as INDEF for both endpoints this parameter does not apply. If a range is given and this parameter is not set then the pixels in the specified range (using the nearest pixels to the endpoint wavelengths) are copied without rebinning. In this case the wavelength of the first pixel may not be exactly that specified by \fIw1\fR and the dispersion, including non-linear dispersions, is unchanged. If this parameter is set the spectra are interpolated to have the first and last pixels at exactly the specified endpoint wavelengths while preserving the same number of pixels in the interval. Linear and log-linear dispersion types are maintained while non-linear dispersions are linearized. .le .ls verbose = no Print a record of each aperture copied? .le .ih DESCRIPTION \fBScopy\fR selects regions of spectra from an input list of spectral images and copies them to output images. This task can be used to extract aperture spectra from long slit and Fabry-Perot images and to select, reorganize, merge, renumber, pack, and unpack spectra in many ways. Below is a list of some of the uses and many examples are given in the EXAMPLES section. .nf o Pack many spectra into individual images into a single image o Unpack images with multiple spectra into separate images o Extract a set of lines or columns from long slit spectra o Extract a set of spatial positions from Fabry-Perot spectra o Extract specific wavelength regions o Select a subset of spectra to create a new image o Merge a subset of spectra into an existing image o Combine spectra from different images into one image o Renumber apertures .fi Input spectra are specified by an image list which may include explicit image names, wildcard templates and @files containing image names. The image names may also include image sections such as to select portions of the wavelength coverage. The input images may be either one or two dimensional spectra. One dimensional spectra may be stored in individual one dimensional images or as lines in two (or three) dimensional images. The one dimensional spectra are identified by an aperture number, which must be unique within an image, and a beam number. Two dimensional long slit and three dimensional Fabry-Perot spectra are treated, for the purpose of this task, as a collection of spectra with dispersion either along any axis specified by the DISPAXIS image header parameter or the \fIdispaxis\fR package parameter. The aperture and band parameters specify a spatial position. A number of adjacent lines, columns, and bands, specified by the \fInsum\fR package parameter, will be summed to form an aperture spectrum. If number is odd then the aperture/band number refers to the middle and if it is even it refers to the lower of the two middle lines or columns. In the case of many spectra each stored in separate one dimensional images, the image names may be such that they have a common root name and a four digit aperture number extension. This name syntax is called "onedspec" format. Including such spectra in an input list may be accomplished either with wildcard templates such as .nf name* name.????.imh .fi where the image type extension ".imh" must be given to complete the template but the actual extension could also be that for an STF type image, or using an @file prepared with the task \fBnames\fR. To generate this syntax for output images the \fIformat\fR parameter is set to "onedspec" (this will be discussed further later). From the input images one may select a range of wavelengths with the \fIw1\fR and \fIw2\fR parameters and a subset of spectra based on aperture and beam numbers using the \fIaperture\fR and \fIbeam\fR parameters. If the wavelength range is specified as INDEF the full spectra are copied without any resampling. If the aperture and beam lists are not specified, an empty list, then all apertures and beams are selected. The lists may be those spectra desired or the complement obtained by prefixing the list with '!'. Only the selected wavelength range and spectra will be operated upon and passed on to the output images. Specifying a wavelength range is fairly obvious except for the question of pixel sampling. Either the pixels in the specified range are copied without resampling or the pixels are resampled to correspond eactly to the requested range. The choice is made with the \fIrebin\fR parameter. In the first case the nearest pixels to the specified wavelength endpoints are determined and those pixels and all those in between are copied. The dispersion relation is unchanged. In the second case the spectra are reinterpolated to have the specified starting and ending wavelengths with the same number of pixels between those points as in the original spectrum. The reinterpolation is done in either linear or log-linear dispersion. The non-linear dispersion functions are interpolated to a linear dispersion. Using \fBscopy\fR with long slit or Fabry-Perot images provides a quick and simple type of extraction as opposed to using the \fBapextract\fR package. When summing it is often desired to start each aperture after the number of lines summed. To do this specify a step size in the aperture/band list. For example to extract columns 3 to 23 summing every 5 columns you would use an aperture list of "3-23x5" and an \fInsum\fR of 5. If you do not use the step in the aperture list you would extract the sum of columns 1 to 5, then columns 2 to 6, and so on. In the special case of subapertures extracted by \fBapextract\fR, related apertures are numbered using a modulus; for example apertures 5, 1005, 2005. To allow selecting all related apertures using a single aperture number the \fIapmodulus\fR parameter is used to specify the modulus factor; 1000 in the above example. This is a very specialized feature which should be ignored by most users. The output list of images may consist of an empty list, a single image, or a list of images matching the input list in number. Note that it is the number of image names that matters and not the number of spectra since there may be any number of spectra in an image. The empty list converts to the same list as the input and is shorthand for replacing the input image with the output image upon completion; therefore it is equivalent to the case of a matching list. If the input consists of just one image then the distinction between a single output and a matching list is moot. The interesting distinction is when there is an input list of two or more images. The two cases are then a mapping of many-to-many or many-to-one. Note that it is possible to have more complex mappings by repeating the same output name in a matching list provided clobbering, merging, and possibly renumbering is enabled. In the case of a matching list, spectra from different input images will go to different output images. In the case of a single output image all spectra will go to the same output image. Note that in this discussion an output image when "onedspec" format is specified is actually a root name for possibly many images. However, it should be thought of as a single image from the point of view of image lists. When mapping many spectra to a single output image, which may have existing spectra if merging, there may be a conflict with repeated aperture numbers. One option is to consecutively renumber the aperture numbers, including any previous spectra in the output image when merging and then continuing with the input spectra in the order in which they are selected. This is specified with the \fIrenumber\fR parameter which renumbers beginning with 1. Another options which may be used independently of renumbering or in conjunction with it is to add an offset as specified by the \fIoffset\fR parameter. This is last step in determining the output aperture numbers so that if used with the renumber option the final aperture numbers begin with one plus the offset. It has been mentioned that it is possible to write and add to existing images. If an output image exists an error will be printed unless the \fIclobber\fR parameter is set. If clobbering is allowed then the existing output image will be replaced by the new output. Rather than replacing an output image sometimes one wants to replace certain spectra or add new spectra. This is done by selecting the \fImerge\fR option. In this case if the output has a spectrum with the same aperture number as the input spectrum it is replaced by the input spectrum. If the input spectrum aperture number is not in the output then the spectrum is added to the output image. To add spectra with the same aperture number and not replace the one in the output use the \fIrenumber\fR or \fIoffset\fR options. To print a record as each input spectrum is copied the \fIverbose\fR parameter may be set. The syntax is the input image name followed by the aperture number in []. An arrow then points to the output image name with the final aperture number also in [], except for "onedspec" format where the image name extension gives the aperture number. It is important to remember that it is the aperture numbers which are shown and not the image lines; there is not necessarily any relation between image lines and aperture numbers though often they are the same. .ih EXAMPLES Because there are so many possiblities there are many examples. To help find examples close to those of interest they are divided into three sections; examples involving standard multispec images only, examples with onedspec format images, and examples with long slit and Fabry-Perot images. In the examples the verbose flag is set to yes and the output is shown. I. MULTISPEC IMAGES The examples in this section deal with the default spectral format of one or more spectra in an image. Note that the difference between a "onedspec" image and a "multispec" image with one spectrum is purely the image naming syntax. 1. Select a single spectrum (aperture 3): .nf cl> scopy example1 ap3 aperture=3 example1[3] --> ap3[3] .fi 2. Select a wavelength region from a single spectrum: .nf cl> scopy example1 ap3 aperture=3 w1=5500 w2=6500 example1[3] --> ap3[3] .fi 3. Select a subset of spectra (apertures 1, 2, 4, 6, and 9): .nf cl> scopy example1 subset apertures="1-2,4,6-9x3" example1[1] --> subset[1] example1[2] --> subset[2] example1[4] --> subset[4] example1[6] --> subset[6] example1[9] --> subset[9] .fi This example shows various features of the aperture list syntax. 4. Select the same apertures (1 and 3) from multiple spectra and in the same wavelength region: .nf cl> scopy example* %example%subset%* apertures=1,3 w1=5500 w2=6500 example1[1] --> subset1[1] example1[3] --> subset1[3] example2[1] --> subset2[1] example2[3] --> subset2[3] ... .fi The output list uses the pattern substitution feature of image templates. 5. Select the same aperture from multiple spectra and pack them in a a single image: .nf cl> scopy example* ap2 aperture=2 renumber+ example1[2] --> ap2[1] example2[2] --> ap2[2] example3[2] --> ap2[3] ... .fi 6. To renumber the apertures sequentially starting with 11: .nf cl> scopy example1 renum renumber+ example1[1] --> renum[11] example1[5] --> renum[12] example1[9] --> renum[13] ... .fi 7. To replace apertures (2) in one image with that from another: .nf cl> scopy example1 example2 aperture=2 clobber+ merge+ example1[2] --> example2[2] .fi 8. To merge two sets of spectra with different aperture numbers into one image: .nf cl> scopy example![12]* merge example1[1] -> merge[1] example1[3] -> merge[3] ... example2[2] -> merge[2] example2[4] -> merge[4] ... .fi The input list uses the ![] character substitution syntax of image templates. 9. To merge a set of spectra with the same aperture numbers into another existing image: .nf cl> scopy example2 example1 clobber+ merge+ renumber+ example1[5] --> example1[2] example1[9] --> example1[3] example2[1] --> example1[4] example2[5] --> example1[5] example2[9] --> example1[6] .fi Both images contained apertures 1, 5, and 9. The listing does not show the renumbering of the aperture 1 from example1 since the aperture number was not changed. 10. Select parts of a 3D image where the first band is the variance weighted extraction, band 2 is nonweighted extraction, band 3 is the sky, and band 4 is the sigma: .nf cl> scopy example3d.ms[*,*,1] var1.ms example3d.ms[*,*,1][1] --> var1.ms[1] example3d.ms[*,*,1][2] --> var1.ms[2] ... cl> scopy example3d.ms[10:400,3,3] skyap3 example3d.ms[10:400,3,3][3] --> skyap3[3] cl> scopy example3d.ms[*,*,1] "" clobber+ example3d.ms[*,*,1][1] --> example3d.ms[1] example3d.ms[*,*,1][2] --> example3d.ms[2] ... .fi Note that this could also be done with \fBimcopy\fR. The last example is done in place; i.e. replacing the input image by the output image with the other bands elimintated; i.e. the output image is two dimensional. II. ONEDSPEC IMAGES 1. Expand a multi-spectrum image to individual single spectrum images: .nf cl> scopy example1 record format=onedspec example1[1] --> record.0001 example1[5] --> record.0005 example1[9] --> record.0009 ... .fi 2. Pack a set of individual 1D spectra into a single image: .nf cl> scopy record.????.imh record.ms record.0001[1] --> record.ms[1] record.0005[5] --> record.ms[5] record.0009[9] --> record.ms[9] ... .fi 3. Copy a set of record syntax spectra to a different rootname and renumber: .nf cl> scopy record.????.imh newroot format=onedspec record.0001[1] --> newroot.0001 record.0005[5] --> newroot.0002 record.0009[9] --> newroot.0003 ... .fi III. LONG SLIT IMAGES To define the dispersion axis either the image header parameter DISPAXIS must be set (using HEDIT for example) or a the package \fIdispaxis\fR parameter must be set. In these examples the output is the default multispec format. 1. To extract column 250 into a spectrum: .nf cl> scopy longslit1 c250 aperture=250 longslit1[250] --> c250[250] .fi 2. To sum and extract every set of 10 columns: .nf cl> nsum = 10 (or epar the package parameters) cl> scopy longslit1 sum10 apertures=5-500x10 longslit1[5] --> sum10[5] longslit1[15] --> sum10[15] longslit1[25] --> sum10[25] ... .fi 3. To extract the sum of 10 columns centered on column 250 from a set of 2D images: .nf cl> nsum = 10 (or epar the package parameters) cl> scopy longslit* %longslit%c250.%* aperture=250 longslit1[250] --> c250.1[250] longslit2[250] --> c250.2[250] longslit3[250] --> c250.3[250] ... .fi 4. To extract the sum of 10 columns centered on column 250 from a set of 2D images and merge them into a single, renumbered output image: .nf cl> nsum = 10 (or epar the package parameters) cl> scopy longslit* c250 aperture=250 renum+ longslit1[250] --> c250[1] longslit2[250] --> c250[2] longslit3[250] --> c250[3] ... .fi IV. FABRY-PEROT IMAGES To define the dispersion axis either the image header parameter DISPAXIS must be set (using HEDIT for example) or a the package \fIdispaxis\fR parameter must be set. In these examples the output is the default multispec format. 1. To extract a spectrum from the spatial position (250,250) where dispaxis=3: .nf cl> scopy fp1 a250 aperture=250 band=250 longslit1[250] --> a250[250] .fi 2. To sum and extract every set of 10 lines and bands (dispaxis=1): .nf cl> nsum = "10" cl> scopy fp1 sum10 apertures=5-500x10 bands=5-500x10 longslit1[5] --> sum10[5] longslit1[15] --> sum10[15] longslit1[25] --> sum10[25] ... .fi 3. To extract the sum of 10 columns and 20 lines centered on column 250 and line 100 from a set of 3D images with dispaxis=3: .nf cl> nsum = "10 20" cl> scopy longslit* %longslit%c250.%* aperture=250 band=100 longslit1[250] --> c250.1[250] longslit2[250] --> c250.2[250] longslit3[250] --> c250.3[250] ... .fi .ih REVISIONS .ls SCOPY V2.11 Previously both w1 and w2 had to be specified to select a range to copy. Now if only one is specified the second endpoint defaults to the first or last pixel. .le .ls SCOPY V2.10.3 Additional support for 3D multispec/equispec or spatial spectra has been added. The "bands" parameter allows selecting specific bands and the onedspec output format creates separate images for each selected aperture and band. .le .ls SCOPY V2.10 This task is new. .le .ih SEE ALSO ranges, sarith, imcopy, dispcor, specshift .endhelp sptable-1.0.pre20180612/src/xonedspec/doc/sensfunc.hlp000066400000000000000000000512631331023215600222750ustar00rootroot00000000000000.help sensfunc Mar93 noao.onedspec .ih NAME sensfunc -- Determine sensitivity and extinction functions .ih USAGE sensfunc standards sensitivity .ih PARAMETERS .ls standards = "std" Input standard star data file created by the task \fBstandard\fR. .le .ls sensitivity = "sens" Output sensitivity function image name or rootname. Generally each aperture results in an independent sensitivity function with the aperture number appended to the rootname. If the parameter \fIignoreaps\fR is set, however, the aperture numbers are ignored and a single sensitivity function is determined with the output image having the specified name with no extension. .le .ls apertures = "" List of apertures to be selected from the input file. All other apertures are ignored. If no list is specified then all apertures are selected. See \fBranges\fR for the syntax. .le .ls ignoreaps = no Ignore aperture numbers and create a single sensitivity function? Normally each aperture produces an independent sensitivity function. If the apertures are ignored then all the observations are combined into a single sensitivity function. .le .ls logfile = "logfile" Output log filename for statistical information about the stars used and the sensitivity function and extinction function. If no filename is given then no file is written. .le .ls extinction = Input extinction file. Any extinction determination made will be relative to this extinction. If no file is given then no extinction correction is applied and any extinction determination from the standard star data will be an absolute determination of the extinction. The default value is redirected to the package parameter of the same name. The extinction file is generally one of the standard extinctions in the calibration directory "onedstds$". If extinction corrected spectra were used as input to \fBstandard\fR then it is important that the same extinction file be used here. This includes using no extinction file in both tasks. .le .ls newextinction = "extinct.dat" Output revised extinction file. If the extinction is revised and an output filename is given then a revised extinction file is written. It has the same format as the standard extinction files. .le .ls observatory = ")_.observatory" Observatory at which the spectra were obtained if not specified in the image header by the keyword OBSERVAT. The default is a redirection to look in the parameters for the parent package for a value. This is only used when graphing flux calibrated data of spectra which do not include the airmass in the image header. The observatory may be one of the observatories in the observatory database, "observatory" to select the observatory defined by the environment variable "observatory" or the parameter \fBobservatory.observatory\fR, or "obspars" to select the current parameters set in the \fBobservatory\fR task. See help for \fBobservatory\fR for additional information. .le .ls function = "spline3" Function used to fit the sensitivity data. The function types are "chebyshev" polynomial, "legendre" polynomial, "spline3" cubic spline, and "spline1" linear spline. The default value may be changed interactively. .le .ls order = 6 Order of the sensitivity fitting function. The value corresponds to the number of polynomial terms or the number of spline pieces. The default value may be changed interactively. .le .ls interactive = yes Determine the sensitivity function interactively? If yes the user graphically interacts with the data, modifies data and parameters affecting the sensitivity function, and determines a residual extinction. .le .ls graphs = "sr" Graphs to be displayed per frame. From one to four graphs may be displayed per frame. The graph types are selected by single characters and are: .nf a - residual sensitivity vs airmass c - composite residual sensitivity and error bars vs wavelength e - input extinction and revised extinction vs wavelength i - Flux calibrated spectrum vs wavelength r - residual sensitivity vs wavelength s - sensitivity vs wavelength .fi All other characters including whitespace and commas are ignored. The order and number of graphs determines the positions of the graphs. .le .ls marks = "plus cross box" Symbols used to mark included, deleted, and added data respectively. The available mark types are point, box, plus, cross, diamond, hline (horizontal line), vline (vertical line), hebar (horizontal error bar), vebar (vertical error bar), and circle. .le .ls colors = "2 1 3 4" Colors to use for "lines", "marks", "deleted" data, and "added" data. The colors associated with the numbers is graphics device dependent. For example in XGTERM they are defined by resources while on other devices that don't support colors only one color will appear. .le .ls cursor = "" Graphics cursor input list. If not specified as a file then standard graphics cursor is read. .le .ls device = "stdgraph" Graphics output device. .le .ls answer Query parameter for selecting whether to fit apertures interactively. .le .ih CURSOR COMMANDS .nf ? Print help a Add a point at the cursor position c Toggle use of composite points d Delete point, star, or wavelength nearest the cursor e Toggle residual extinction correction f Fit data with a sensitivity function and overplot g Fit data with a sensitivity function and redraw the graph(s) i Print information about point nearest the cursor m Move point, star, wavelength nearest the cursor to new sensitivity o Reset to original data q Quit and write sensitivity function for current aperture r Redraw graph(s) s Toggle shift of standard stars to eliminate mean deviations u Undelete point, star, or wavelength nearest the cursor w Change weights of point, star, or wavelength nearest the cursor :flux [min] [max] Limits for flux calibrated graphs (INDEF for autoscale) :function [type] Function to be fit to sensitivity data: chebyshev - Chebyshev polynomial legendre - Legendre polynomial spline1 - Linear spline spline3 - Cubic spline :graphs [types] Graphs to be displayed (up to four): a - Residual sensitivity vs airmass c - Composite residuals and error bars vs wavelength e - Extinction (and revised extinction) vs wavelength i - Flux calibrated image vs wavelength l - Log of flux calibrated image vs wavelength r - Residual sensitivity vs wavelength s - Sensitivity vs wavelength :images [images] Images to flux calibrate and plot (up to four) :marks marks Mark types to use for included, delete, and added points: point, box, plus, cross, diamond, hline, vline, hebar, vebar, circle :order [order] Order of function :skys [images] Sky images for flux calibration (up to four) :stats [file] Statistics about stars and sensitivity fit :vstats [file] Verbose statistics about sensitivity fit .fi .ih DESCRIPTION Standard star calibration measurements are used to determine the system sensitivity as a function of wavelength for each independent aperture. If the parameter \fIignoreaps\fR is set then the aperture numbers are ignored and a single sensitivity function is determined from all the observations. Using measurements spanning a range of airmass it is also possible to derive an adjustment to the standard extinction curve or even an absolute determination. Extinction determination requires that the observations span a good range of airmass during photometric conditions. When conditions are poor and standard star observations are obtained during periods of variable transparency, the entire sensitivity curve may vary by a constant factor, assuming that the cause of the variations has no color effect. This is often the case during periods of thin clouds. In this case the mean sensitivity of each observation may be shifted to match the observation of greatest sensitivity. This allows for the possibility of deriving correct absolute fluxes if one observation of a standard was obtained during a clear period. The input data is a file of calibration information produced by the task \fBstandard\fR. The data consists of a spectrum identification line containing the spectrum image name, the sky image name if beam switching, the aperture number, the length of the spectrum, the exposure time, airmass, wavelength range, and title. Following the identification line are calibration lines consisting of the central bandpass wavelengths, the tabulated fluxes in the bandpasses, the bandpass widths, and the observed counts in the bandpasses. The spectrum identification and calibration lines repeat for each standard star observation. The parameter \fIapertures\fR may be used to select only specific apertures from the input data. This parameter is in the form of a range list (see help for \fBranges\fR) and if no list is given (specified by the null string "") then all apertures are selected. An input extinction file may also be specified. Any extinction determinations are then residuals to this input extinction table. The format of this table is described in \fBlcalib\fR. The calibration factor at each point is computed as (1) C = 2.5 log (O / (T B F)) + A E where O is the observed counts in a bandpass of an observation, T is the exposure time of the observation, B is the bandpass width, F is the flux per Angstrom at the bandpass for the standard star, A is the airmass of the observation, and E is the extinction at the bandpass. Thus, C is the ratio of the observed count rate per Angstrom corrected to some extinction curve to the expected flux expressed in magnitudes. The goal of the task is to fit the observations to the relation (2) C = S(W) + AE(W) where W is wavelength, S(W) is the sensitivity function, and E(W) is a residual extinction function relative to the extinction used in (1). In later discussion we will also refer to the residual sensitivity which is defined by (3) R = C - S(W) - AE(W) The sensitivity function S(W) is output as an one dimensional image much like the spectra. The sensitivities are in magnitude units to better judge the variations and because the interpolation is smoother in the logarithmic space (mags = 2.5 log10[sensitivity]). There is one sensitivity function for each aperture unless the parameter \fIignoreaps\fR is set. In the first case the image names are formed from the specified rootname with the aperture number as a four digit numerical extension. In the latter case a single sensitivity function is determined from all data, ignoring the aperture numbers, and the specified output image is created without an extension. These images are used by \fBcalibrate\fR to correct observations to a relative of absolute flux scale. If no sensitivity function image rootname is specified then the sensitivity curves are not output. If a revised extinction function E(W) has been determined for one or more of the apertures then the functions are averaged over all apertures, added to the original extinction, and written to the specified extinction table. The format of this table is the same as the standard extinction tables and are, thus, interchangable. If no new extinction filename is specified then no extinction table is recorded. If a log filename is given then statistical information about the sensitivity function determinations are recorded. This includes the names of the input standard star observations and the tabulated sensitivity, extinction, and error information. Some points to note are that if no input extinction is given then the E in (1) are zero and the E determined in (2) is the absolute extinction. If the data are not good enough to determine extinction then using one of the standard extinction curves the problem reduces to fitting (4) C = S(W) The sensitivity and extinction functions are determined as fitted curves. The curves are defined by a function type and order. There are four function types and the order specifies either the number of terms in the polynomial or the number of pieces in the spline. The order is automatically reduced to the largest value which produces a nonsingular result. In this case the function will attempt to pass through every calibration point. Lower orders provide for a smoother representation of the function. The latter is generally more appropriate for a detector. The initial function type and order for the sensitivity function is specified by the parameters \fIfunction\fR and \fIorder\fR. If the \fIinteractive\fR flag is no then the default function and order is fit to equation (4) (i.e. there is no residual extinction determination or manipulation of the data). The sensitivity functions are output if an image rootname is given and the log information is output if a log filename is given. When the sensitivity is determined interactively a query is given for each aperture. The responses "no" and "yes" select fitting the sensitivity interactively or not for the specified aperture. The responses "NO" and "YES" apply to all apertures and no further queries will be given. When interactive fitting is selected the data are graphed on the specified graphics device and input is through the specified cursor list. The graphics output consists of from one to four graphs. The user selects how many and which types of graphs to display. The graph types and their single character code used to select them are: .nf a - residual sensitivity vs airmass c - composite residual sensitivity and error bars vs wavelength e - input extinction and revised extinction vs wavelength i - Flux calibrated spectrum vs wavelength r - residual sensitivity vs wavelength s - sensitivity vs wavelength .fi The initial graphs are selected with the parameter \fBgraphs\fR and changed interactively with the colon command ":graphs \fItypes\fR". The ability to view a variety of graphs allows evaluating the effects of the sensitivity curve and extinction in various ways. The flux calibrated spectrum graph uses the current sensitivity function and checks for possible wiggles in the sensitivity curve which affect the shape of the continuum. The choice of graphs also allows the user to trade off plotting speed and resolution against the amount of information available simultaneously. Thus, with some graphics devices or over a slow line one can reduce the number of graphs for greater speed while on very fast devices with large screens one can look at more data. The parameter \fImarks\fR and the associated colon command ":marks \fItypes\fR" also let the user define the symbols used to mark included, deleted, and added data points. The list of interactive commands in given in the section on CURSOR COMMANDS. The commands include deleting, undeleting, adding, moving, and identifying individual data points, whole stars, or all points at the same wavelength. Some other commands include 'c' to create composite points by averaging all points at the same wavelength (this requires exact overlap in the bandpasses) which then replace the individual data points in the fit. This is different than the composite point graph which displays the residual in the mean sensitivity and error \fIin the mean\fR but uses the input data in the fitting. The 's' command shifts the data so that the mean sensitivity of each star is the same as the star with the greatest mean sensitivity. This compensates for variable grey extinction due to clouds. Note that delete points are excluded from the shift calculation and a deleted star will not be used as the star of greatest sensitivity. Another useful command is 'o' to recover the original data. This cancels all changes made due to shifting, extinction corrections, deleting points, creating composite points, etc. The 'e' command attempts to compute a residual extinction by finding correlations between the sensitivity points at different airmass. Note that this is not iterative so that repeating this after having added an extinction correction simply redetermines the correction. At each wavelength or wavelength regions having multiple observations at different airmass a slope with airmass is determined. This slope is the residual extinction at that wavelength. A plot of the residual extinctions at each wavelength is made using the ICFIT procedure. The user may then examine and fit a curve through the residual extinction estimates as a function of wavelength (see \fBicfit\fR for a description of the commands). The user must decide how much wavelength dependence is derivable from the data. In many cases only a constant fit to a "gray extinction" or possibly a linear fit is realistic. The fitting is exited by the key 'q'. To help evaluate how important the residual extinction determination is a t-statistic significance is computed. This statistic is defined by (5) t = sqrt (r**2 * (N - 2) / (1 - r**2)) where the correlation coefficient (6) r = RMS with correction / RMS without correction is the fractional improvement in the RMS due to the added extinction correction and N is the number of wavelength points. For large N this approaches a gaussian sigma but a more precise significance requires the t-distribution for N-2 degrees of freedom. Basically this asks, was the improvement in the RMS significantly more than would occur with random errors? A value greater than 3 is good while a value less than 1 is not significant. The user may then accept the revised extinction and apply it to the data. Note that when there are multiple apertures used each aperture has an independent system sensitivity but the residual extinction is the same. Therefore, the residual extinctions from each aperture are averaged at the end. If one determines a new extinction then one may replace the original input extinction by the new extinction and rederive the sensitivity. .ih EXAMPLES 1. The following command generates sensitivity spectra cl> sensfunc std sens This command uses the data from the \fBstandard\fR output file "std" to create sensitivity functions with rootname "sens". If not interactive the task will produce the output with some progress messages being printed. If it is interactive the graphics device will be used to display the data and the fit and user can change the function and order of the fit, delete bad points, shift data to correct for clouds or bandpass errors, and possibly determine a revised extinction function. The statistics of the sensitivity determination are written to the logfile ("logfile" by default). 2. The following examples illustrate the colon command syntax. Generally if no argument is given the current value is displayed. For the statistics commands an optional output file may be given to record the information. .nf :flux 1e-12 INDEF Set lower limit for flux plots :flux INDEF INDEF Restore autoscaling in flux plots :func spline3 Select cubic spline function :g srae Graph sensitivity, residuals, airmass, and extinction :g sii Graph sensitivity and two images :i n1.0004 n1.0008 Set first two images to graph (the defaults are taken from the standard star list) :skys n1.0005 Subtract this sky image from first image for flux calibrated spectrum :m plus Change the mark type for included points and don't change the deleted or added point mark type :stats Print statistics to terminal :vstats stdstats Print verbose statistics to file .fi .ih REVISIONS .ls SENSFUNC V2.10.3+ Deleted points and stars are now ignored from the grey shift calculation. .le .ls SENSFUNC V2.10.3 A color parameter was added for graphics terminals supporting color. .le .ls SENSFUNC V2.10 The latitude parameter has been replaced by the observatory parameter. The 'i' flux calibrated graph type now shows flux in linear scaling while the new graph type 'l' shows flux in log scaling. A new colon command allows fixing the flux limits for the flux calibrated graphs. .le .ls SENSFUNC V2.8 This task has been completely rewritten from that of versions 2.5 and earlier. .nf 1. The input standard data format is different. 2. Extinction corrections beyond a grey term are now supported. 3. Weighting by the counts is not supported. 4. Tabular input is not supported. 5. The data which can be displayed is greatly improved. 6. The fitting options have been greatly enhanced. 7. The fitting function types available have been extended. 8. One or more flux calibrated images may be displayed using the current sensitivity function. 9. Additional flexibility is provided for treating apertures. .fi .le .ih BUGS If the flux points do not span the wavelength range, set by the standard star observations, then the fitting may fail at some maximum order. When it fails there is no message but the highest order which can be successfully fit is used. To work around this one can either add fake points, truncate the wavelength range in the first line of each tabulated object in the file produced by \fBstandard\fR, or exclude the part of the image data which cannot be uncalibrated (using \fBscopy\fR or \fBdispcor\fR). .ih SEE ALSO standard, lcalib, calibrate, observatory, icfit, ranges, scopy, dispcor .endhelp sptable-1.0.pre20180612/src/xonedspec/doc/sfit.hlp000066400000000000000000000251201331023215600214070ustar00rootroot00000000000000.help sfit Mar92 noao.onedspec .ih NAME sfit -- Fit spectra .ih USAGE sfit input output .ih PARAMETERS .ls input Input spectra to be fit. These may be any combination of echelle, multispec, onedspec, long slit, and spectral cube format images. .le .ls output Output fitted spectra. The number of output spectra must match the number of input spectra. \fBOutput\fR may be omitted if \fBlistonly\fR is yes. .le .ls lines = "*", bands = "1" A range specifications for the image lines and bands to be fit. Unspecified lines and bands will be copied from the original. If the value is "*", all of the currently unprocessed lines or bands will be fit. A range consists of a first line number and a last line number separated by a hyphen. A single line number may also be a range and multiple ranges may be separated by commas. .le .ls type = "fit" Type of output spectra. The choices are "fit" for the fitted function, "ratio" for the ratio of the input spectra to the fit, "difference" for the difference between the input spectra and the fit, and "data" for the data minus any rejected points replaced by the fit. .le .ls replace = no Replace rejected points by the fit in the difference, ratio, and data output types? .le .ls wavescale = yes Wavelength scale the X axis of the plot? This option requires that the spectra be wavelength calibrated. If \fBwavescale\fR is no, the plots will be in "channel" (pixel) space. .le .ls logscale = no Take the log (base 10) of both axes? This can be used when \fBlistonly\fR is yes to measure the exponent of the slope of the continuum. .le .ls override = no Override previously fit spectra? If \fBoverride\fR is yes and \fBinteractive\fR is yes, the user will be prompted before each order is refit. If \fBoverride\fR is no, previously fit spectra are silently skipped. .le .ls listonly = no Don't modify any images? If \fBlistonly\fR is yes, the \fBoutput\fR image list may be skipped. .le .ls logfiles = "logfile" List of log files to which to write the power series coefficients. If \fBlogfiles\fR = NULL (""), the coefficients will not be calculated. .le .ls interactive = yes Perform the fit interactively using the icfit commands? This will allow the parameters for each spectrum to be adjusted independently. A separate set of the fit parameters (below) will be used for each spectrum and any interactive changes to the parameters for a specific spectrum will be remembered when that spectrum is fit in the next image. .le .ls sample = "*" The ranges of X values to be used in the fits. The units will vary depending on the setting of the \fBwavescale\fR and \fBlogscale\fR parameters. The default units are in wavelength if the spectra have been dispersion corrected. The sample range syntax consists of pairs of values separated by colons and multiple ranges can be given separated by commas. .le .ls naverage = 1 Number of sample points to combined to create a fitting point. A positive value specifies an average and a negative value specifies a median. .le .ls function = spline3 Function to be fit to the spectra. The functions are "legendre" (legendre polynomial), "chebyshev" (chebyshev polynomial), "spline1" (linear spline), and "spline3" (cubic spline). The functions may be abbreviated. The power series coefficients can only be calculated if \fBfunction\fR is "legendre" or "chebyshev". .le .ls order = 1 The order of the polynomials or the number of spline pieces. .le .ls low_reject = 3., high_reject = 3. Rejection limits below and above the fit in units of the residual sigma. .le .ls niterate = 0 Number of rejection iterations. .le .ls grow = 1. When a pixel is rejected, pixels within this distance of the rejected pixel are also rejected. .le .ls markrej = yes Mark rejected points? If there are many rejected points it might be desired to not mark rejected points. .le .ls graphics = "stdgraph" Graphics output device for interactive graphics. .le .ls cursor = "" Graphics cursor input. .le .ih DESCRIPTION A one dimensional function is fit to spectra in a list of echelle, multispec, or onedspec format images. The first two formats will fit the spectra or orders (i.e. the lines) in each image. In this description the term "spectrum" will refer to a line of an image while "image" will refer to all spectra in an image. The parameters of the fit may vary from spectrum to spectrum within images and between images. The fitted function may be a legendre polynomial, chebyshev polynomial, linear spline, or cubic spline of a given order or number of spline pieces. The output spectra are formed from the fit, the ratio between the pixel values and the fit, the difference of the spectra to the fit, and the original data with rejected points possibly replaced. The output image is of pixel type real. The line/band numbers (for two/three dimensional images) are written to a list of previously processed lines in the header keywords \fISFIT\fR and \fISFITB\fR of the output image. A subsequent invocation of SFIT will only process those requested spectra that are not in this list. This ensures that even if the output image is the same as the input image that no spectra will be processed twice and permits an easy exit from the task in the midst of processing many spectra without losing any work or requiring detailed notes. The points to be fit in each spectrum are determined by selecting a sample of X values specified by the parameter \fIsample\fR and taking either the average or median of the number of points specified by the parameter \fInaverage\fR. The type of averaging is selected by the sign of the parameter with positive values indicating averaging, and the number of points is selected by the absolute value of the parameter. The sample units will vary depending on the settings of the \fBwavescale\fR and the \fBlogscale\fR parameters. Note that a sample that is specified in wavelength units may be entirely outside the domain of the data (in pixels) if some of the spectra are not dispersion corrected. The syntax of the sample specification is a comma separated, colon delimited list similar to the image section notation. For example, the \fBsample\fR, "6550:6555,6570:6575" might be used to fit the continuum near H-alpha. If \fIlow_reject\fR and/or \fIhigh_reject\fR are greater than zero the sigma of the residuals between the fitted points and the fitted function is computed and those points whose residuals are less than \fI-low_reject\fR * sigma and greater than \fIhigh_reject\fR * sigma are excluded from the fit. Points within a distance of \fIgrow\fR pixels of a rejected pixel are also excluded from the fit. The function is then refit without the rejected points. This rejection procedure may be iterated a number of times given by the parameter \fIniterate\fR. If \fIreplace\fR is set then any rejected points from the fitting are replaced by the fit in the data before outputing the difference, ratio, or data. For example with replacing the difference will be zero at the rejected points and the data output will be cleaned of deviant points. A range specification is used to select the \fIlines\fR and \fIbands\fR to be fit. These parameters may either be specified with the same syntax as the \fBsample\fR parameter, or with the "hyphen" syntax used elsewhere in IRAF. Note that a NULL range for \fBlines/bands\fR expands to \fBno\fR lines, not to all lines. An asterisk (*) should be used to represent a range of all of the image lines/bands. The fitting parameters (\fIsample, naverage, function, order, low_reject, high_reject, niterate, grow\fR) may be adjusted interactively if the parameter \fIinteractive\fR is yes. The fitting is performed with the \fBicfit\fR package. The cursor mode commands for this package are described in a separate help entry under "icfit". Separate copies of the fitting parameters are maintained for each line so that interactive changes to the parameter defaults will be remembered from image to image. .ih PROMPTS If several images or lines are specified, the user is asked whether to perform an interactive fit for each spectrum. The response may be \fByes, no, skip, YES, NO\fR or \fBSKIP\fR. The meaning of each response is: .nf yes - Fit the next spectrum interactively. no - Fit the next spectrum non-interactively. skip - Skip the next spectrum in this image. YES - Interactively fit all of the spectra of all of the images with no further prompts. NO Non-interactively fit all chosen spectra of all images. SKIP - This will produce a second prompt, "Skip what?", with the choices: spectrum - skip this spectrum in all images image - skip the rest of the current image all - \fBexit\fR the program This will \fBunlearn\fR the fit parameters for all spectra! cancel - return to the main prompt .fi .ih EXAMPLES 1. To normalize all orders of the echelle spectrum for hd221170 cl> sfit hd221170.ec nhd221170.ec type=ratio Each order of the spectrum is graphed and the interactive options for setting and fitting the continuum are available. The important parameters are low_rejection (for an absorption spectrum), the function type, and the order of the function; these fit parameters are originally set to the defaults in the SFIT parameter file. A '?' will display a menu of cursor key options. Exiting with 'q' will update the output normalized order for the current image and proceed to the next order or image. The parameters of the fit for each order are initialized to the current values the first time that the order is fit. In subsequent images, the parameters for a order are set to the values from the previous image. The first time an order is fit, the sample region is reset to the entire order. Deleted points are ALWAYS forgotten from order to order and image to image. 2. To do several images at the same time cl> sfit spec*.imh c//spec*.imh Note how the image template concatenation operator is used to construct the output list of spectra. Alternatively: cl> sfit @inlist @outlist where the two list files could have been created with the sections command or by editing. 3. To measure the power law slope of the continuum (fluxed data) cl> sfit uv.* type=ratio logscale+ listonly+ fun=leg order=2 .ih REVISIONS .ls SFIT V2.10.4 The task was expanded to include fitting specified bands in 3D multispec spectra. The task was expanded to include long slit and spectral cube data. .le .ls SFIT V2.10 This task is new. .le .ih BUGS The errors are not listed for the power series coefficients. Spectra that are updated when \fBlogscale\fR is yes are written with a linear wavelength scale, but with a log normalized data value. Selection by aperture number is not supported. .ih SEE ALSO continuum, fit1d, icfit, ranges .endhelp sptable-1.0.pre20180612/src/xonedspec/doc/sflip.hlp000066400000000000000000000115611331023215600215630ustar00rootroot00000000000000.help sflip Jul94 noao.onedspec .ih NAME sflip -- Flip data and/or dispersion coordinates in spectra .ih USAGE sflip input output .ih PARAMETERS .ls input List of input images containing spectra to be flipped. .le .ls output Matching list of output image names for flipped spectra. If no list is specified then the flipped spectra will replace the input spectra. If the output image name matching an input image name is the same then the flipped spectrum will replace the original spectrum. .le .ls coord_flip = no Flip the dispersion coordinates? If yes then the relationship between the logical pixel coodinates and the dispersion coordinates will be reversed so that the dispersion coordinate of the first pixel of the output image will correspond to the coordinate of the last pixel in the input image and vice-versa for the other endpoint pixel. The physical coordinates will also be flipped. Only the coordinate system along the dispersion axis is flipped. .le .ls data_flip = yes Flip the order of the data pixels as they are stored in the image along the dispersion axis? If yes then the first pixel in the input spectrum becomes the last pixel in the output spectrum along the dispersion axis of the image. .le .ih DESCRIPTION The dispersion coordinate system and/or the data in the spectra specified by the input list of images are flipped and stored in the matching output image given in the output list of images. If the output image list is left blank or an output image name is the same as an input image name then the operation is done so that the flipped spectra in the image replace the original spectra. All of the supported spectrum types are allowed; one dimensional images, collections of spectra in multispec format, and two and three dimensional spatial spectra in which one axis is dispersion. In all cases the flipping affects only the dispersion axis of the image as specified by the DISPAXIS header keyword or the "dispaxis" parameter. The parameters \fIcoord_flip\fR and \fIdata_flip\fR select whether the coordinate system and data are flipped. If neither operation is selected then the output spectra will simply be copies of the input spectra. Flipping of the coordinate system means that the relation between "logical" pixel coordinates (the index system of the image array) and the dispersion and physical coordinate systems is reversed. The dispersion coordinate of the first pixel in the flipped spectrum will be the same as the dispersion coordinate of the last pixel in the original spectrum and vice-versa for the other endpoint. Flipping of the data means that the order in which the pixels are stored in the image file is reversed along the image axis corresponding to the dispersion. While flipping spectra seems simple there are some subtleties. If both the coordinate system and the data are flipped then plots of the spectra in which the dispersion coordinates are shown will appear the same as in the original spectra. In particular the coordinate of a feature in the spectrum will remain unchanged. In contrast flipping either the coordinate system or the data will cause features in the spectrum to move to opposite ends of the spectrum relative to the dispersion coordinates. Since plotting programs often plot the dispersion axis in some standard way such as increasing from left to right, flipping both the dispersion coordinates and the data will produce plots that look identical even though the order of the points plotted will be reversed. Only if the spectra are plotted against logical pixel coordinates will a change be evident. Note also that the plotting programs themselves have options to reverse the displayed graph. So if all one wants is to reverse the direction of increasing dispersion in a plot then physically flipping of the spectra is not generally necessary. Flipping of both the coordinate system and the data is also equivalent to using an image section with a reversed axis. For example a one dimensional spectrum can be flipped in both dispersion coordinates and data pixel order by .nf cl> imcopy spec1[-*] spec2 .fi Higher dimensional spectra need appropriate dimensions in the image sections. One advantage of \fBsflip\fR is that it will determine the appropriate dispersion axis itself. .ih EXAMPLES In the following the spectra can be one dimensional, multispec, long slit, or spectral data cubes. .nf cl> sflip spec1 spec1f # Flip data to new image cl> sflip spec1 spec1 # Flip data to same image cl> sflip spec1 spec1f coord+ data- # Flip coordinates and not data cl> sflip spec1 spec1f coord+ # Flip both coordinates and data cl> sflip spec* f//spec* # Flip a list of images .fi .ih REVISIONS .ls SFLIP V2.10.4 New in this release. Note that the V2.9 SFLIP was different in that it was script which simply flipped the data. Coordinate systems were not handled in the same way. .le .ih SEE ALSO imcopy, scopy, dispcor, sapertures .endhelp sptable-1.0.pre20180612/src/xonedspec/doc/sinterp.hlp000066400000000000000000000105521331023215600221310ustar00rootroot00000000000000.help sinterp Mar92 noao.onedspec .ih NAME sinterp -- Interpolate a tables of x,y pairs to produce a spectrum .ih USAGE sinterp tbl_file .ih PARAMETERS .ls tbl_file The name of a file which contains the x,y pairs to be used as the basis for interpolation. The pairs must be in order of increasing x. .le The following parameters may or may not be necessary, depending on the options selected. .ls input If a few single elements are desired, rather than a full array of elements, the user may enter a sequence of x values from the terminal or a file to be used to interpolate into the x,y table (parameter curve_gen=no). .le .ls image If parameter make_image=yes, then an image file name is needed .le .ls order = 5 If the interpolator is a polynomial fit or spline (interp_mode= chebyshev, legnedre, spline3, spline1), the order of the fit is required. .le .ls x1 If parameter curve_gen=yes, this is the starting x value to begin the curve generation. .le Of the following three parameters, two must be specified, and the third will be derived. .ls x2 = 0.0 As above, but x2 determines the endpoint of the curve. .le .ls dx = 0.0 As above, but dx determines the pixel-to-pixel increment to be used during the curves generation. .le .ls npts = 0 As above, but this determines the number of pixels to be generated. .le .ls curve_gen = no If this parameter is set to yes, then parameters x1, and two of the three x2, dx, npts are required. The output is in the form of new x,y pairs and may be redirected to a text file. But if parameter make_image is also yes, the output is in the form of an IRAF image file having the name given by the parameter image. If curve_gen=no, the user must supply a set of x values and interpolation is performed on those values. .le .ls make_image = no If set to yes, then curve_gen=yes is implied and an image file name is requied. A one dimensional IRAF image is created. .le .ls tbl_size = 1024 This parameter defines the maximum size to be set aside for memory storage of the input x,y pairs. .le .ls interp_mode = "chebyshev" This parameter controls the method of interpolation. The linear and curve options are true interpolators, while chebyshev, legendre, spline3, and splin1 are fits to the data. .le .ih DESCRIPTION The specified file is read assuming it is a text file containing pairs of x,y values in the form: xxx yyy. The table is used to define the function y(x). The pairs must be entered in the file in increasing order of x. The user specifies either specific x values for which the function is to be evaluated, or specifies that a sequence of values beginning with x1 are to be generated. In the former case, the explicit x values may come either from the keyboard or from a file. In the latter case the user must also specify the sequence by defining the increment, dx, the endpoint, x2, and the number of points to generate in the sequence. Then y(x) is evaluated at x1, x1+dx, x1+2*dx, ... , x1+(n-2)*dx, x2. Only 2 of the 3 parameters (x2, dx, npts) are needed to fully specify the sequence. The output of the function evaluation is either new x,y pairs written to STDOUT, or an IRAF image. The function used to evaluated the tabular data may be any of the following forms: .ls (1) Linear interpolation between points. .le .ls (2) Smooth interpolation between points. .le .ls (3) A polynomial fit of either Legendre or Chebyshev types. .le .ls (4) A cubic or linear spline. .le If the table of x,y pairs is very large, the parameter tbl_size should be set to the number of pairs. For example, if a spectrum is available as a text file of x,y pairs (such as might be obtained from IUE), and the number of pairs is 4096, then tbl_size should be set to 4096. This provides for sufficient memory to contain the table. .ih EXAMPLES The following shows how a text file may be used to generate a spectrum: .nf cl> sinterp textfile make+ x1=4000 x2=5000 npts=1024 \ >>> image=testimage interp_mode=curve .fi The following sequence shows how to generate a spectrum of an IRS standard star using the calibration file data as the source. .nf cl> lcalib flam feige34 caldir=onedstds$irscal/ >textfile cl> sinterp textfile make+ x1=3550 dx=1.242 npts=1024 \ >>> interp_mode=linear image=feige34 .fi .ih REVISIONS .ls SINTERP V2.10.3+ The image header dispersion coordinate system has been updated to the current system. .le .ls SINTERP V2.10 This task is unchanged. .le .ih SEE ALSO lcalib .endhelp sptable-1.0.pre20180612/src/xonedspec/doc/skytweak.hlp000066400000000000000000000336111331023215600223100ustar00rootroot00000000000000.help skytweak Mar97 noao.onedspec .ih NAME skytweak -- sky subtract 1D spectra after tweaking sky spectra .ih SUMMARY Sky spectra are shifted and scaled to best subtract sky features from data spectra. This may be done non-interactively to minimize the RMS in some region or regions of the data spectra and interactively with a graphically search. .ih USAGE skytweak input output cal .ih PARAMETERS .ls input List of input data images containing one dimensional spectra to be corrected. All spectra in each image are corrected. The spectra need not be wavelength calibrated. .le .ls output List of output corrected images. The list must either match the input list or be an empty list. If an empty list is specified the input spectra will be replaced by the corrected spectra. The input spectra will also be replaced if the input and output image names are the same. Any other image name must be for a new image otherwise a warning message will be given and the task will proceed to the next input image. .le .ls cal List of sky calibration images. If a single image is specified it will apply to all the input images. Otherwise the list of calibration images must match the list of input images. .le .ls ignoreaps = no Ignore aperture numbers between the input spectra and the calibration spectra? If "no" then the calibration image must contain a spectrum with the same aperture number as each spectrum in the input image. Otherwise the first spectrum in the calibration image will be used for all spectra in the input image. .le .ls xcorr = yes Cross-correlate each input spectrum with the calibration spectrum to determine an shift for the calibration spectrum? Only regions specified by the sample regions parameter will be used in the cross-correlation. .le .ls tweakrms = yes Search for the minimum RMS in the corrected spectrum by adjusting the shifts and scales between the input spectrum and the calibration spectrum? The RMS is minimized in the specified sample regions. .le .ls interactive = yes Enter an interactive graphical mode to search for the best shift and scale between the input spectra and calibration spectra? This is done after the optional automatic cross-correlation and RMS minimization step. A query is made for each input spectrum so that the interactive step may be skipped during the execution of the task. .le .ls sample = "*" Sample regions to use for cross-correlation, automatic RMS minimization, and RMS values. The sample regions are specified by a list of comma separated ranges. The ranges are colon separate coordinate values. For dispersion calibrated spectra the coordinate values are in the dispersion units otherwise they are in pixel coordinates. The string "*" selects the entire spectrum. The sample regions may be changed interactively either with the cursor or with a colon command. .le .ls lag = 10 The cross-correlation lag to use when \fIxcorr\fR = yes. The lag is given in pixels. This is the distance to either side of the initial shift over which the cross-correlation profile is computed. If a value of zero is given then the cross-correlation step is not done. .le .ls shift = 0., dshift = 1. The initial shift and shift step in pixels. This initializes the shift search parameters for the first spectrum. If \fIdshift\fR is zero then there will be no search for a new shift and the 'x' interactive function is disabled. These parameters may be changed interactively. After the first spectrum subsequent spectra begin with the values from the last spectrum. .le .ls scale = 1., dscale = 0.2 The initial scale and scale step. This initializes the scale search parameters for the first spectrum. If \fIdscale\fR is zero then there will be no search for a new scale and the 'y' interactive function is disabled. These parameters may be changed interactively. After the first spectrum subsequent spectra begin with the values from the last spectrum. .le .ls offset = 1. The interactive search displays three candidate corrected spectra which have been normalized to a mean of one. The offset is added and subtracted to separate the three candidates. The value may be changed interactively. .le .ls smooth = 1 The displayed candidate corrected spectra are smoothed by a moving boxcar average with a box size specified by this parameter. The smoothing only applies to the displayed spectra and does not affect the measured RMS or the output corrected spectra. The value may be changed interactively. .le .ls cursor = "" Input cursor for the interactive graphics. A null value selects the graphics cursor otherwise a file of cursor values may be specified. .le .ls answer Query parameter for responding to the interactive question. This parameter should not be specified on the command line. .le .ls interp = poly5 The \fBpackage\fR parameter specifying the interpolation function for shifting the calibration spectra to match the input spectra. .le .ih DESCRIPTION Input one dimensional spectra are corrected to remove sky features by subtracting a shifted and scaled sky calibration spectra. The shifting allows for possible small shifts or errors in the dispersion zeropoints. The following describes the correction. Let J(x_i) be the calibration spectrum at a set of pixels x_i. An interpolation function is fit to this spectrum to give J(x). The shifted and scaled calibration function is then .nf (1) J'(x) = J(x+dx) *scale .fi where dx is the pixel shift parameter and scale is the scale parameter. The output corrected spectrum is then computed as .nf (2) I'(x_i) = I(x_i) - J'(x_i) .fi where I' is the corrected spectrum and I is the input spectrum. If the spectra are dispersion calibrated, possibly with different dispersion parameters, then the x values in (2) from the input spectrum are converted to matching pixels in the calibration spectrum using the dispersion functions of the two spectra. The purpose of this task is to determine the best values of the shift and scale parameters dx and scale. There are automatic and interactive methods provided. The automatic methods are cross-correlation of the calibration and input spectra to find a shift and an iterative search for the in both shift and scale that minimizes the RMS of I' in some region. The automatic methods are performed first, if selected, followed by the interactive, graphical step. The following describes the steps in the order in which they occur. The initial values of the shift and scale are set by the parameters \fIshift\fR and \fIscale\fR for the first spectrum. After that the values determined for the previous spectrum, those actually applied to correcting that spectrum, are used as the initial values for the next spectrum. The search steps and sample regions are also initialized by task parameters but may be modified during the interactive step and the modified values apply to subsequent spectra. If the \fIxcorr\fR parameter is yes and the \fIlag\fR parameter is not zero the calibration spectrum is cross-correlated against the input spectrum. Each spectrum is prepared as follows. A large scale continuum is fit by a quadratic chebyshev using 5 iterations of sigma clipping with a clipping factor of 3 sigma below the fit and 1 sigma above the fit and rejecting the deviant points along with one pixel on either side. This attempts to eliminate the effects of absorption lines. The continuum fit is subtracted from the spectrum and the spectrum is extended and tapered by a cosine function of length given by the \fIlag\fR parameter. The prepared spectra are then cross-correlated by shifting the calibration spectrum plus and minus the specified \fIlag\fR amount about the current shift value. Only the regions in the input spectrum specified by the sample regions parameter are used in the correlation. This produces a correlation profile whose peak defines the relative shift between the two spectra. The current shift value is updated. This method assumes the common telluric features dominate within the specified sample regions. The lag size should be roughly the profile widths of the telluric features. If the \fItweakrms\fR parameter is yes and \fIdshift\fR is greater than zero trial corrections at the current shift value and plus and minus one shift step with the scale value fixed at its current value are made and the RMS in the sample regions computed. If the RMS is smallest at the current shift value the shift step is divided in half otherwise the current shift value is set to the shift with the lowest RMS. The process is then repeated with the new shift and shift step values. This continues until either the shift step is less than 0.01 pixels or the shift is more than two pixels from the initial shift. In the latter case the final shift is reset to the original shift. The scale factor is then varied if \fIdscale\fR is greater than zero by the scale step at a fixed shift in the same way as above to search for a smaller RMS in the sample regions. This search terminates when the scale step is less than 0.01 or if the scale value has departed by 100% of the initial value. In the latter case the scale value is left unchanged. The search over the shifts and scales is repeated a second time after which the tweak algorithm terminates. After the optional cross-correlation and tweak steps the interactive search mode may be entered. This occurs if \fIinteractive\fR = yes. A query is asking whether to search interactively. The answers may be "no", "yes", "NO", or "YES". The lower case answers apply to the current spectrum and the upper case answers apply to all subsequent spectra. This means that if an answer of "NO" or "YES" is given then there will be no further queries for the remaining input spectra. If the interactive step is selected a graph of three candidate corrections for the input spectrum is displayed. There also may be a graph of the calibration or input spectrum shown for reference. Initially the calibration spectrum is displayed. The additional graph may be toggled off and on and between the input and calibration spectra with the 'c' and 'd' keys. The three candidate corrected spectra will be with the current shift and scale in the middle and plus or minus one step in either the shift or scale. Initially the spectra will be at different scale values. Information about the current shift and scale and the step used is given in the graph title. One may toggle between shift steps and scale steps with the 'x' (for shift) or 'y' (for scale) keys. The RMS in the title is the RMS within the currently defined sample regions. If one of the step values is zero then a display of different values of that parameter will not be selected. The step size will need to be set with a colon command to search in that parameter. If 'x' is typed when the three spectra are at different shifts then the nearest spectrum to the y cursor at the x cursor position will be selected. If the central spectrum is selected the step size is divided in half otherwise the current shift is changed and the selected spectrum becomes the middle spectrum. Three new spectra are then shown. The same applies if 'y' is typed when the three spectra are at different scales. This allows an interactive search similar to the iterative tweakrms method described previously except the user can use whatever criteria is desired to search for the best scale and shift. There are additional keystrokes and colon commands to set or change sample regions, reset the current shift, scale, and step sizes, expand the step size in the current mode, adjust the offsets between the spectra, and get help. The 'w' key and GTOOLS colon commands are available to window the graphs. Any changes in the x limits apply to both graphs while y limit adjustments apply to the graph pointed to by the cursor. Two other commands require a short explanation. The 'a' key may be used to run the tweakrms algorithm starting from the current shift, scale, and steps and the current sample regions. This allows one to graphically set or reset the sample regions before doing the RMS minimization. The ":smooth" command and associated \fIsmooth\fR task parameter allow the corrected spectra to be displayed with a boxcar smoothing to better see faint features in noise. It is important to realize that the smoothing is only done on the displayed spectra. The telluric correction and computed RMS are done in the unsmoothed data. After the interactive step is quit with 'q' or if the interactive step is not done then the final output spectrum is computed and written to the output image. A brief log output is printed for each spectrum. .ih CURSOR KEYS AND COLON COMMANDS .nf ? - print help a - automatic RMS minimization within sample regions c - toggle calibration spectrum display d - toggle data spectrum display e - expand (double) the step for the current selection q - quit r - redraw the graphs s - add or reset sample regions w - window commands (see :/help for additional information) x - graph and select from corrected shifted candidates y - graph and select from corrected scaled candidates :help - print help :shift [value] - print or reset the current shift :scale [value] - print or reset the current scale :dshift [value] - print or reset the current shift step :dscale [value] - print or reset the current scale step :offset [value] - print or reset the current offset between spectra :sample [value] - print or reset the sample regions :smooth [value] - print or reset the smoothing box size .fi .ih EXAMPLES 1. To interactively search for a best correction with the default cross-correlation and tweak steps: .nf cl> skytweak spec001.ms skyspec001.ms spec005.ms .fi 2. To search only for a scale factor: .nf cl> skytweak spec001.ms skyspec001.ms spec005.ms xcorr- dshift=0. .fi 3. To processes a set of spectra non-interactively with the same calibration spectrum and to replace the input spectra with the corrected spectra and log the processing: .nf cl> skytweak spec* "" skyspec inter- > log .fi .ih REVISIONS .ls SKYTWEAK V2.11 This task is new in this version. .le .ih SEE ALSO telluric .endhelp sptable-1.0.pre20180612/src/xonedspec/doc/skytweak.key000066400000000000000000000031471331023215600223160ustar00rootroot00000000000000 SKYTWEAK COMMAND SUMMARY ? - print help a - automatic RMS minimization within sample regions c - toggle calibration spectrum display d - toggle data spectrum display e - expand (double) the step for the current selection q - quit r - redraw the graphs s - add or reset sample regions w - window commands (see :/help for additional information) x - graph and select from corrected shifted candidates y - graph and select from corrected scaled candidates :help - print help :shift [value] - print or reset the current shift :scale [value] - print or reset the current scale :dshift [value] - print or reset the current shift step :dscale [value] - print or reset the current scale step :offset [value] - print or reset the current offset between spectra :sample [value] - print or reset the sample regions :smooth [value] - print or reset the smoothing box size The stacked display shows three corrected candidate spectra. The center one is for the current shift and scale and the other two are one step higher or lower in the shift or scale. The current values and the step is shown in the title. Toggle between the shift and scale candidates with 'x' or 'y'. Select the best spectrum with the cursor and typing 'x' or 'y'. Selecting the middle spectrum with 'x' in the shift display divides the shift step in half. Selecting one of the other spectra changes the current shift. Selecting the middle spectrum with 'y' in the scale display divides the scale step in half. Selecting one of the other spectra changes the current scale. When 'q' is typed the final shift and scale will be that of the middle spectrum. sptable-1.0.pre20180612/src/xonedspec/doc/slist.hlp000066400000000000000000000120521331023215600216000ustar00rootroot00000000000000.help slist Mar92 noao.onedspec .ih NAME slist -- List spectral header information .ih USAGE slist images .ih PARAMETERS .ls images List of images to be listed. .le .ls apertures = "" List of apertures to be selected from the images for listing. A null list selects all apertures. See \fBranges\fR for the syntax of this list. .le .ls long_header = no If set to yes, then a multiline listing of the header elements is given. If set to no, then a single line per spectrum is given. The contents of the listing depend on the format. .le .ih DESCRIPTION This task lists header information from apertures in a list of input images. There is a short one line per spectrum listing and a more extended listing selected by the \fIlong_header\fR parameter. In both short and long outputs the aperture information consists of lines with the following whitespace separated fields: the image line, the aperture number, the beam number, the dispersion type, the wavelength of the first pixel, the wavelength interval per pixel, the number of valid pixels, and the aperture title. The dispersion type is an integer with a value of -1 if not dispersion corrected, 0 if dispersion corrected to a linear wavelength sampling, 1 if dispersion corrected to a log wavelength sampling, and 2 if dispersion corrected to a nonlinear sampling. The wavelength per pixel is an approximation based on the wavelength endpoints divided by the number of pixels in the case of a nonlinear dispersion function. Also the wavelengths refer to the actual pixels taking any image sections into account and so may differ from the coordinate system information in the header which is defined for the original physical coordinates. The aperture titles may be identical with the image title if individual aperture titles are not defined. In the short output format the image title is given first followed by the above described information. This format is compact and suitable for easy use in other programs (see the example below). The long output format is blocked by image and gives the image name and title on the first line, the exposure time, universal time, and siderial time on the second line, the right ascention, declination, hour angle, and airmass on the third line, and then the individual aperture informations on the remaining lines. If some of the header information is missing a value of INDEF is printed. The keywords used are EXPTIME/ITIME/EXPOSURE (in that order) for the exposure time, and UT, ST, RA, DEC, HA, and AIRMASS for the remaining values. demoobj.ms: Hydra artificial image EXPTIME = 2133.33 UT = 9:10:09.0 ST = 20:09:34.0 RA = 1:34:02.00 DEC = 30:37:03.0 HA = INDEF AIRMASS = 2.3 .ih EXAMPLES 1. List short header for an object and arc from a Hydra multifiber reduction for fibers 36 to 39. .nf cl> slist demoobj.ms,demoarc1.ms ap=36-39 demoobj.ms 1 37 0 0 5785.85 6.140271 256 Sky fiber demoobj.ms 2 38 1 0 5785.85 6.140271 256 SS313 demoobj.ms 3 39 1 0 5785.85 6.140271 256 SS444 demoarc1.ms 1 36 2 0 5785.85 6.140271 256 Arc fiber demoarc1.ms 2 37 0 0 5785.85 6.140271 256 Sky fiber demoarc1.ms 3 38 1 0 5785.85 6.140271 256 SS313 demoarc1.ms 4 39 1 0 5785.85 6.140271 256 SS444 .fi Note that fiber 37 is the first image line in demoobj.ms and teh second image line in demoarc.ms. The dispersion is the same in all fibers by design. 2. List long headers for the two images of example 1 but restricted to apertures 38 and 39. .nf cl> slist demoobj.ms,demoarc1.ms ap=38,39 l+ demoobj.ms: Hydra artificial image EXPTIME = 2133.33 UT = 9:10:09.0 ST = 20:09:34.0 RA = 1:34:02.00 DEC = 30:37:03.0 HA = INDEF AIRMASS = 2.3 2 38 1 0 5785.85 6.140271 256 SS313 3 39 1 0 5785.85 6.140271 256 SS444 demoarc1.ms: Hydra artificial image EXPTIME = 2133.33 UT = 9:10:09.0 ST = 20:09:34.0 RA = 1:34:02.00 DEC = 30:37:03.0 HA = INDEF AIRMASS = 2.3 3 38 1 0 5785.85 6.140271 256 SS313 4 39 1 0 5785.85 6.140271 256 SS444 .fi The other header parameters are the same because this is artificial data using the same template header. 3. Dump the set of image headers on a printer in long format. .nf cl> slist *.ms.imh l+ | lprint .fi 4. The short form of SLIST may be used to get some of the aperture information for use in a script. The following simply prints the image line corresponding to a specified aperture. In a real application something more complex would be done. .nf procedure example (images, aperture) string images {prompt="List of images"} int aperture {prompt="Aperture"} begin string temp, image int line # Use SLIST to print to a temporary file. temp = mktemp ("example") slist (images, aperture=aperture, long=no, > temp) # Scan each line and print the line number. list = temp while (fscan (list, image, line) != EOF) print (image, ": ", line) list = "" delete (temp, verify=no) end .fi .ih REVISIONS .ls SLIST V2.10 This task was revised to be relevant for the current spectral image formats. The old version is still available in the IRS/IIDS package. .le .ih SEE ALSO imheader, hselect .endhelp sptable-1.0.pre20180612/src/xonedspec/doc/specplot.hlp000066400000000000000000000416251331023215600223030ustar00rootroot00000000000000.help specplot Jan96 noao.onedspec .ih NAME specplot -- stack and plot multiple spectra .ih USAGE specplot spectra .ih PARAMETERS .ls spectra List of spectra to plot. The spectra are assigned index numbers increasing from one in the order of the list. .le .ls apertures = "" List of apertures to plot. An empty list selects all apertures. An aperture list consists of a comma separated list of aperture numbers or hyphen sperated range of numbers. A step size may also be specified preceded by 'x'. See \fBranges\fR for more. .le .ls bands = "1" List of bands to plot if the image is three dimensional. The list has the same syntax as for the apertures. .le .ls dispaxis = 1, nsum = 1 Parameters for defining vectors in 2D images. The dispersion axis is 1 for line vectors and 2 for column vectors. A DISPAXIS parameter in the image header has precedence over the \fIdispaxis\fR parameter. These may be changed interactively. .le .ls autolayout = yes Automatically layout the spectra by shifting or scaling to a common mean and determining a separation step which does overlaps the spectra by the specified fraction? The algorithm uses the following parameters. .ls autoscale = yes Scale the spectra to a common mean? If no then the spectra are shifted to a common mean and if yes they are scaled to a common mean. .le .ls fraction = 1. The separation step which just avoids overlapping the spectra is multiplied by this number. Numbers greater than 1 increase the separation while numbers less than 1 decrease the separation and provide some amount of overlap. .le .le .ls units = "" Dispersion coordinate units. If the spectra have known units, currently this is generally Angstroms, the plotted units may be converted for plotting to other units as specified by this parameter. If this parameter is the null string then the units specified by the world coordinate system attribute "units_display" is used. If neither is specified than the units of the coordinate system are used. The units may also be changed interactively. See the units section of the \fBonedspec\fR help for a further description and available units. .le .ls scale = 1., offset = 0. (value, @file, keyword) The scale and offset to apply to each spectrum. The value of the parameter may be a constant value applying to all spectra, a file containing the values specified as @ where is the filename, or an image header keyword whose value is to be used. .le .ls step = 0 The step separating spectra when not using the autolayout option. The value of this parameter depends on the range of the data. .le .ls ptype = "1" Default plotting type for the spectra. A numeric value selects line plots while marker type strings select marker plots. The sign of the line type number selects histogram style lines when negative or connected pixel values when positive. The absolute value selects the line type with 0 being an invisible line, 1 being a solid line, and higher integers different types of lines depending on the capabilities of the graphics device. The marker type strings are "point", "box", "plus", "cross", "diamond", "hline", "vline", "hebar", "vebar", and "circle". The types for individual spectra may be changed interactively. .le .ls labels = "user" Spectrum labels to be used. If the null string or the word "none" is given then the spectra are not labeled. The word "imname" labels the spectra with the image name, the word "imtitle" labels them wih the image title, the word "index" labels them with the index number, and the word "user" labels them with user defined labels. The user labels may be given in the file specified by the parameter \fIulabels\fR, which are matched with the list of spectra, and also added interactively. .le .ls ulabels = "" File containing user labels. .le .ls xlpos = 1.02, ylpos = 0.0 The starting position for the spectrum labels in fractions of the graph limits. The horizontal (x) position is measured from the left edge while the vertical position is measured from the mean value of the spectrum. For vertical positions a negative value may be used to label below the spectrum. The default is off the right edge of the graph at the mean level of the spectrum. .le .ls sysid = yes Include system banner and separation step label? This may be changed interactively using ":/sysid". .le .ls yscale = no Draw a Y axis scale? Since stacked plots are relative labeling the Y axes may not be useful. This parameter allows adding the Y axis scale if desired. The default is to not have a Y axis scale. .le .ls title = "", xlabel = "", ylabel = "" Title, x axis label, and y axis label for graphs. These may be changed interactively using ":/title", ":/xlabel", and ":/ylabel". .le .ls xmin = INDEF, xmax = INDEF, ymin = INDEF, ymax = INDEF The default limits for the initial graph. If INDEF then the limit is determined from the range of the data (autoscaling). These values can be changed with 'w' cursor key or the cursor commands ":/xwindow" and ":/ywindow". .le .ls logfile = "" Logfile to record the final set of spectra and scale factors displayed. .le .ls graphics = "stdgraph" Output graphics device. One of "stdgraph", "stdplot", "stdvdm", @(enviroment variable), or actual device. .le .ls cursor = "" Graphics cursor input. When null the standard cursor is used otherwise the specified file is used. .le .ih DESCRIPTION \fBSpecplot\fR plots multiple spectra with provisions for scaling them, separating them vertically, shifting them horizontally, and labeling them. The layout can be defined by an automatic algorithm or explicitly and adjusted noninteractively (with some limitations) or interactively. The plotting units can be selected and the vertical axis scale can be shown or not as desired. This task is used for compressing many spectra to a page for review, intercomparison of spectra, classification against standards, and final display. The input list of spectra consists of one, two, or three dimensional images. The set of spectra may be restricted to specific apertures using the \fIapertures\fR parameter. Note that for true 2D images, such as long slit spectra, the aperture number corresponds to the line or column to be plotted and the dispersion axis and nsum parameter are determined either from the image header or the package parameters. Spectra extracted with the \fBapextract\fR package may be three dimensional where the 3rd dimension corresponds to related data. The higher dimensional data is also plotted though it may be restricted with the \fIbands\fR parameter. Each spectrum has a number of associated parameters which are initially assigned default values but which may be changed interactively. First each spectrum is assigned an index number. This is generally sequential starting from 1. Spectra added interactively are assigned the next higher or lower index relative to the spectrum being appended or inserted. The index is used for refering to parameters of a particular spectrum and for separating the spectra vertically. The spectra are scaled and shifted by the equation I = value * scale + offset + (index - 1) * step where "I" is the final plotted value, "value" is the pixel value, "scale" is a multiplicative scaling, "offset" is a additive offset, and "step" is an additive separation step used to stack spectra vertically. The default values of the vertical scaling parameters may be set by an automatic layout algorithm or with explicit constants (the same for all spectra). The automatic mode is selected with the parameter \fIautolayout\fR and works as follows. All spectra are scaled or shifted to a common mean (depending on the parameter \fIautoscale\fR) relative to the lowest indexed spectrum. A step size is then computed to just avoid overlapping of the minimum of one spectrum with the maximum of another. Note that this may not yield a good layout if the spectra have large continuum slopes. Finally, to add some extra space between the spectra or to allow some overlap, the minimum step is multiplied by a specified overlap factor, \fIfraction\fR. In nonautomatic mode the user specifies the intensity scale, offset, and separation step explicitly with the parameters, \fIscale, offset\fR and \fIstep\fR. If the step is zero then spectra will be directly overplotted while a positive or negative value will separate the spectra either upward or downward with the index 1 spectrum having no offset. The scale and offset parameters may be specified as either constant values, the name of file containing the values (one per line) preceded by the '@' character, or the name of an image header keyword. This parameter as well as the scale and offset may be set or changed interactively via colon commands and the "offset" may also be set using the cursor to shift a spectrum vertically. In addition to shifting spectra vertically they may also be shifted horizontally as a velocity/redshift or a zero point change with either cursor or colon commands. The dispersion, inteval per pixel, may be modified, either with the 't' key or the "wpc" command, in which case if the dispersion is nonlinear the spectra will be linearized. Each spectrum may have a label associated with it. The label type may be the image name, the image title, the index number, or a user defined label. The default label type is specified by the parameter \fIlabels\fR. For user labels the initial labels may be specified in a file. Interactively the label type may be changed using the ":labels" command and the user assigned labels may be defined by a colon command or by using the cursor to mark the position for the label. The label position is given relative to the range of the graph and the mean intensity. The default values are set by the parameters \fIxlpos\fR and \fIylpos\fR. The positions may be changed interactively for all the spectra or individually. The latter may be done using the cursor to mark exactly where the label is to go. Each spectrum has an associated plotting type. The default type which applies to all spectra initially is specified by the parameter \fIptype\fR. This parameter specifies both whether line mode or marker mode is used and the line type, line style, or marker type to use. The line mode and types are given by a small integers with the style, connected pixel centers or histogram style, chosed by the sign of the integer. The type of lines produced depend on the capabilities of the terminal. In most cases a zero line type is invisible. (This may be used interactively to temporarily eliminate a spectrum from a plot instead of deleting the spectrum from the list of spectra). A line type of 1 is a solid line and additional line types are specified by higher numbers. The marker types are given by name as described in the parameter section. There is currently no combination of line and marker (such as connected points with vertical bars) or histogram type plotting. The plotting type may be changed interactively for individual spectra or for all spectra using colon commands. The cursor and colon commands generally apply to the spectrum nearest the cursor. This is determined by finding the nearest data point to the cursor. For the colon commands the spectrum may also be specified explicitly by the index number using an optional suffix "[index]", where index is the index number for the spectrum. Also the special index "*" may be specified to apply to all spectra. The operations of adding, deleting, moving, or shifting spectra affect the index numbers of the other spectra. When deleting a spectrum the index numbers of all spectra with greater index numbers are decreased by one resulting in the plotted spectra moving down (positive step). When adding a spectrum the index numbers above the inserted spectrum are increased by one resulting in the spectra moving up. Moving a spectrum to a new index number is equivalent to deleting the spectrum and then inserting it at the new index position. Spectra may be shifted to insert gaps in the plotted spectra. The specified value is added to all spectra above and including the one indicated if the value is positive to all spectra below and including the one indicated if the value is negative. .ih CURSOR COMMANDS The indicated spectrum is the one with a point closest to the cursor position. .nf ? - Print help summary a - Append a new spectrum following the indicated spectrum i - Insert a new spectrum before the indicated spectrum d - Delete the indicated spectrum e - Insert last deleted spectrum before indicated spectrum f - Toggle between world coordinates and logical pixel coordinates l - Define the user label at the indicated position p - Define the label position at the indicated position o - Reorder the spectra to eliminate gaps q - Quit r - Redraw the plot s - Repeatedly shift the indicated spectrum position with the cursor q - Quit shift x - Shift horizontally in velocity s - Shift vertically in scale y - Shift vertically in offset t - Shift horizontally in velocity z - Shift horizontally in velocity and vertically in scale and vertically in offset t - Set a wavelength scale using the cursor u - Set a wavelength point using the cursor v - Set velocity plot with zero point at cursor w - Window the plot x - Cancel all scales and offsets y - Automatically layout the spectra with offsets to common mean z - Automatically layout the spectra scaled to common mean .fi .ih COLON COMMANDS A command without a value generally shows the current value of the parameter while with a value it sets the value of the parameter. The show commands print to the terminal unless a file is given. For the spectrum parameters the index specification, "[index]", is optional. If absent the nearest spectrum to the cursor when the command is given is selected except for the "units" command which selects all spectra. The index is either a number or the character *. The latter applies the command to all the spectra. .nf :show Show spectrum parameters (file optional) :vshow Show verbose parameters (file optional) :step Set or show step :fraction Set or show autolayout fraction :label Set or show label type (none|imtitle|imname|index|user) :move[index] Move spectrum to new index position :shift[index|*] Shift spectra by adding to index :w0[index|*] Set or show zero point wavelength :wpc[index|*] Set or show wavelength per channel :velocity[index|*] Set or show radial velocity (km/s) :redshift[index|*] Set or show redshift :offset[index|*] Set or show intensity offset :scale[index|*] Set or show intensity scale :xlpos[index|*] Set or show X label position :ylpos[index|*] Set or show Y label position :ptype[index|*] Set or show plotting type :color[index|*] Set or show color (1-9) :ulabel[index|*] Set or show user labels :units[index|*] Change coordinate units :/title Set the title of the graph :/xlabel Set the X label of the graph :/ylabel Set the Y label of the graph :/xwindow Set the X graph range (use INDEF for autoscaling) :/ywindow Set the X graph range (use INDEF for autoscaling) Examples: w0 Print value of wavelength zero point w0 4010 Set wavelength zero point of spectrum nearest the cursor w0[3] 4010 Set wavelength zero point of spectrum with index 3 w0[*] 4010 Set wavelength zero point of all spectra .fi .ih EXAMPLES 1. To make a nice plot of a set of spectra with the default layout: cl> specplot spec* .ih REVISIONS .ls SPECPLOT V2.11 The scale and offset parameters may now be a value, a filename, or and image header keyword. The 'f' key was added to toggle between world and logical pixel coordinates. .le .ls SPECPLOT V2.10.3 A color parameter was added for graphics terminals supporting color. The :units command was extended to have an optional spectrum specifier. This is primarily intended to plot different (or the same) spectra in velocity but with different velocity zeros. The default task units parameter has been changed to "" to allow picking up a "units_display" WCS attribute if defined. .le .ls SPECPLOT V2.10 New parameters were added to select apertures and bands, plot additional dimensions (for example the additional output from the extras option in \fBapextract\fR), suppress the system ID banner, suppress the Y axis scale, output a logfile, and specify the plotting units. The \fIptype\fR parameter now allows negative numbers to select histogram style lines. Interactively, the plotting units may be changed and the 'v' key allows setting a velocity scale zero point with the cursor. The new version supports the new spectral WCS features including nonlinear dispersion functions. .le .ih NOTES The automatic layout algorithm is relatively simple and may not provide visually satisfactory results in all cases. The fonts and Y axis scale capabilities are not as good as might be desired for publication quality plots. .ih SEE ALSO bplot, splot, onedspec, gtools, ranges .endhelp sptable-1.0.pre20180612/src/xonedspec/doc/specshift.hlp000066400000000000000000000043171331023215600224370ustar00rootroot00000000000000.help specshift Oct92 noao.onedspec .ih NAME specshift -- Shift dispersion coordinate systems .ih USAGE specshift spectra shift .ih PARAMETERS .ls spectra List of spectra to be modified. .le .ls shift Dispersion coordinate shift to be added to the current dispersion coordinate system. .le .ls apertures = "" List of apertures to be modified. The null list selects all apertures. A list consists of comma separated numbers and ranges of numbers. A range is specified by a hyphen. An optional step size may be given by using the 'x' followed by a number. See \fBxtools.ranges\fR for more information. This parameter is ignored for N-dimensional spatial spectra such as long slit and Fabry-Perot. .le .ls verbose = no Print a record of each aperture modified? .le .ih DESCRIPTION This task applies a shift to the dispersion coordinate system of selected spectra. The image data is not modified as with \fBimshift\fR but rather the coordinate system is shifted relative to the data. The spectra to be modified are selected by specifying a list of images and apertures. If no aperture list is specified then all apertures in the images are modified. For N-dimensional spatial spectra such as long slit and Fabry-Perot the aperture list is ignored. The specified shift is added to the existing world coordinates. For linear coordinate systems this has the effect of modifying CRVAL1, for linear "multispec" coordinate systems this modifies the dispersion coordinate of the first physical pixel, and for nonlinear "multispec" coordinate systems this modifies the shift coefficient(s). It is also possible to shift the linearized coordinate systems (but not the nonlinear coordinate systems) with \fBsapertures\fR or possibly with \fBwcsedit\fR or \fBhedit\fR if the coordinate system is stored with a global linear system. The \fIverbose\fR parameter lists the images, the apertures, the shift, and the old and new values for the first physical pixel are printed. .ih EXAMPLES 1. To add 1.23 Angstroms to the coordinates of all apertures in the image "ngc456.ms": .nf cl> specshift ngc456.ms 1.23 .fi .ih REVISIONS .ls SPECSHIFT V2.10.3 First version. .le .ih SEE ALSO sapertures, dpocor, proto.wcsreset, hedit, ranges, onedspec.package .endhelp sptable-1.0.pre20180612/src/xonedspec/doc/specwcs.hlp000066400000000000000000000671341331023215600221240ustar00rootroot00000000000000.help specwcs Mar93 noao.onedspec .ce \fBThe IRAF/NOAO Spectral World Coordinate Systems\fR .sh 1. Types of Spectral Data Spectra are stored as one, two, or three dimensional images with one axis being the dispersion axis. A pixel value is the flux over some interval of wavelength and position. The simplest example of a spectrum is a one dimensional image which has pixel values as a function of wavelength. There are two types of higher dimensional spectral image formats. One type has spatial axes for the other dimensions and the dispersion axis may be along any of the image axes. Typically this type of format is used for long slit (two dimensional) and Fabry-Perot (three dimensional) spectra. This type of spectra is referred to as \fIspatial\fR spectra and the world coordinate system (WCS) format is called \fIndspec\fR. The details of the world coordinate systems are discussed later. The second type of higher dimensional spectral image consists of multiple, independent, one dimensional spectra stored in the higher dimensions with the first image axis being the dispersion axis; i.e. each line is a spectrum. This format allows associating many spectra and related parameters in a single data object. This type of spectra is referred to as \fImultispec\fR and the there are two coordinate system formats, \fIequispec\fR and \fImultispec\fR. The \fIequispec\fR format applies to the common case where all spectra have the same linear dispersion relation. The \fImultispec\fR format applies to the general case of spectra with differing dispersion relations or non-linear dispersion functions. These multi-spectrum formats are important since maintaining large numbers of spectra as individual one dimensional images is very unwieldy for the user and inefficient for the software. Examples of multispec spectral images are spectra extracted from a multi-fiber or multi-aperture spectrograph or orders from an echelle spectrum. The second axis is some arbitrary indexing of the spectra, called \fIapertures\fR, and the third dimension is used for associated quantities. The IRAF \fBapextract\fR package may produce multiple spectra from a CCD image in successive image lines with an optimally weighted spectrum, a simple aperture sum spectrum, a background spectrum, and sigma spectrum as the associated quantities along the third dimension of the image. Many \fBonedspec\fR package tasks which are designed to operate on individual one dimensional spectra may operate on spatial spectra by summing a number of neighboring spectra across the dispersion axis. This eliminates the need to "extract" one dimensional spectra from the natural format of this type of data in order to use tasks oriented towards the display and analysis of one dimensional spectra. The dispersion axis is either given in the image header by the keyword DISPAXIS or the package \fIdispaxis\fR parameter. The summing factors across the dispersion are specified by the \fInsum\fR package parameter. See "help onedspec.package" for information on these parmaeters. One dimensional spectra, whether from multispec spatial spectra, have several associated quantities which may appear in the image header as part of the coordinate system description. The primary identification of a spectrum is an integer aperture number. This number must be unique within a single image. There is also an integer beam number used for various purposes such as discriminating object, sky, and arc spectra in multi-fiber/multi-aperture data or to identifying the order number in echelle data. For spectra summed from spatial spectra the aperture number is the central line, column, or band. In 3D images the aperture index wraps around the lowest non-dispersion axis. Since most one dimensional spectra are derived from an integration over one or more spatial axes, two additional aperture parameters record the aperture limits. These limits refer to the original pixel limits along the spatial axis. This information is primarily for record keeping but in some cases it is used for spatial interpolation during dispersion calibration. These values are set either by the \fBapextract\fR tasks or when summing neighboring vectors in spatial spectra. An important task to be aware of for manipulating spectra between image formats is \fBscopy\fR. This task allows selecting spectra from multispec images and grouping them in various ways and also "extracts" apertures from long slit and 3D spectra simply and without resort to the more general \fBapextract\fR package. .sh 2. World Coordinate Systems IRAF images have three types of coordinate systems. The pixel array coordinates of an image or image section, i.e. the lines and columns, are called the \fIlogical\fR coordinates. The logical coordinates of individual pixels change as sections of the image are used or extracted. Pixel coordinates are tied to the data, i.e. are fixed to features in the image, are called \fIphysical\fR coordinates. Initially the logical and physical coordinates are the equivalent but differ when image sections or other tasks which modify the sampling of the pixels are applied. The last type of coordinate system is called the \fIworld\fR coordinate system. Like the physical coordinates, the world coordinates are tied to the features in the image and remain unchanged when sections of the image are used or extracted. If a world coordinate system is not defined for an image, the physical coordinate system is considered to be the world coordinate system. In spectral images the world coordinate system includes dispersion coordinates such as wavelengths. In many tasks outside the spectroscopy packages, for example the \fBplot\fR, \fBtv\fR and \fBimages\fR packages, one may select the type of coordinate system to be used. To make plots and get coordinates in dispersion units for spectra with these tasks one selects the "world" system. The spectral tasks always use world coordinates. The coordinate systems are defined in the image headers using a set of reserved keywords which are set, changed, and updated by various tasks. Some of the keywords consist of simple single values following the FITS convention. Others, the WAT keywords, encode long strings of information, one for each coordinate axis and one applying to all axes, into a set of sequential keywords. The values of these keywords must then be pasted together to recover the string. The long strings contain multiple pieces called WCS \fIattributes\fR. In general the WCS keywords should be left to IRAF tasks to modify. However, if one wants modify them directly some tasks which may be used are \fBhedit\fR, \fBhfix\fR, \fBwcsedit\fR, \fBwcsreset\fR, \fBspecshift\fR, \fBdopcor\fR, and \fBsapertures\fR. The first two are useful for the simple keywords, the two "wcs" tasks are useful for the linear ndspec and equispec formats, the next two are for the common cases of shifting the coordinate zero point or applying a doppler correction, and the last one is the one to use for the more complex multispec format attributes. .sh 3. Physical Coordinate System The physical coordinate system is used by the spectral tasks when there is no dispersion coordinate information (such as before dispersion calibration), to map the physical dispersion axis to the logical dispersion axis, and in the multispec world coordinate system dispersion functions which are defined in terms of physical coordinates. The transformation between logical and physical coordinates is defined by the header keywords LTVi, LTMi_j (where i and j are axis numbers) through the vector equation .nf l = |m| * p + v .fi where l is a logical coordinate vector, p is a physical coordinate vector, v is the origin translation vector specified by the LTV keywords and |m| is the scale/rotation matrix specified by the LTM keywords. For spectra rotation terms (nondiagonal matrix elements) generally do not make sense (in fact many tasks will not work if there is a rotation) so the transformations along each axis are given by the linear equation where l is a logical coordinate vector, p is a physical coordinate vector, v is the origin translation vector specified by the LTV keywords and |m| is the scale/rotation matrix specified by the LTM keywords. For spectra a rotation term (nondiagonal matrix elements) generally does not make sense (in fact many tasks will not work if there is a rotation) so the transformations along each axis are given by the linear equation .nf li = LTMi_i * pi + LTVi. .fi If all the LTM/LTV keywords are missing they are assumed to have zero values except that the diagonal matrix terms, LTMi_i, are assumed to be 1. Note that if some of the keywords are present then a missing LTMi_i will take the value zero which generally causes an arithmetic or matrix inversion error in the IRAF tasks. The dimensional mapping between logical and physical axes is given by the keywords WCSDIM and WAXMAP01. The WCSDIM keyword gives the dimensionality of the physical and world coordinate system. There must be coordinate information for that many axes in the header (though some may be missing and take their default values). If the WCSDIM keyword is missing it is assumed to be the same as the logical image dimensionality. The syntax of the WAXMAP keyword are pairs of integer values, one for each physical axis. The first number of each pair indicates which current \fIlogical\fR axis corresponds to the original \fIphysical\fR axis (in order) or zero if that axis is missing. When the first number is zero the second number gives the offset to the element of the original axis which is missing. As an example consider a three dimensional image in which the second plane is extracted (an IRAF image section of [*,2,*]). The keyword would then appear as WAXMAP01 = '1 0 0 1 2 0'. If this keyword is missing the mapping is 1:1; i.e. the dimensionality and order of the axes are the same. The dimensional mapping is important because the dispersion axis for the nspec spatial spectra as specified by the DISPAXIS keyword or task parameter, or the axis definitions for the equispec and or multispec formats are always in terms of the original physical axes. .sh 4. Linear Spectral World Coordinate Systems When there is a linear or logarithmic relation between pixels and dispersion coordinates which is the same for all spectra the WCS header format is simple and uses the FITS convention (with the CD matrix keywords proposed by Hanisch and Wells 1992) for the logical pixel to world coordinate transformation. This format applies to one, two, and three dimensional data. The higher dimensional data may have either linear spatial axes or the equispec format where each one dimensional spectrum stored along the lines of the image has the same dispersion. The FITS image header keywords describing the spectral world coordinates are CTYPEi, CRPIXi, CRVALi, and CDi_j where i and j are axis numbers. As with the physical coordinate transformation the nondiagonal or rotation terms are not expected in the spectral WCS and may cause problems if they are not zero. The CTYPEi keywords will have the value LINEAR to identify the type of of coordinate system. The transformation between dispersion coordinate, wi, and logical pixel coordinate, li, along axis i is given by .nf wi = CRVALi + CDi_i * (li - CRPIXi) .fi If the keywords are missing then the values are assumed to be zero except for the diagonal elements of the scale/rotation matrix, the CDi_i, which are assumed to be 1. If only some of the keywords are present then any missing CDi_i keywords will take the value 0 which will cause IRAF tasks to fail with arithmetic or matrix inversion errors. If the CTYPEi keyword is missing it is assumed to be "LINEAR". If the pixel sampling is logarithmic in the dispersion coordinate, as required for radial velocity cross-correlations, the WCS coordinate values are logarithmic and wi (above) is the logarithm of the dispersion coordinate. The spectral tasks (though not other tasks) will recognize this case and automatically apply the anti-log. The two types of pixel sampling are identified by the value of the keyword DC-FLAG. A value of 0 defines a linear sampling of the dispersion and a value of 1 defines a logarithmic sampling of the dispersion. Thus, in all cases the spectral tasks will display and analyze the spectra in the same dispersion units regardless of the pixel sampling. Other keywords which may be present are DISPAXIS for 2 and 3 dimensional spatial spectra, and the WCS attributes "system", "wtype", "label", and "units". The system attribute will usually have the value "world" for spatial spectra and "equispec" for equispec spectra. The wtype attribute will have the value "linear". Currently the label will be either "Pixel" or "Wavelength" and the units will be "Angstroms" for dispersion corrected spectra. In the future there will be more generality in the units for dispersion calibrated spectra. Figure 1 shows the WCS keywords for a two dimensional long slit spectrum. The coordinate system is defined to be a generic "world" system and the wtype attributes and CTYPE keywords define the axes to be linear. The other attributes define a label and unit for the second axis, which is the dispersion axis as indicated by the DISPAXIS keyword. The LTM/LTV keywords in this example show that a subsection of the original image has been extracted with a factor of 2 block averaging along the dispersion axis. The dispersion coordinates are given in terms of the \fIlogical\fR pixel coordinates by the FITS keywords as defined previously. .ce Figure 1: Long Slit Spectrum .nf WAT0_001= 'system=world' WAT1_001= 'wtype=linear' WAT2_001= 'wtype=linear label=Wavelength units=Angstroms' WCSDIM = 2 DISPAXIS= 2 DC-FLAG = 0 CTYPE1 = 'LINEAR ' LTV1 = -10. LTM1_1 = 1. CRPIX1 = -9. CRVAL1 = 19.5743865966797 CD1_1 = 1.01503419876099 CTYPE2 = 'LINEAR ' LTV2 = -49.5 LTM2_2 = 0.5 CRPIX2 = -49. CRVAL2 = 4204.462890625 CD2_2 = 12.3337936401367 .fi Figure 2 shows the WCS keywords for a three dimensional image where each line is an independent spectrum or associated data but where all spectra have the same linear dispersion. This type of coordinate system has the system name "equispec". The ancillary information about each aperture is found in the APNUM keywords. These give the aperture number, beam number, and extraction limits. In this example the LTM/LTV keywords have their default values; i.e. the logical and physical coordinates are the same. .ce Figure 2: Equispec Spectrum .nf WAT0_001= 'system=equispec' WAT1_001= 'wtype=linear label=Wavelength units=Angstroms' WAT2_001= 'wtype=linear' WAT3_001= 'wtype=linear' WCSDIM = 3 DC-FLAG = 0 APNUM1 = '41 3 7.37 13.48' APNUM2 = '15 1 28.04 34.15' APNUM3 = '33 2 43.20 49.32' CTYPE1 = 'LINEAR ' LTM1_1 = 1. CRPIX1 = 1. CRVAL1 = 4204.463 CD1_1 = 6.16689700000001 CTYPE2 = 'LINEAR ' LTM2_2 = 1. CD2_2 = 1. CTYPE3 = 'LINEAR ' LTM3_3 = 1. CD3_3 = 1. .fi .sh 5. Multispec Spectral World Coordinate System The \fImultispec\fR spectral world coordinate system applies only to one dimensional spectra; i.e. there is no analog for the spatial type spectra. It is used either when there are multiple 1D spectra with differing dispersion functions in a single image or when the dispersion functions are nonlinear. The multispec coordinate system is always two dimensional though there may be an independent third axis. The two axes are coupled and they both have axis type "multispec". When the image is one dimensional the physical line is given by the dimensional reduction keyword WAXMAP. The second, line axis, has world coordinates of aperture number. The aperture numbers are integer values and need not be in any particular order but do need to be unique. This aspect of the WCS is not of particular user interest but applications use the inverse world to physical transformation to select a spectrum line given a specified aperture. The dispersion functions are specified by attribute strings with the identifier \fIspecN\fR where N is the \fIphysical\fR image line. The attribute strings contain a series of numeric fields. The fields are indicated symbolically as follows. .nf specN = ap beam dtype w1 dw nw z aplow aphigh [functions_i] .fi where there are zero or more functions having the following fields, .nf function_i = wt_i w0_i ftype_i [parameters] [coefficients] .fi The first nine fields in the attribute are common to all the dispersion functions. The first field of the WCS attribute is the aperture number, the second field is the beam number, and the third field is the dispersion type with the same function as DC-FLAG in the \fInspec\fR and \fIequispec\fR formats. A value of -1 indicates the coordinates are not dispersion coordinates (the spectrum is not dispersion calibrated), a value of 0 indicates linear dispersion sampling, a value of 1 indicates log-linear dispersion sampling, and a value of 2 indicates a nonlinear dispersion. The next two fields are the dispersion coordinate of the first \fIphysical\fR pixel and the average dispersion interval per \fIphysical\fR pixel. For linear and log-linear dispersion types the dispersion parameters are exact while for the nonlinear dispersion functions they are approximate. The next field is the number of valid pixels, hence it is possible to have spectra with varying lengths in the same image. In that case the image is as big as the biggest spectrum and the number of pixels selects the actual data in each image line. The next (seventh) field is a doppler factor. This doppler factor is applied to all dispersion coordinates by multiplying by 1/(1+z) (assuming wavelength dispersion units). Thus a value of 0 is no doppler correction. The last two fields are extraction aperture limits as discussed previously. Following these fields are zero or more function descriptions. For linear or log-linear dispersion coordinate systems there are no function fields. For the nonlinear dispersion systems the function fields specify a weight, a zero point offset, the type of dispersion function, and the parameters and coefficients describing it. The function type codes, ftype_i, are 1 for a chebyshev polynomial, 2 for a legendre polynomial, 3 for a cubic spline, 4 for a linear spline, 5 for a pixel coordinate array, and 6 for a sampled coordinate array. The number of fields before the next function and the number of functions are determined from the parameters of the preceding function until the end of the attribute is reached. The equation below shows how the final wavelength is computed based on the nfunc individual dispersion functions W_i(p). Note that this is completely general in that different function types may be combined. However, in practice when multiple functions are used they are generally of the same type and represent a calibration before and after the actual object observation with the weights based on the relative time difference between the calibration dispersion functions and the object observation. .nf w = sum from i=1 to nfunc {wt_i * (w0_i + W_i(p)) / (1 + z)} .fi The multispec coordinate systems define a transformation between physical pixel, p, and world coordinates, w. Generally there is an intermediate coordinate system used. The following equations define these coordinates. The first one shows the transformation between logical, l, and physical, p, coordinates based on the LTM/LTV keywords. The polynomial functions are defined in terms of a normalized coordinate, n, as shown in the second equation. The normalized coordinates run between -1 and 1 over the range of physical coordinates, pmin and pmax which are parameters of the function, upon which the coefficients were defined. The spline functions map the physical range into an index over the number of evenly divided spline pieces, npieces, which is a parameter of the function. This mapping is shown in the third and fourth equations where s is the continuous spline coordinate and j is the nearest integer less than or equal to s. .nf p = (l - LTV1) / LTM1_1 n = (p - pmiddle) / (prange / 2) = (p - (pmax+pmin)/2) / ((pmax-pmin) / 2) s = (p - pmin) / (pmax - pmin) * npieces j = int(s) .fi .sh 5.1 Linear and Log Linear Dispersion Function The linear and log-linear dispersion functions are described by a wavelength at the first \fIphysical\fR pixel and a wavelength increment per \fIphysical\fR pixel. A doppler correction may also be applied. The equations below show the two forms. Note that the coordinates returned are always wavelength even though the pixel sampling and the dispersion parameters may be log-linear. .nf w = (w1 + dw * (p - 1)) / (1 + z) w = 10 ** {(w1 + dw * (p - 1)) / (1 + z)} .fi Figure 3 shows an example from a multispec image with independent linear dispersion coordinates. This is a linearized echelle spectrum where each order (identified by the beam number) is stored as a separate image line. .ce Figure 3: Echelle Spectrum with Linear Dispersion Function .nf WAT0_001= 'system=multispec' WAT1_001= 'wtype=multispec label=Wavelength units=Angstroms' WAT2_001= 'wtype=multispec spec1 = "1 113 0 4955.44287109375 0.05... WAT2_002= '5 256 0. 23.22 31.27" spec2 = "2 112 0 4999.0810546875... WAT2_003= '58854293 256 0. 46.09 58.44" spec3 = "3 111 0 5043.505... WAT2_004= '928358078002 256 0. 69.28 77.89" WCSDIM = 2 CTYPE1 = 'MULTISPE' LTM1_1 = 1. CD1_1 = 1. CTYPE2 = 'MULTISPE' LTM2_2 = 1. CD2_2 = 1. .fi .sh 5.2 Chebyshev Polynomial Dispersion Function The parameters for the chebyshev polynomial dispersion function are the order (number of coefficients) and the normalizing range of physical coordinates, pmin and pmax, over which the function is defined and which are used to compute n. Following the parameters are the order coefficients, ci. The equation below shows how to evaluate the function using an iterative definition where x_1 = 1, x_2 = n, and x_i = 2 * n * x_{i-1} - x_{i-2}. The parameters for the chebyshev polynomial dispersion function are the order (number of coefficients) and the normalizing range of physical coordinates, pmin and pmax, over which the function is defined and which are used to compute n. Following the parameters are the order coefficients, c_i. The equation below shows how to evaluate the function using an iterative definition where x_1 = 1, x_2 = n, and x_i = 2 * n * x_{i-1} - x_{i-2}. .nf W = sum from i=1 to order {c_i * x_i} .fi .sh 5.3 Legendre Polynomial Dispersion Function The parameters for the legendre polynomial dispersion function are the order (number of coefficients) and the normalizing range of physical coordinates, pmin and pmax, over which the function is defined and which are used to compute n. Following the parameters are the order coefficients, c_i. The equation below shows how to evaluate the function using an iterative definition where x_1 = 1, x_2 = n, and x_i = ((2i-3)*n*x_{i-1}-(i-2)*x_{i-2})/(i-1). .nf W = sum from i=1 to order {c_i * x_i} .fi Figure 4 shows an example from a multispec image with independent nonlinear dispersion coordinates. This is again from an echelle spectrum. Note that the IRAF \fBechelle\fR package determines a two dimensional dispersion function, in this case a bidimensional legendre polynomial, with the independent variables being the order number and the extracted pixel coordinate. To assign and store this function in the image is simply a matter of collapsing the two dimensional dispersion function by fixing the order number and combining all the terms with the same order. .ce Figure 4: Echelle Spectrum with Legendre Polynomial Function .nf WAT0_001= 'system=multispec' WAT1_001= 'wtype=multispec label=Wavelength units=Angstroms' WAT2_001= 'wtype=multispec spec1 = "1 113 2 4955.442888635351 0.05... WAT2_002= '83 256 0. 23.22 31.27 1. 0. 2 4 1. 256. 4963.0163112090... WAT2_003= '976664 -0.3191636898579552 -0.8169352858733255" spec2 =... WAT2_004= '9.081188912082 0.06387049476832223 256 0. 46.09 58.44 1... WAT2_005= '56. 5007.401409453303 8.555959076467951 -0.176732458267... WAT2_006= '09935064388" spec3 = "3 111 2 5043.505764869474 0.07097... WAT2_007= '256 0. 69.28 77.89 1. 0. 2 4 1. 256. 5052.586239197408 ... WAT2_008= '271 -0.03173489817897474 -7.190562320405975E-4" WCSDIM = 2 CTYPE1 = 'MULTISPE' LTM1_1 = 1. CD1_1 = 1. CTYPE2 = 'MULTISPE' LTM2_2 = 1. CD2_2 = 1. .fi .sh 5.4 Linear Spline Dispersion Function The parameters for the linear spline dispersion function are the number of spline pieces, npieces, and the range of physical coordinates, pmin and pmax, over which the function is defined and which are used to compute the spline coordinate s. Following the parameters are the npieces+1 coefficients, c_i. The two coefficients used in a linear combination are selected based on the spline coordinate, where a and b are the fractions of the interval in the spline piece between the spline knots, a=(j+1)-s, b=s-j, and x_0=a, and x_1=b. .nf W = sum from i=0 to 1 {c_(i+j) * x_i} .fi .sh 5.5 Cubic Spline Dispersion Function The parameters for the cubic spline dispersion function are the number of spline pieces, npieces, and the range of physical coordinates, pmin and pmax, over which the function is defined and which are used to compute the spline coordinate s. Following the parameters are the npieces+3 coefficients, c_i. The four coefficients used are selected based on the spline coordinate. The fractions of the interval between the integer spline knots are given by a and b, a=(j+1)-s, b=s-j, and x_0 =a sup 3, x_1 =(1+3*a*(1+a*b)), x_2 =(1+3*b*(1+a*b)), and x_3 =b**3. The parameters for the cubic spline dispersion function are the number of spline pieces, npieces, and the range of physical coordinates, pmin and pmax, over which the function is defined and which are used to compute the spline coordinate s. Following the parameters are the npieces+3 coefficients, c_i. The four coefficients used are selected based on the spline coordinate. The fractions of the interval between the integer spline knots are given by a and b, a=(j+1)-s, b=s-j, and x_0=a**3, x_1=(1+3*a*(1+a*b)), x_2=(1+3*b*(1+a*b)), and x_3=b**3. .nf W = sum from i=0 to 3 {c_(i+j) * x_i} .fi .sh 5.6 Pixel Array Dispersion Function The parameters for the pixel array dispersion function consists of just the number of coordinates ncoords. Following this are the wavelengths at integer physical pixel coordinates starting with 1. To evaluate a wavelength at some physical coordinate, not necessarily an integer, a linear interpolation is used between the nearest integer physical coordinates and the desired physical coordinate where a and b are the usual fractional intervals k=int(p), a=(k+1)-p, b=p-k, and x_0=a, and x_1=b. .nf W = sum from i=0 to 1 {c_(i+j) * x_i} .fi .sh 5.7 Sampled Array Dispersion Function The parameters for the sampled array dispersion function consists of the number of coordinate pairs, ncoords, and a dummy field. Following these are the physical coordinate and wavelength pairs which are in increasing order. The nearest physical coordinates to the desired physical coordinate are located and a linear interpolation is computed between the two sample points. .endhelp sptable-1.0.pre20180612/src/xonedspec/doc/splot.hlp000066400000000000000000001353001331023215600216050ustar00rootroot00000000000000.help splot Jul95 noao.onedspec .ih NAME splot -- plot and analyze spectra .ih USAGE splot images [line [band]] .ih PARAMETERS .ls images List of images (spectra) to plot. If the image is 2D or 3D the line and band parameters are used. Successive images are plotted following each 'q' cursor command. One may use an image section to select a desired column, line, or band but the full image will be in memory and any updates to the spectrum will be part of the full image. .le .ls line, band The image line/aperture and band to plot in two or three dimensional images. For multiaperture spectra the aperture specified by the line parameter is first sought and if not found the specified image line is selected. For other two dimensional images, such as long slit spectra, the line parameter specifies a line or column. Note that if the line and band parameters are specified on the command line it will not be possible to change them interactively. .le .ls units = "" Dispersion coordinate units for the plot. If the spectra have known units, currently this is generally Angstroms, the units may be converted to other units for plotting as specified by this task parameter. If this parameter is the null string and the world coordinate system attribute "units_display" is defined then that will be used. If both this task parameters and "units_display" are not given then the spectrum dispersion units will be used. The units may also be changed interactively. See the units section of the \fBpackage\fR help for a further description and available units. .le .ls options = "auto" [auto,zero,xydraw,histogram,nosysid,wcreset,flip,overplot] A list of zero or more, possibly abbreviated, options. The options can also be toggled with colon commands. The currently defined options are "auto", "zero", "xydraw", "histogram", "nosysid", "wreset", "flip", and "overplot". Option "auto" automatically replots the graph whenever changes are made. Otherwise the graph is replotted with keystrokes 'c' or 'r'. Option "zero" makes the initial minimum y of the graphs occur at zero. Otherwise the limits are set automatically from the range of the data or the \fIymin\fR parameter. Option "xydraw" changes the 'x' draw key to use both x and y cursor values for drawing rather than the nearest pixel value for the y value. Option "histogram" plots the spectra in a histogram style rather than connecting the pixel centers. Option "nosysid" excludes the system banner from the graph title. Option "wreset" resets the graph limits to those specified by the \fIxmin, xmax, ymin, ymax\fR parameters whenever a new spectrum is plotted. The "flip" option selects that initially the spectra be plotted with decreasing wavelengths. The options may be queried and changed interactively. The "overplot" options overplots all graphs and a screen erase only occurs with the redraw key. .le .ls xmin = INDEF, xmax = INDEF, ymin = INDEF, ymax = INDEF The default limits for the initial graph. If INDEF then the limit is determined from the range of the data (autoscaling). These values can be changed interactively with 'w' window key options or the cursor commands ":/xwindow" and ":/ywindow" (see \fBgtools\fR). .le .ls save_file = "splot.log" The file to contain any results generated by the equivalent width or deblending functions. Results are added to this file until the file is deleted. If the filename is null (""), then no results are saved. .le .ls graphics = "stdgraph" Output graphics device: one of "stdgraph", "stdplot", "stdvdm", or device name. .le .ls cursor = "" Graphics cursor input. When null the standard cursor is used otherwise the specified file is used. .le The following parameters are used for error estimates in the 'd', 'k', and 'e' key measurements. See the ERROR ESTIMATES section for a discussion of the error estimates. .ls nerrsample = 0 Number of samples for the error computation. A value less than 10 turns off the error computation. A value of ~10 does a rough error analysis, a value of ~50 does a reasonable error analysis, and a value >100 does a detailed error analysis. The larger this value the longer the analysis takes. .le .ls sigma0 = INDEF, invgain = INDEF The pixel sigmas are modeled by the formula: .nf sigma**2 = sigma0**2 + invgain * I .fi where I is the pixel value and "**2" means the square of the quantity. If either parameter is specified as INDEF or with a value less than zero then no sigma estimates are made and so no error estimates for the measured parameters are made. .le The following parameters are for the interactive curve fitting function entered with the 't' key. This function is usually used for continuum fitting. The values of these parameters are updated during the fitting. See \fBicfit\fR for additional details on interactive curve fitting. .ls function = "spline3" Function to be fit to the spectra. The functions are "legendre" (legendre polynomial), "chebyshev" (chebyshev polynomial), "spline1" (linear spline), and "spline3" (cubic spline). The functions may be abbreviated. .le .ls order = 1 The order of the polynomials or the number of spline pieces. .le .ls low_reject = 2., high_reject = 4. Rejection limits below and above the fit in units of the residual sigma. Unequal limits are used to reject spectral lines on one side of the continuum during continuum fitting. .le .ls niterate = 10 Number of rejection iterations. .le .ls grow = 1. When a pixel is rejected, pixels within this distance of the rejected pixel are also rejected. .le .ls markrej = yes Mark rejected points? If there are many rejected points it might be desired to not mark rejected points. .le The following parameters are used to overplot standard star fluxes with the 'y' key. See \fBstandard\fR for more information about these parameters. .ls star_name Query parameter for the standard star fluxes to be overplotted. Unrecognized names or a "?" will print a list of the available stars in the specified calibration directory. .le .ls mag The magnitude of the observed star in the band given by the \fImagband\fR parameter. If the magnitude is not in the same band as the blackbody calibration file then the magnitude may be converted to the calibration band provided the "params.dat" file containing relative magnitudes between the two bands is in the calibration directory .le .ls magband The standard band name for the input magnitude. This should generally be the same band as the blackbody calibration file. If it is not the magnitude will be converted to the calibration band. .le .ls teff The effective temperature (deg K) or the spectral type of the star being calibrated. If a spectral type is specified a "params.dat" file must exist in the calibration directory. The spectral types are specified in the same form as in the "params.dat" file. For the standard blackbody calibration directory the spectral types are specified as A0I, A0III, or A0V, where A can be any letter OBAFGKM, the single digit subclass is between 0 and 9, and the luminousity class is one of I, III, or V. If no luminousity class is given it defaults to dwarf. .le .ls caldir = ")_.caldir" The standard star calibration directory. The default value redirects the value to the parameter of the same name in the package parameters. .le .ls fnuzero = 3.68e-20 The absolute flux per unit frequency at a magnitude of zero used to to convert the calibration magnitudes to absolute flux. .le The following parameters are used for queries in response to particular keystrokes. .ls next_image In response to 'g' (get next image) this parameter specifies the image. .le .ls new_image In response to 'i' (write current spectrum) this parameter specifies the name of a new image to create or existing image to overwrite. .le .ls overwrite = no Overwrite an existing output image? If set to yes it is possible to write back into the input spectrum or to some other existing image. Otherwise the user is queried again for a new image name. .le .ls spec2 When adding, subtracting, multiplying, or dividing by a second spectrum ('+', '-', '*', '/' keys in the 'f' mode) this parameter is used to get the name of the second spectrum. .le .ls constant When adding or multiplying by a constant ('p' or 'm' keys in the 'f' mode) the parameter is used to get the constant. .le .ls wavelength This parameter is used to get a dispersion coordinate value during deblending or when changing the dispersion coordinates with 'u'. .le .ls linelist During deblending this parameter is used to get a list of line positions, peak values, profile types, and widths. .le .ls wstart, wend, dw In response to 'p' (convert to a linear wavelength scale) these parameters specify the starting wavelength, ending wavelength, and wavelength per pixel. .le .ls boxsize In response to 's' (smooth) this parameter specifies the box size in pixels to be used for the boxcar smooth. The value must be odd. If an even value is specified the next larger odd value is actually used. .le .ih DESCRIPTION \fBSplot\fR provides an interactive facility to display and analyze spectra. See also \fBbplot\fR for a version of this task useful for making many plots noninteractively. Each spectrum in the image list is displayed successively. To quit the current image and go on to the next the 'q' cursor command is used. If an image is two-dimensional, such as with multiple aperture or long slit spectra, the aperture or image column/line to be displayed is needed. If the image is three-dimensional, such as with the extra information produced by \fBapextract\fR, the band is needed. These parameters are queried unless specified on the command line. If given on the command line it will not be possible to change them interactively. The plots are made on the specfied graphics device which is usually to the graphics terminal. The initial plot limits are set with the parameters \fIxmin, xmax, ymin\fR, and \fIymax\fR. If a limit is INDEF then that limit is determined from the range of the data. The "zero" option may also be set in the \fIoptions\fR parameter to set the lower intensity limit to zero. Other options that may be set to control the initial plot are to exclude the system identification banner, and to select a histogram line type instead of connecting the pixel centers. The dispersion units used in the plot are set by the \fIunits\fR parameter. This allows converting to units other than those in which the dispersion coordinates are defined in the spectra. The \fIoption\fR parameter, mentioned in the previous paragraph, is a a list of zero or more options. As previously noted, some of the options control the initial appearance of the plots. The "auto" option determines how frequently plots are redrawn. For slow terminals or via modems one might wish to minimize the redrawing. The default, however, is to redraw when changes are made. The "xydraw" parameter is specific to the 'x' key. After the initial graph is made an interactive cursor loop is entered. The \fIcursor\fR parameter may be reset to read from a file but generally the graphics device cursor is read. The cursor loop takes single keystroke commands and typed in commands begun with a colon, called colon commands. These commands are described below and a summary of the commands may be produced interactively with the '?' key or a scrolling help on the status line with the '/' key. Modifications to the spectra being analyzed may be saved using the 'i' key in a new, the current, or other existing spectra. A new image is created as a new copy of the current spectrum and so if the current spectrum is part of a multiple spectrum image (including a long slit spectrum) the other spectra are copied. If other spectra in the same image are then modified and saved use the overwrite option to replace then in the new output image. If the output spectrum already exists then the \fIoverwrite\fR flag must be set to allow modifying the data. This includes the case when the output spectrum is the same as the input spectrum. The only odd case here is when the input spectrum is one dimensional and the output spectrum is two dimensional. In this case the user is queried for the line to be written. The other form of output, apart from that produced on the terminal, are measurements of equivalent widths, and other analysis functions. This information will be recorded in the \fIsave_file\fR if specified. The following keystrokes are active in addition to the normal IRAF cursor facilities (available with ":.help"): .ls ? Page help information. .le .ls / Cycle through short status line help. .le .ls The space bar prints the cursor position and value of the nearest pixel. .le .ls a Expand and autoscale to the data range between two cursor positions. See also 'w', and 'z'. Selecting no range, that is the two cursor positions the same, produces an autoscale of the whole spectrum. .le .ls b Set the plot base level to zero rather than autoscaling. .le .ls c Clear all windowing and redraw the full current spectrum. This redraws the spectrum and cancels any effects of the 'a', 'z', and 'w' keys. The 'r' key is used to redraw the spectrum with the current windowing. .le .ls d Mark two continuum points and fit (deblend) multiple line profiles. The center, continuum at the center, core intensity, integrated flux, equivalent width, FWHMs for each profile are printed and saved in the log file. See 'k' for fitting a single profile and '-' to subtract the fitted profiles. .le .ls e Measure equivalent width by marking two continuum points around the line to be measured. The linear continuum is subtracted and the flux is determined by simply summing the pixels with partial pixels at the ends. Returned values are the line center, continuum at the region center, core intensity, flux above or below the continuum, and the equivalent width. .le .ls f Enter arithmetic function mode. This mode allows arithmetic functions to be applied to the spectrum. The pixel values are modified according to the function request and may be saved as a new spectrum with the 'i' command. Operations with a second spectrum are done in wavelength space and the second spectrum is automatically resampled if necessary. If one spectrum is longer than the other, only the smaller number of pixels are affected. To exit this mode type 'q'. The following keystrokes are available in the function mode. Binary operations with a constant or a second spectrum produce a query for the constant value or spectrum name. .ls a Absolute value .le .ls d Power of base 10 (inverse log base 10) .le .ls e Power of base e (inverse log base e) .le .ls i Inverse/reciprocal (values equal to zero are set to 0.0 in the inverse) .le .ls l Log base 10 (values less than or equal to 0.0 are set to -0.5) .le .ls m Multiply by a constant (constant is queried) .le .ls n Log base e (values less than or equal to 0.0 are set to -0.5) .le .ls p Add by a constant (constant is queried) .le .ls q Quit Function mode .le .ls s Square root (values less than 0.0 are set to 0.0) .le .ls + Add another spectrum .le .ls -3 - Subtract another spectrum .le .ls * Multiply by another spectrum .le .ls / Divide by another spectrum .le .le .ls g Get another spectrum. The current spectrum is replaced by the new spectrum. The aperture/line and band are queried is necessary. .le .ls h Measure equivalent widths assuming a gaussian profile with the width measured at a specified point. Note that this is not a gaussian fit (see 'k' to fit a gaussian)! The gaussian profile determined here may be subtracted with the '-' key. A second cursor key is requested with one of the following values: .ls a Mark the continuum level at the line center and use the LEFT half width at the half flux point. .le .ls b Mark the continuum level at the line center and use the RIGHT half width at the half flux point. .le .ls c Mark the continuum level at the line center and use the FULL width at the half flux point. .le .ls l Mark a flux level at the line center relative to a normalized continuum and use the LEFT width at that flux point. .le .ls r Mark a flux level at the line center relative to a normalized continuum and use the RIGHT width at that flux point. .le .ls k Mark a flux level at the line center relative to a normalized continuum and use the FULL width at that flux point. .le .le .ls i Write the current spectrum out to a new or existing image. The image name is queried and overwriting must be confirmed. .le .ls j Set the value of the nearest pixel to the x cursor to the y cursor position. .le .ls k + (g, l or v) Mark two continuum points and fit a single line profile. The second key selects the type of profile: g for gaussian, l for lorentzian, and v for voigt. Any other second key defaults to gaussian. The center, continuum at the center, core intensity, integrated flux, equivalent width, and FWHMs are printed and saved in the log file. See 'd' for fitting multiple profiles and '-' to subtract the fit. .le .ls l Convert to flux per unit wavelength (f-lambda). The spectrum is assumed to be flux calibrated in flux per unit frequency (f-nu). See also 'n'. .le .ls m Compute the mean, RMS, and signal-to-noise over a region marked with two x cursor positions. .le .ls n Convert to flux per unit frequency (f-nu). The spectrum is assumed to be flux calibrated in flux per unit wavelength (f-lambda). See also 'l'. .le .ls o Set overplot flag. The next plot will overplot the current plot. Normally this key is immediately followed by one of 'g', '#', '%', '(', or ')'. The ":overplot" colon command and overplot parameter option may be used to set overplotting to be permanently on. .le .ls p Define a linear wavelength scale. The user is queried for a starting wavelength and an ending wavelength. If either (though not both) are specified as INDEF a dispersion is queried for and used to compute an endpoint. A wavelength scale set this way will be used for other spectra which are not dispersion corrected. .le .ls q Quit and go on to next input spectrum. After the last spectrum exit. .le .ls r Redraw the spectrum with the current windowing. To redraw the full spectrum and cancel any windowing use the 'c' key. .le .ls s Smooth via a boxcar. The user is prompted for the box size. .le .ls t Fit a function to the spectrum using the ICFIT mode. Typically interative rejection is used to exclude spectra lines from the fit in order to fit a smooth continuum. A second keystroke selects what to do with the fit. .ls / Normalize by the fit. When fitting the continuum this continuum normalizes the spectrum. .le .ls -3 - Subtract the fit. When fitting the continuum this continuum subtracts the spectrum. .le .ls f Replace the spectrum by the fit. .le .ls c Clean the spectrum by replacing any rejected points by the fit. .le .ls n Do the fitting but leave the spectrum unchanged (a NOP on the spectrum). This is useful to play with the spectrum using the capabilities of ICFIT. .le .ls q Quit and don't do any fitting. The spectrum is not modified. .le .le .ls u Adjust the user coordinate scale. There are three options, 'd' mark a position with the cursor and doppler shift it to a specified value, 'z' mark a position with the cursor and zeropoint shift it to a specified value, or 'l' mark two postions and enter two values to define a linear (in wavelength) dispersion scale. The units used for input are those currently displayed. A wavelength scale set this way will be used for other spectra which are not dispersion corrected. .le .ls v Toggle to a velocity scale using the position of the cursor as the velocity origin and back. .le .ls w Window the graph. For further help type '?' to the "window:" prompt or see help under \fBgtools\fR. To cancel the windowing use 'a'. .le .ls x "Etch-a-sketch" mode. Straight lines are drawn between successive positions of the cursor. Requires 2 cursor settings in x. The nearest pixels are used as the endpoints. To draw a line between arbitrary y values first use 'j' to adjust the endpoints or set the "xydraw" option. .le .ls y Overplot standard star values from a calibration file. .le .ls z Zoom the graph by a factor of 2 in x. .le .ls ( In multiaperture spectra go to the spectrum in the preceding image line. If there is only one line go to the spectrum in the preceding band. .le .ls ) In multiaperture spectra go to the spectrum in the following image line. If there is only one line go to the spectrum in the following band. .le .ls # Get a different line in multiaperture spectra or two dimensional images. The aperture/line/column is queried. .le .ls % Get a different band in a three dimensional image. .le .ls $ Switch between physical pixel coordinates and world (dispersion) coordinates. .le .ls -4 - Subtract the fits generated by the 'd' (deblend), 'k' (single profile fit), and 'h' (gaussian of specified width). The region to be subtracted is marked with two cursor positions. .le .ls -4 ',' Shift the graph window to the left. .le .ls . Shift the graph window to the right. .le .ls I Force a fatal error interupt to leave the graph. This is used because the normal interupt character is ignored in graphics mode. .le .ls :show Page the full output of the previous deblend and equivalent width measurments. .le .ls :log Enable logging of measurements to the file specified by the parameter \fIsave_file\fR. When the program is first entered logging is enabled (provided a log file is specified). There is no way to change the file name from within the program. .le .ls :nolog Disable logging of measurements. .le .ls :dispaxis Show or change dispersion axis for 2D images. .le .ls :nsum Show or change summing for 2D images. .le .ls :units Change the coordinate units in the plot. See below for more information. .le .ls :# Add comment to logfile. .le .ls Labels: .ls :label