diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/site/.buildinfo b/site/.buildinfo new file mode 100644 index 0000000..c9e313a --- /dev/null +++ b/site/.buildinfo @@ -0,0 +1,4 @@ +# Sphinx build info version 1 +# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. +config: 94393d3ee106930aa47bbdc18512a964 +tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/site/_downloads/3c273.fits b/site/_downloads/3c273.fits new file mode 100644 index 0000000..9c8c680 --- /dev/null +++ b/site/_downloads/3c273.fits @@ -0,0 +1,33 @@ +SIMPLE = T / Fits standard BITPIX = 16 / Bits per pixel NAXIS = 0 / Number of axes EXTEND = T / There may be standard extensions ORIGIN = 'NOAO-IRAF FITS Image Kernel July 2003' / FITS file originator IRAF-TLM= '16:23:21 (13/12/2009)' / Time of last modification NEXTEND = 1 / number of extensions in file DATE = '2009-12-14T00:23:09' / date this file was written (yyyy-mm-dd) FILENAME= 'o44301010_prev.fits' / name of file FILETYPE= 'SCI ' / type of data found in data file TELESCOP= 'HST' / telescope used to acquire data INSTRUME= 'STIS ' / identifier for instrument used to acquire data EQUINOX = 2000.0 / equinox of celestial coord. system / DATA DESCRIPTION KEYWORDS ROOTNAME= 'o44301010 ' / rootname of the observation setPRIMESI = 'STIS ' / instrument designated as prime / TARGET INFORMATION TARGNAME= '3C273 ' / proposer's target name RA_TARG = 1.872780000000E+02 / right ascension of the target (deg) (J2000) DEC_TARG= 2.052250000000E+00 / declination of the target (deg) (J2000) / PROPOSAL INFORMATION PROPOSID= 7568 / PEP proposal identifier LINENUM = '01.002 ' / proposal logsheet line number PR_INV_L= 'Hutchings ' / last name of principal investigatorPR_INV_F= 'John ' / first name of principal investigator PR_INV_M= ' ' / middle name / initial of principal investigat / SUMMARY EXPOSURE INFORMATION TDATEOBS= '1999-01-31' / UT date of start of first exposure in file TTIMEOBS= '20:04:29' / UT start time of first exposure in file TEXPSTRT= 5.120983645734E+04 / start time (MJD) of 1st exposure in file TEXPEND = 5.120984823984E+04 / end time (MJD) of last exposure in the file TEXPTIME= 9.7400000E+02 / total exposure time (seconds) QUALCOM1= 'NO APPARENT PROBLEMS 'QUALCOM2= ' 'QUALCOM3= ' 'QUALITY = 'OK ' / TARGET OFFSETS (POSTARGS) POSTARG1= 0.000000 / POSTARG in axis 1 direction POSTARG2= 0.000000 / POSTARG in axis 2 direction / DIAGNOSTIC KEYWORDS OVERFLOW= 0 / Number of science data overflows OPUS_VER= 'OPUS 2009_3 ' / OPUS software system version number CAL_VER = '2.27 (12-December-2008)' / CALSTIS code version PROCTIME= 5.517648864583E+04 / Pipeline processing time (MJD) / SCIENCE INSTRUMENT CONFIGURATION CFSTATUS= 'SUPPORTED ' / configuration status (support., avail., eng.) OBSTYPE = 'SPECTROSCOPIC ' / observation type - imaging or spectroscopic OBSMODE = 'ACCUM ' / operating mode PHOTMODE= 'STIS 52X2 A2D1 G430L CCD 4300' / observation con SCLAMP = 'NONE ' / lamp status, NONE or name of lamp which is on LAMPSET = '0.0 ' / spectral cal lamp current value (milliamps) NRPTEXP = 1 / number of repeat exposures in set: default 1 SUBARRAY= F / data from a subarray (T) or full frame (F) DETECTOR= 'CCD ' / detector in use: NUV-MAMA, FUV-MAMA, or CCD OPT_ELEM= 'G430L ' / optical element in use APERTURE= '52X2 ' / aperture name PROPAPER= '52X2 ' / proposed aperture name FILTER = 'Clear ' / filter in use APER_FOV= '52x2 ' / aperture field of view CENWAVE = 4300 / central wavelength of spectrum CRSPLIT = 2 / number of cosmic ray split exposures / ENGINEERING PARAMETERS CCDAMP = 'D ' / CCD amplifier read out (A,B,C,D) CCDGAIN = 1 / commanded gain of CCD CCDOFFST= 3 / commanded CCD bias offset / READOUT DEFINITION PARAMETERS CENTERA1= 532 / subarray axis1 center pt in unbinned dect. pix CENTERA2= 523 / subarray axis2 center pt in unbinned dect. pix SIZAXIS1= 1062 / subarray axis1 size in unbinned detector pixelsSIZAXIS2= 1044 / subarray axis2 size in unbinned detector pixelsBINAXIS1= 1 / axis1 data bin size in unbinned detector pixelsBINAXIS2= 1 / axis2 data bin size in unbinned detector pixels / CALIBRATION SWITCHES: PERFORM, OMIT, COMPLETE DQICORR = 'COMPLETE' / data quality initialization ATODCORR= 'OMIT ' / correct for A to D conversion errors BLEVCORR= 'COMPLETE' / subtract bias level computed from overscan img BIASCORR= 'COMPLETE' / Subtract bias image CRCORR = 'COMPLETE' / combine observations to reject cosmic rays RPTCORR = 'OMIT ' / add individual repeat observations EXPSCORR= 'PERFORM ' / process individual observations after cr-rejectDARKCORR= 'COMPLETE' / Subtract dark image FLATCORR= 'COMPLETE' / flat field data SHADCORR= 'OMIT ' / apply shutter shading correction STATFLAG= T / Calculate statistics? WAVECORR= 'COMPLETE' / use wavecal to adjust wavelength zeropoint X1DCORR = 'COMPLETE' / Perform 1-D spectral extraction BACKCORR= 'COMPLETE' / subtract background (sky and interorder) HELCORR = 'COMPLETE' / convert to heliocenttric wavelengths DISPCORR= 'COMPLETE' / apply 2-dimensional dispersion solutions FLUXCORR= 'COMPLETE' / convert to absolute flux units CTECORR = 'COMPLETE' / correction for CCD charge transfer inefficiencyX2DCORR = 'PERFORM ' / rectify 2-D spectral image / CALIBRATION REFERENCE FILES BPIXTAB = 'oref$h1v11475o_bpx.fits' / bad pixel table DARKFILE= 'oref$j6m14245o_drk.fits' / dark image file name PFLTFILE= 'oref$k2910262o_pfl.fits' / pixel to pixel flat field file name DFLTFILE= 'N/A ' / delta flat field file name LFLTFILE= 'oref$pcc2026jo_lfl.fits' / low order flat PHOTTAB = 'oref$p822207no_pht.fits' / Photometric throughput table APERTAB = 'oref$n7p1032ao_apt.fits' / relative aperture throughput table CCDTAB = 'oref$q4a1311fo_ccd.fits' / CCD calibration parameters ATODTAB = 'N/A ' / analog to digital correction file BIASFILE= 'oref$j6m1312ko_bia.fits' / bias image file name SHADFILE= 'N/A ' / shutter shading correction file CRREJTAB= 'oref$j3m1403io_crr.fits' / cosmic ray rejection parameters WAVECAL = 'o44301010_wav.fits ' / wavecal image file name APDESTAB= 'oref$obm1723ro_apd.fits' / aperture description table SPTRCTAB= 'oref$qa31608go_1dt.fits' / spectrum trace table DISPTAB = 'oref$l2j0137to_dsp.fits' / dispersion coefficient table INANGTAB= 'oref$h5s11397o_iac.fits' / incidence angle correction table LAMPTAB = 'oref$l421050oo_lmp.fits' / template calibration lamp spectra table SDCTAB = 'oref$obm1723lo_sdc.fits' / 2-D spatial distortion correction table XTRACTAB= 'oref$n7p1031qo_1dx.fits' / parameters for 1-D spectral extraction tabPCTAB = 'oref$q541740no_pct.fits' / Photometry correction table WCPTAB = 'oref$lag1815lo_wcp.fits' / wavecal parameters table TDSTAB = 'oref$t9a1003so_tds.fits' / time-dependent sensitivity algorithm used GACTAB = 'oref$p9r19203o_gac.fits' / grating-aperture correction table FRNGFLAT= 'N/A ' / IR fringe flat exposure / COSMIC RAY REJECTION ALGORITHM PARAMETERS MEANEXP = 4.8700000E+02 / reference exposure time for parameters SCALENSE= 0.0000000E+00 / multiplicative scale factor applied to noise INITGUES= 'minimum ' / initial guess method (MIN or MED) SKYSUB = 'none ' / sky value subtracted (MODE or NONE) CRSIGMAS= '4.0 ' / statistical rejection criteria CRRADIUS= 1.5000000E+00 / rejection propagation radius (pixels) CRTHRESH= 7.5000000E-01 / rejection propagation threshold BADINPDQ= 0 / data quality flag bits to reject REJ_RATE= 5.6719711E+01 / rate at which pixels are affected by cosmic rayCRMASK = T / flag CR-rejected pixels in input files (T/F) / CALIBRATED ENGINEERING PARAMETERS ATODGAIN= 1.0000000E+00 / calibrated CCD amplifier gain value READNSE = 4.0000000E+00 / calibrated CCD read noise value / TARGET ACQUISITION DATASET IDENTIFIERS ACQNAME = 'o44301UPT ' / rootname of acquisition exposure ACQTYPE = ' ' / type of acquisition PEAKNAM1= ' ' / rootname of 1st peakup exposure PEAKNAM2= ' ' / rootname of 2nd peakup exposure / OTFR KEYWORDS T_SGSTAR= 'F ' / OMS calculated guide star control / PATTERN KEYWORDS PATTERN1= 'NONE ' / primary pattern type P1_SHAPE= ' ' / primary pattern shape P1_PURPS= ' ' / primary pattern purpose P1_NPTS = 0 / number of points in primary pattern P1_PSPAC= 0.000000 / point spacing for primary pattern (arc-sec) P1_LSPAC= 0.000000 / line spacing for primary pattern (arc-sec) P1_ANGLE= 0.000000 / angle between sides of parallelogram patt (deg)P1_FRAME= ' ' / coordinate frame of primary pattern P1_ORINT= 0.000000 / orientation of pattern to coordinate frame (degP1_CENTR= ' ' / center pattern relative to pointing (yes/no) / ARCHIVE SEARCH KEYWORDS BANDWID = 2800.0 / bandwidth of the data SPECRES = 800.0 / approx. resolving power at central wavelength CENTRWV = 4300.0 / central wavelength of the data MINWAVE = 2900.0 / minimum wavelength in spectrum MAXWAVE = 5700.0 / maximum wavelength in spectrum PLATESC = 0.05078 / plate scale (arcsec/pixel) / PAPER PRODUCT SUPPORT KEYWORDS PROPTTL1= 'Spectroscopy of 3C radio galaxy optical jets 'OBSET_ID= '01' / observation set id TARDESCR= 'GALAXY;RADIO GALAXY 'MTFLAG = ' ' / moving target flag; T if it is a moving target PARALLAX= 0.000000000000E+00 / target parallax from proposal MU_RA = 0.000000000000E+00 / target proper motion from proposal (degrees RA)MU_DEC = 0.000000000000E+00 / target proper motion from proposal (deg. DEC) MU_EPOCH= 'J2000.0' / epoch of proper motion from proposal / ASSOCIATION KEYWORDS ASN_ID = 'O44301010 ' / unique identifier assigned to association ASN_TAB = 'o44301010_asn.fits ' / name of the association table / POINTING INFORMATION PA_V3 = 88.002312 / position angle of V3-axis of HST (deg) HISTORY CCD parameters table ... HISTORY reference table oref$q4a1311fo_ccd.fits HISTORY INFLIGHT 01/05/1999 01/05/1999 HISTORY Proposal 8057, by I. Dashevsky & P. Goudfrooij HISTORY DQICORR complete ... HISTORY values checked for saturation HISTORY DQ array initialized ... HISTORY reference table oref$h1v11475o_bpx.fits HISTORY BLEVCORR complete; bias level from overscan was subtracted. HISTORY BLEVCORR includes correction for drift along lines. HISTORY Uncertainty array initialized. HISTORY BIASCORR complete ... HISTORY reference image oref$j6m1312ko_bia.fits HISTORY INFLIGHT 01/02/1999 06/02/1999 HISTORY Superbias created from proposals 7600/7601/7926/7948/7949 SKYSUM = 0.0000000E+00 / Total sky level (DN) HISTORY CCD parameters table ... HISTORY reference table oref$q4a1311fo_ccd.fits HISTORY INFLIGHT 01/05/1999 01/05/1999 HISTORY Proposal 8057, by I. Dashevsky & P. Goudfrooij HISTORY DARKCORR complete ... HISTORY reference image oref$j6m14245o_drk.fits HISTORY INFLIGHT 01/02/1999 06/02/1999 HISTORY Reference superdark created from proposal 7276 HISTORY FLATCORR complete ... HISTORY reference image oref$k2910262o_pfl.fits HISTORY INFLIGHT 14/04/1997 27/12/1998 HISTORY ON-ORBIT CCD P-FLAT HISTORY reference image oref$pcc2026jo_lfl.fits HISTORY INFLIGHT 27/05/1997 03/08/2004 HISTORY CCD G430L Low-Order Flat HISTORY WAVECORR complete ... HISTORY wavecal = o44301010_w2d_tmp.fits HISTORY X1DCORR performed ... HISTORY reference table oref$qa31608go_1dt.fits HISTORY reference table oref$n7p1031qo_1dx.fits HISTORY BACKCORR performed ... HISTORY reference table oref$n7p1031qo_1dx.fits HISTORY DISPCORR performed ... HISTORY reference table oref$l2j0137to_dsp.fits HISTORY reference table oref$h5s11397o_iac.fits HISTORY reference table oref$obm1723ro_apd.fits HISTORY HELCORR performed (no reference file needed) HISTORY FLUXCORR performed ... HISTORY reference table oref$p822207no_pht.fits HISTORY reference table oref$q541740no_pct.fits HISTORY reference table oref$n7p1032ao_apt.fits HISTORY reference table oref$p9r19203o_gac.fits HISTORY reference table oref$q4a1311fo_ccd.fits HISTORY reference table oref$t9a1003so_tds.fits XTRACALG= 'UNWEIGHTED' / extraction algorithm PMODE = 202 / Preview mode (STIS/SPECTRUM) HISTORY Heliocentric correction = -24.6136 km/s COMMENT CADC: Calibrated file: o44301010_sx1.fits COMMENT CADC: Preview mode: SPECTRUM COMMENT CADC: 1D: txtable o44301010_sx1.fits[1][c:wavelength,flux] COMMENT CADC: 1D: Creating the output table COMMENT CADC: 1D: preview_mode_1d COMMENT Preview generated by CADC/NRC and ST-ECF END XTENSION= 'BINTABLE' / binary table extension BITPIX = 8 / 8-bit bytes NAXIS = 2 / 2-dimensional binary table NAXIS1 = 12 / width of table in bytes NAXIS2 = 1024 PCOUNT = 0 / size of special data area GCOUNT = 1 / one data group (required keyword) TFIELDS = 2 TTYPE1 = 'WAVELENGTH' / label for field 1 TFORM1 = '1D ' / data format of field: 8-byte DOUBLE TUNIT1 = 'Angstroms' / physical unit of field TTYPE2 = 'FLUX ' / label for field 2 TFORM2 = '1E ' / data format of field: 4-byte REAL TUNIT2 = 'erg/s/cm**2/Angstrom' / physical unit of field TDISP1 = 'G25.16 ' / display format TDISP2 = 'G15.7 ' / display format ORIGIN = 'NOAO-IRAF FITS Image Kernel July 2003' / FITS file originator EXTNAME = 'SCI ' / Extension name EXTVER = 1 / Extension version IRAF-TLM= '16:23:10 (13/12/2009)' / Time of last modification DATE = '2009-12-14T00:23:06' / Date FITS file was generated INHERIT = T / inherit the primary header EXPNAME = 'o44301urq' / exposure identifier ASN_MTYP= 'CRSPLIT ' / Role of the Member in the Association WCSAXES = 2 / number of World Coordinate System axes LTV1 = 0. / offset in X to subsection start LTV2 = 0. / offset in Y to subsection start LTM1_1 = 1. / reciprocal of sampling rate in X LTM2_2 = 1. / reciprocal of sampling rate in Y RA_APER = 187.278 / RA of aperture reference position DEC_APER= 2.05225 / Declination of aperture reference position PA_APER = -137.0434612793 / Position Angle of reference aperture center (deDISPAXIS= 1 / dispersion axis; 1 = axis 1, 2 = axis 2, none SHIFTA1 = 1.512067584757 / Spectrum shift in AXIS1 calculated from WAVECALSHIFTA2 = -2.165335580194 / Spectrum shift in AXIS2 calculated from WAVECALORIENTAT= -136.944 / position angle of image y axis (deg. e of n) SUNANGLE= 125.418587 / angle between sun and V1 axis MOONANGL= 52.634357 / angle between moon and V1 axis SUN_ALT = -21.143963 / altitude of the sun above Earth's limb FGSLOCK = 'FINE ' / commanded FGS lock (FINE,COARSE,GYROS,UNKNOWN) GYROMODE= '3 ' / number of gyros scheduled, T=3+OBAD REFFRAME= 'GSC1 ' / guide star catalog version DATE-OBS= '1999-01-31' / UT date of start of observation (yyyy-mm-dd) TIME-OBS= '20:04:29' / UT time of start of observation (hh:mm:ss) EXPSTART= 51209.83645734 / exposure start time (Modified Julian Date) EXPEND = 51209.84823984 / exposure end time (Modified Julian Date) EXPTIME = 974. / exposure duration (seconds)--calculated EXPFLAG = 'NORMAL ' / Exposure interruption indicator V_HELIO = -24.6136100104913 / heliocentric radial velocity (km/s) PATTSTEP= 0 / position number of this point in the pattern NCOMBINE= 2 / number of image sets combined during CR rejectiFILLCNT = 0 / number of segments containing fill ERRCNT = 0 / number of segments containing errors PODPSFF = F / podps fill present (T/F) STDCFFF = F / science telemetry fill data present (T=1/F=0) STDCFFP = '0x5569 ' / science telemetry fill pattern (hex) OSWABSP = 3240288 / Slit Wheel Absolute position OMSCYL1P= 325 / Mode select cylinder 1 position OMSCYL3P= 5461 / Mode select cylinder 3 position OMSCYL4P= 3042 / Mode select cylinder 4 position OCBABAV = 26.7024 / (V) CEB A&B Amp Bias OCBCDAV = 26.6827 / (V) CEB C&D amp bias OCBLGCDV= -3.38383 / (V) CEB last gate C&D OCBSWALV= -5.99128 / (V) CB summing well A Lo OCBRCDLV= 0.0438864 / (V) CB reset gate CD Lo OCCDHTAV= -1. / average CCD housing temperature (degC) NGOODPIX= 973108 / number of good pixels SDQFLAGS= 31743 / serious data quality flags GOODMIN = -109.36422 / minimum value of good pixels GOODMAX = 45143.605 / maximum value of good pixels GOODMEAN= 75.442238 / mean value of good pixels SNRMIN = -14.568101 / minimum signal to noise of good pixels SNRMAX = 212.13705 / maximum signal to noise of good pixels SNRMEAN = 1.2333121 / mean value of signal to noise of good pixels SOFTERRS= 0 / number of soft error pixels (DQF=1) MEANDARK= 2.690012 / average of the dark values subtracted MEANBLEV= 1327.6223 / average of all bias levels subtracted SPORDER = 1 / Spectral order DIFF2PT = 1. / Diffuse to point source conversion factor CONT2EML= 0. / Intensity conversion: continuum -> emission SCALE_A1= 0. / Size of one pixel (arcsec) along dispersion axiOMEGAPIX= 0. / Solid angle (arcsec**2) subtended by one pixel CRSCROFF= 504.869294517548 / offset from 1-D extraction cross-corr. ORIG_ROW= 1 TCTOTAL = 2 END @rr)dS@tc)@[w)J1@n)@J)@i+T)@x=)u@cNj+)/@h)(@^p):Q@ )@Y& )@և)v5@S') @QE))ˤ@NHJ1):v@()8@I)@ կ)a@D3R)ų@B=)h~@?{)@I)}@%:~/)$i@*-)+@05)@5? )&@;0R)SG@@D;?)d@F+Nd)@Ku')M<@Q')/@Vp )!@\"W)@aކ):@g)@lT)@rt)@w + )@}nN)#@')YJ@ )@]l)x@ fE<)sN@+q~)@)i)(@%)l@d>)@`*|)t +@40)@| C)@)5h@wo)|@1")@sw) $@n)@oXK%C)@D)l@k3ر)y@%^)@gO))@O)@c )@ )@_ 3vE)@ {) @[Ӷ)F@+[u) @W+.%)Q&@!:n)@'SK)H$@,`.)LQ@2Owy +J)@7͑)3Z@=Kpk)զ@B) 4@HG`)+@MZ);@SD=z)@Xhd )@^@!)oY@c)m@i<)Ij@n.)Z@t9ft})m@y)$2@5ߐ)@n)m@2c3))f@ S)/ @. )pi@<' )4@+o)@ )@(- 0a)MX@) @$ڼ43)@5zU8)+@!Z)h@Ɵ!#)@U5)@ќB^)d@!ݍ)y^@ܙ)l@V)QM@g7)B@ٮ)N@Mm)@ĵ)C@=G)F@S)@7)F@ 0v)Q@;ՙM):@uk)Ҕ@I!)@$ +)@)`)@/Y )V@4 )~:@:N)_"@?~)@DE)e@J{3Z)݋@O~GV)۝@Uy)d @Zq)@`vf:p):@e ZV)E@ksXi)@pbu)%:@vq!})@{()X@ns)!b@( )CA@k)'@Ꙃ)>@iUM&)'@X)@fӣ$)ɗ@*y)@dZ)"Q@!)?@a)@}I)q@_)@S) @]%,)?@ )@Z<)-P@٨)@XDQ)@_)Պ@V>Z=) +@^)oH@T7)3@\)U1@Qb)@ +и1')n@O5n)R@Α)Kt@MOd)#@ r))@&Kf)D @+\V )ž@1IT)@6MAb)Z+@)Pe@4x {)e@|')&@2li)Jw@!)@1) +)@ŰT)l@/)1@Ю/)e@-ᤢ)ؙ@ۭ)Y@,HF)@~9g)@*)@U)6B@)*{5)h@gY )@')@19)@ &((V)@k )ݐ@$ z)@x)@##@t)?@()c@.!C)A@3$f)#}@9 slW){@>Đ)z@@DY)t3@Ij)wl@O)q@T)t+@Zp +)u@_n)tj@e&1)p~@j1V)p@p*)qs@uC)rs@{t)r@ <,)qZ@nHF')q@;)uh@<ܥ)tGE@`)tVn@]W)qY@}HH)qs@빯)r@[)rC@9)s$@>D)q@)r@‘&=)tߌ@E&)tF@͐!)w@a`)t:k@؏ )qJu@<)q@`x)q@ x)u_@)O)p|@ ~)n@Kw)rf@ X)pq@`)o@ + +a)s@Xs)s@ )t@1 )s0]@ )uٜ@%I)t@+NR)s@0gP)va@6.)ym@;Am){ʱ@A5)x@l@Fc)w@LH ,)|e@Q3)z@Wvnp)xA@\')tFi@b`<)w[@gF)s@mȺ)uI&@r()t@@x6)vR@}j)wu@`)t^@B~j)w@m)u @K8/.)uc@ԙ4)x$B@)x@?E)wj@~00)x'@)v'd@~<)z[@)w@}r-)z46@CW){)@|s2)}@L)|@|S){+@l:)xS@{h)|0@l)zy@{!h{)w @9)u@z()ug@EDw)uЯ@yI6)t=@^)vnw@ yrAiN)v3@-)u@xѨ)sC$@)x5@"xd )s@'#)qd@-wvI)u:@2)rt@8weh)qF^@='DV)pRW@Cv)n f@Hp)o:@Nvs4s)q]&@S8)nh@Yu9)mo@^b)m@du·\)jJe@iVT)l@ou)inb@t )k@zt)l0@S)n9@tLV)j9@P<)i @s)m@^,~)j$@snJ)nP#@T,J)k6k@s$o)k @H)j@rc$)e@O)hj@rlA)i@@j')e@rE&)iM@rf)eHJ@q )cg@3)_ @qk)a+@B)afF@q;)eN@&mH)_@p )`T@)`nE@p)cރ@Z ۢ)_@ p5)\@C)\v@o챣)]@=S)_@oE)_R@$)^@*oa~)^H@/@1gd)\7@5of)[F@:hl)^:S@@n, )ZB;@E\)[P4@Kn)Y@P)Y'@Vnae)Z@[C4Z)XWG@an%eT)Yt@fd)XD[@lm)Z@q.K)Y@wmҮ})V~@|Ϳe)Vv@mz)W>@^3)X4@mCCq)W@(6)UK@m:-)V@`7)TPY@lڂ4)U@P)Us@l)V0@쎃5)U)@lu)LP>@],)RL@lD)VN@,)X@l@)Yۯ@ )W@kys)Y@&P)Z/e@kU)W@bb)X@k9N)W@ru)S@@k\)S@Et)Q3@k/th;)QK@ V5)R@kTi)P@nLr)R@jנ@)Sh@!x)Qs@'jE))P6@,ꖳ{)Q3@2j2L)PZ@7k)Of@=jVVY)P@B@M)Om +@Hj+)O@MM)Qns@Sj)Q@Xg)O@^i^F)N=@c +)QӤ@iiO[)Q@nO+)N@ti%=)MIV@yklE^)N@iU\)O-@@O)Ma@i*))Lƿ@)Mj@hb)M!o@")N\@hO)J@Q)I@hU)J#H@?)J>@hy)G{@bM)Jk@hL"/:)D@5E)Cg@h)E @)C@g~s)C/@+)A7@g0s)AP@)As@gZX)>@uK)??@g\1)>O@C)=@7):]@s`):|@3{eH);@ nF)<@ aH):S'@sSK])8@3Fy):{#@8I3);ь@*c)=/@sSD)9@3)=%@>):R@")?a/@%rP)=\@(2Y~)<@*0)=@-Ֆ)=~b@0rG +1)=ޗ@32)>&@5ޅ)=@8u[/)2TRq):C@@Cw)9qm@C2b):@Fr! )9@I2`)9@K~)9i;@N!Y):`@QqW2):P@T1Ǟ.)7@VN)99@Y/-)9^@\q*)8 ]@_1y,)8[@ae})9a9@dQ)8@gq=Q )65@j1()7@l~)6@o#"_)6O@rpzd)3|@u0҂D)4@w:9)6GA@z.)2@}pl)4w@0w{V)2Z{@_6G)3.@H)1@p/ǃ)4i@03>)0{"@G)0@#))1\@ob)2{@/f`)/h@f)1#@|W)/ @oaB)/@/Ef)/@)F)1@ )1>@n$Q)1g@.%(). @Q).c>@ ).@nzH)1 h@.\&;)-Fw@=!)-@ ),@mֆ7)*z@-ݎM)-|@׀R)/@ǭ).@mz/).#y@-X6d)-@5).G@ҭ=),*@lN),"@,wY)+@)3)-ߌ@ݬd8).@l]'),#@,7o=}).6@<_).D@ꍹ), +@ka=))L@+),@sP-)+9X@Jk)+^@k!U),z3@* B),@>)-@$4k),-@jwe)+@*L%),E@$))@ N)(R@ iũ؁))S@))(U@iK2)#L@:Ih)#@i +E)$@(ژ/)$[ @Ar)#K@x)!X@"hFZ) l@%(f8)!4H@'h2)@*3 ))w@6)4@ܝ6m)@Lf)3@[&)xN@*D)-Q@S$)y@|)@Z )[@RH)@Bc)@ZD)gp@YK) @%o) -@ N?) {{@ )a) +@ZD) L&@ov@)r@Lq) 4p@ )@˅A)@ )?@J)@" +xi)?@$ɠ@)D@'%p)@*Hh)@-+2)Es@/ǭ[c)@2-)6@5F0)P:@8+²)@:ũT8)y@=%%)Ȼ@@Dp)\@C)@EÕ~)@H (gX@KBr)@Ny)2@PqF)F@S)@V@X_([=@X4)@[K))@cU)"@f)@i|b),@l;R')@n7 +<)T@q̜)w@tz7")2@w9mu)@y)F@|7B|)@weя) U@6lyV) R@]Up) @) @u) @4ySz) @պ) wZ@0c) K@r/) +q@1) h@;B) +@) "@o"!) A@/<}l)&@H)9@ ) +@m2)@,7)@г7)o@)J @jj)҇@)A(@(@G;6(C@g2(W@&ԝ>(0@|H(@ɥ]"'(@d(J@#s(H@ (@Ԣ_oR(@aO)e@ '(l1@$T;(/@ߟM(\@^Y I(T@{(@1(@(-EE(>(@[[>(L9@(gm@پI(k@܊(u@XUe('@IK%x(@t +(v@Om(M@TZ(J?@l(HK@'(@ ;2(Z@Q__zp({@i4(@Ϣ6(@°(3@Mm(@ 3F^(T6@m(E@!4N(/@$JMS](P@' d(q@){D(6@,/S(@/F(\@22<((@4ƪK(@7(8\@:B w(t@=h`(@@?=(Ġ@B(@E? ~('z@GA()q@J(@M|'(;@P;!j(9@R"`#(;L@U"'( @Xx (o@[7>(@]pi(%@`?(g@ct (.@f3G(@h c(IA@k2?)T@no)n@q.;a!)(@s)Z@vX):@yk,q)D@|*4^)@~qX)H@Yo)U@g@a)"D@&%)@ ) (@m) @b̸y)@! +)9@)t@eɘ))@^@;)@)/[@-;<)4@. )l&@Y)#?@nL,)N@?);@&)@T:)N@m3)@uwY)@>D)6Z@Pȫ) Ͷ@) _@͑h) +A@ÌT&) *@KG7)@ $)-@Ȕd1)I@·Q):/@F )@l)6@}.F)M@ق3M(.@@(@(J@Kby(C@|`d(o@;D( @U(#@(S@wu(s@6P6,;(GS@ (eK@(@r;(@0Y(K@{*(@I{_(߻@l( @+Ml'(g'@ +ne(!@ {uI(@gMp(@%(t(@4JZ(+@ñ([@aQ]|}(v@L8(@ g}_(ޛ@#!(o@&[v/(J@)9(Y@+~0(9@.-D(@1Uԧ(m@4(%5@6y(9@9'(|@
    IRv(ȶf@@+(Sd@C(5@FWwk(@I- (ĝ@KDW(@NI(ȁ@QNA鵛(‰@T ('[@Vəw(à@YBY("@\Dr(ͩ@_(\@a.ؖ(@d}ΐ(ća@g;l H(Ñ@iL.(/@lNc(®@ot7ٵ(V@r1˗(*@t]۳(¼B@wU(zS@zj{^(d@}(Ľ(@R{(@DxQ( +@`i(@S(A3@۞m?(&@>6(@V(ߒ@A(@ч'(xI@(м@Ln(@ J(Xb@LIV(^?@)(l@B o(ƿB@(|#@,(@zNh(Ȟ@7'(@ `p(8@f (c@o(ϐ@-t(Ӂ@h% (@r(@e B(Ut@"Vp(ܞ@ߠ(VW@̜a(@Z.D(Բ@q(@Բ}(۝@ב6g(@O-IkR)}@ f@)8@ɞ6)G@Q) @D{);@5{JP)-@c& +)P@{2) L6@8砊)%"@,*)*\@0M)*@p"_)1V@-AL)10@]ľA)1@wK;)0h@dS!)- +@!g5)(Z@޷F)#C@ #)"X@Xʉ) @7()5`@")i@ұ)@Lj*)J@ ) +'@c)f@!)W@$@;T})@&a`)9@)-(@,wU(@/4(8@1񢺼-(b@4<.(@7ku33(B@:(Z,(7@<=}p(ﶣ@?R2(k@B^CS(E&@EŘ(CS@GدhId(@JyLD(@MRXf)/1 \ No newline at end of file diff --git a/site/_downloads/APLpy-example.tar b/site/_downloads/APLpy-example.tar new file mode 100644 index 0000000..681cf8b Binary files /dev/null and b/site/_downloads/APLpy-example.tar differ diff --git a/site/_downloads/astropy_UVES.tar.gz b/site/_downloads/astropy_UVES.tar.gz new file mode 100644 index 0000000..a7c38b2 Binary files /dev/null and b/site/_downloads/astropy_UVES.tar.gz differ diff --git a/site/_downloads/astropy_examples.tar b/site/_downloads/astropy_examples.tar new file mode 100644 index 0000000..850f53c Binary files /dev/null and b/site/_downloads/astropy_examples.tar differ diff --git a/site/_downloads/bounce_fprimini.py b/site/_downloads/bounce_fprimini.py new file mode 100644 index 0000000..b445eee --- /dev/null +++ b/site/_downloads/bounce_fprimini.py @@ -0,0 +1,30 @@ +from numpy.random import random, normal +figure(4) +clf() +axis([-10, 10, -10, 10]) + +# Define properties of the "bouncing balls" +n = 10 +pos = (20 * random(n*2) - 10).reshape(n, 2) +vel = (0.3 * normal(size=n*2)).reshape(n, 2) +sizes = normal(200, 100, size=n) + +# Colors where each row is (Red, Green, Blue, Alpha). Each can go +# from 0 to 1. Alpha is the transparency. +colors = random([n, 4]) + +# Draw all the circles and return an object ``circles`` that allows +# manipulation of the plotted circles. +circles=scatter(pos[:,0], pos[:,1], marker=(5,0,1), s=sizes, c=colors) + + +for i in range(100): + pos = pos + vel + bounce = abs(pos) > 10 # Find balls that are outside walls + vel[bounce] = -vel[bounce] # Bounce if outside the walls + clf() + axis([-10, 10, -10, 10]) + scatter(pos[:,0], pos[:,1], marker=(5,0,i), s=sizes, c=colors) + draw() +# circles.set_offsets(pos) # Change the positions +# draw() diff --git a/site/_downloads/bounce_jconnelly.py b/site/_downloads/bounce_jconnelly.py new file mode 100644 index 0000000..516b83a --- /dev/null +++ b/site/_downloads/bounce_jconnelly.py @@ -0,0 +1,238 @@ + +final_pos = np.array([[ -1.16487911e+01, 7.97010734e+00], + [ 1.52263849e+01, 7.03170573e+00], + [ 7.40314825e+00, -6.21780911e+00], + [ 7.50623963e+00, -8.19873143e+00], + [ 8.39030933e+00, 6.01604994e+00], + [ -2.01130000e+01, -2.54080693e+00], + [ 1.65106511e+01, 7.43949718e-01], + [ 3.68807684e+00, -2.65480888e+00], + [ -1.29682893e+01, 4.39134921e+00], + [ -2.12781439e+01, -3.83568957e+00], + [ -9.53116494e+00, -3.16737810e+00], + [ -9.44733616e+00, -8.20420612e+00], + [ 2.24594079e+01, 6.77604161e-01], + [ -1.45102025e+01, -8.08726360e+00], + [ -2.33297342e+01, 6.80102611e+00], + [ -4.52535744e+00, 3.08436380e+00], + [ -1.00022495e+01, 7.94659724e+00], + [ -1.01357018e+01, 5.36756158e+00], + [ 1.79024777e+01, -6.81777116e+00], + [ 4.75316774e-01, 7.94860465e-01], + [ 2.26291526e+01, -5.70246303e+00], + [ 4.28657368e+00, 1.84204279e-01], + [ 2.91824196e+00, -5.08699391e+00], + [ -2.61873152e+00, -1.76304063e-02], + [ -1.93256098e+01, -4.52963261e+00], + [ -4.79401302e-01, -7.02746415e+00], + [ 1.03918585e+01, 1.55906371e+00], + [ -2.76963526e+00, 8.84157125e+00], + [ 1.06862963e+00, -3.71710315e+00], + [ 1.89009010e+01, -5.54109689e+00], + [ 1.87217764e+01, 5.03931059e+00], + [ -3.77467050e+00, -6.51170933e+00], + [ -1.50717269e+00, -8.33937829e+00], + [ 2.70067759e+00, -6.06256819e+00], + [ -1.29144251e+01, -2.37390598e+00], + [ 2.14246266e+01, -2.25424427e+00], + [ 2.11039849e+01, 6.42410669e+00], + [ -9.59782207e-01, -2.98162046e+00], + [ 3.93099799e+00, 3.15868703e+00], + [ 1.76205956e+01, 8.15679526e+00], + [ -5.18462773e+00, 2.21801549e+00], + [ 1.32614489e+01, -1.54576705e+00], + [ -1.92316434e+01, -5.97974423e+00], + [ 6.62372388e+00, -1.28021499e+00], + [ 1.24675162e+01, -4.95189996e+00], + [ 3.18938569e+00, 3.28514607e+00], + [ -1.42251393e+01, 8.17129313e+00], + [ -2.39231665e+01, 3.39856498e+00], + [ -1.97007170e+01, 5.60362978e+00], + [ -2.34372442e+01, 5.12611919e-01], + [ 1.97731440e+00, -7.11119394e+00], + [ -2.00458923e+01, 2.62334845e+00], + [ -1.86978752e+00, 2.13448685e+00], + [ 4.06347445e+00, 3.11444643e-01], + [ -2.18800791e+01, -3.10743917e+00], + [ 7.96630515e+00, -5.25526766e+00], + [ -2.29080423e+01, 4.48254664e+00], + [ 1.08474251e+01, -6.30136082e+00], + [ 8.47311274e+00, -1.35737357e+00], + [ -1.25888096e+01, -2.15384272e+00], + [ -1.77124874e+01, 2.56905571e+00], + [ -1.88886403e+01, -9.51536957e-01], + [ 1.26884152e+01, 3.45053289e-01], + [ 1.75657987e+01, -4.00000000e+00], + [ -1.28085892e+01, -8.58028852e+00], + [ -7.94281826e+00, 3.17016127e-02], + [ -1.63418385e+01, 3.47861648e+00], + [ -1.86256188e+01, -1.23967512e+00], + [ 1.71399349e+01, -7.08592228e-01], + [ -1.72089307e+01, -7.87515732e+00], + [ -1.93875328e+01, 4.59876941e+00], + [ 1.49598613e+00, 1.92876249e+00], + [ -1.61243547e+01, -2.03794580e+00], + [ -1.03914916e+01, -3.68618593e+00], + [ -2.19951627e+00, 3.06631333e+00], + [ 1.02984653e+01, 2.58217350e+00], + [ -1.20577904e+01, 3.33066907e-16], + [ 1.10578618e+01, 4.70650405e+00], + [ -2.32796270e-01, 7.05555978e+00], + [ -1.09778496e+01, 7.05556188e+00], + [ 7.65373591e+00, 2.07857452e+00], + [ 1.53381743e+01, -6.65172515e+00], + [ -1.37328708e+01, -5.14838205e-01], + [ 8.91132798e+00, 7.90059577e+00], + [ -1.91725220e+01, 6.48429744e+00], + [ 2.35003606e+01, -6.82163416e+00], + [ -2.74945039e+00, 1.08399483e+00], + [ -5.37294441e+00, -4.47173746e-01], + [ 1.96869685e+01, -1.12325923e+00], + [ -1.60217458e+01, 2.33000481e+00], + [ -6.67983637e+00, 6.74724748e+00], + [ -3.11215022e+00, 4.17069437e-01], + [ 2.73380527e+00, -4.66780545e+00], + [ 2.25336031e+00, 2.77054641e+00], + [ -4.70951473e+00, -2.22143102e+00], + [ 1.76256316e+01, -5.24705560e+00], + [ 4.52636117e-01, 7.16230417e+00], + [ 1.87328563e+01, -3.49587376e+00], + [ -2.02502379e+01, -5.34635166e-01], + [ -1.84235197e+01, -7.90127830e+00], + [ -7.45212389e+00, 7.07226752e+00], + [ 1.09342017e+01, -3.08611821e+00], + [ 2.38184849e+01, -6.43846128e+00], + [ 1.06910057e+01, -3.00058119e+00], + [ 2.31888477e+01, -3.84200011e+00], + [ 3.26177465e+00, 5.00000000e+00]]) + + +final_vel = np.array([[ 8.35120894e-02, 2.21668654e-01], + [ -5.33733104e-01, -5.01585286e-01], + [ 2.74031483e-01, -2.63613069e-01], + [ -6.87655991e-01, -2.76874286e-01], + [ 3.63978325e-01, -3.00802497e-01], + [ -1.13000007e-03, -3.54080693e-02], + [ 4.45251842e-01, 2.09341714e-01], + [ 2.36880768e-01, -1.76712777e-01], + [ 1.52863275e-01, -9.78373014e-02], + [ -1.27814389e-02, 1.92080208e-01], + [ 4.46883506e-02, 8.32621899e-03], + [ 4.55266384e-02, -5.20420612e-02], + [ 3.64594079e-01, 1.67350260e-01], + [ -5.10202479e-03, 2.95302650e-01], + [ -9.32973418e-02, 6.80102611e-02], + [ 2.96082580e-01, -3.47393967e-01], + [ 3.99775045e-02, 4.24756946e-01], + [ 2.41518636e-01, 2.36756158e-02], + [ -4.43089968e-01, -1.08177712e-01], + [ 1.44753168e-01, -4.20513953e-02], + [ 5.07489912e-01, -5.70246303e-02], + [ 2.32865737e-01, 1.84204279e-03], + [ 2.09182420e-01, 3.17937120e-01], + [ 1.43812685e-01, -1.76304063e-04], + [ 1.27908069e-01, -2.26481631e-01], + [ 3.30013607e-01, -4.39216510e-01], + [ -7.17407602e-01, 3.89765927e-01], + [ 7.23036474e-02, -2.37806875e-01], + [ 3.95308201e-01, 3.58551574e-01], + [ 5.78018020e-01, -3.54109689e-02], + [ 5.74435529e-01, 4.31379328e-01], + [ 3.45851639e-01, -6.51170933e-02], + [ -6.06630522e-01, -4.66968914e-01], + [ 1.27006776e-01, -2.23960228e-01], + [ -2.91442510e-02, -5.37390598e-02], + [ 3.14246266e-01, -6.25424427e-02], + [ -3.70285534e-01, -3.56026672e-01], + [ 4.79891104e-01, -2.54594885e-01], + [ 3.93099799e-02, 6.15868703e-02], + [ -3.03803372e-01, 2.41828459e-01], + [ 4.32052311e-01, -5.36335916e-01], + [ -3.48985498e-01, -3.86441762e-01], + [ 2.91388536e-01, -4.36234014e-01], + [ -4.13982743e-01, -5.46702498e-01], + [ 1.24675162e-01, -7.95189996e-02], + [ 3.18938569e-02, -7.14853934e-03], + [ -1.42251393e-01, 3.17129313e-01], + [ 2.13501699e-01, 2.66905837e-01], + [ -1.77007170e-01, -7.54537229e-02], + [ -2.24372442e-01, 3.20527720e-01], + [ 1.97731440e-02, -2.01853232e-01], + [ -2.10458923e-01, -3.96108592e-01], + [ 4.83723440e-01, -1.10212044e-01], + [ 1.06347445e-02, -4.68855536e-02], + [ -2.88800791e-01, -1.62148783e-01], + [ 1.82135551e-02, -9.98388445e-02], + [ -2.83010733e-01, 2.67673323e-01], + [ 6.01248856e-02, 1.45989691e-01], + [ 3.93513212e-02, -2.63879037e-02], + [ -5.70893008e-01, 1.56035493e-01], + [ 3.52303498e-01, -5.39881964e-01], + [ -2.42816713e-01, 1.42547360e-01], + [ -2.97430252e-01, 4.07367008e-01], + [ 1.05657987e-01, 1.00299322e-01], + [ 4.30492490e-01, -3.03229483e-01], + [ 4.86758450e-01, 2.97890161e-02], + [ -5.54497869e-01, 5.22861648e-02], + [ -2.80876382e-01, -9.58258321e-03], + [ 7.67791550e-02, -1.99000903e-02], + [ 3.99605973e-01, -1.06251573e-01], + [ 3.78304079e-01, 6.51569419e-03], + [ -6.35906423e-02, -2.79985431e-02], + [ 4.37489593e-01, -2.45256775e-01], + [ -2.13914916e-01, 1.14364322e-01], + [ -1.31995163e-01, 4.22192777e-01], + [ -7.01534715e-03, 1.99009639e-01], + [ -2.30577904e-01, 3.64387972e-01], + [ 5.78618009e-04, -1.23550135e-01], + [ -1.12327963e-01, -3.15972486e-01], + [ -2.19778496e-01, 4.05556188e-01], + [ -3.34626409e-02, -1.20089092e-01], + [ -2.16908717e-01, 1.66453216e-01], + [ 4.58016126e-01, -5.51483820e-02], + [ -2.75533868e-01, -4.40059577e-01], + [ 4.14550728e-01, 4.48429744e-02], + [ 1.05003606e-01, -7.32163416e-02], + [ -1.64161171e-01, -3.47332471e-01], + [ 5.79596404e-01, -3.42137709e-01], + [ 4.68696847e-02, 1.30760944e-01], + [ -3.10217458e-01, -1.97812650e-01], + [ -2.23465030e-01, 9.24724748e-02], + [ -1.94454836e-01, 1.77133680e-01], + [ -1.42661947e-01, 5.16780545e-01], + [ -1.54133064e-01, 7.70546408e-03], + [ -3.49134062e-01, -1.68277383e-01], + [ -1.37436836e-02, -1.82983136e-01], + [ -1.85473639e-01, 2.14659696e-01], + [ -2.67143714e-03, -2.47936878e-01], + [ -3.92502379e-01, 1.46536483e-02], + [ -3.74235197e-01, -6.90127830e-02], + [ -2.64521239e-01, 2.52580983e-01], + [ -1.83313598e-01, -2.04305910e-01], + [ 4.81848491e-02, -6.02747235e-01], + [ -8.30899434e-02, 3.00029059e-01], + [ -5.81784409e-02, 6.53500009e-01], + [ -1.57382253e-01, -4.45764325e-01]]) + + + +figure(1, figsize=(10,5)) +clf() +axis([-25, 25, -10, 10]) + +vel = -final_vel +pos = final_pos +circles = scatter(pos[:,0], pos[:,1], marker='o', s=200, c='b') + + + +for i in range(100): + pos = pos + vel + xbounce = abs(pos[:,0]) > 24 # Find balls that are outside walls + ybounce = abs(pos[:,1]) > 9 # Find balls that are outside walls + vel[ybounce] = vel[ybounce] * [1, -1] + vel[xbounce] = vel[xbounce] * [-1, 1] # Y Bounce if outside the walls + circles.set_offsets(pos) # Change the positions + xlim(-25,25) + ylim(-10,10) + draw() diff --git a/site/_downloads/bounce_jslavin.py b/site/_downloads/bounce_jslavin.py new file mode 100644 index 0000000..50766ab --- /dev/null +++ b/site/_downloads/bounce_jslavin.py @@ -0,0 +1,43 @@ +# see http://python4astronomers.github.com/contest/bounce.html +figure(1) +clf() +axis([-10, 10, -10, 10]) + +# Define properties of the "bouncing balls" +n = 10 +pos = (20 * random_sample(n*2) - 10).reshape(n, 2) +vel = (0.3 * normal(size=n*2)).reshape(n, 2) +sizes = 100 * random_sample(n) + 100 + +# Colors where each row is (Red, Green, Blue, Alpha). Each can go +# from 0 to 1. Alpha is the transparency. +colors = random_sample([n, 4]) + +# Draw all the circles and return an object ``circles`` that allows +# manipulation of the plotted circles. +circles = scatter(pos[:,0], pos[:,1], marker='o', s=sizes, c=colors) + +# gravity-like force in -y direction +grav = -0.1*ones(20).reshape(n,2) +grav[:,0] = 0. +dt = 0.2 +dt2 = dt**2 +ax = gca() +ax.set_xlim((-11.,11.)) +ax.set_ylim((-11.,11.)) +for i in range(1000): + # repulsive force from walls at y = +11 and -11 + frep = 0.1*(-1./(pos[:,0] - 11.)**2 + 1./(11. + pos[:,0])**2) + frep = array(zip(frep,zeros(n))) + pos = pos + vel*dt + 0.5*(grav + frep)*dt2 + vel = vel + (grav + frep)*dt + bounce = abs(pos) > 10 # Find balls that are outside walls + vel[bounce] = -vel[bounce] # Bounce if outside the walls + circles.set_offsets(pos) # Change the positions + # circles change color after bouncing + cc = where(bounce)[0] + if len(cc) > 0: + for j in cc: + colors[j,0:3] = 1. - colors[j,0:3] + draw() + diff --git a/site/_downloads/bounce_kkratter.py b/site/_downloads/bounce_kkratter.py new file mode 100644 index 0000000..ff471dc --- /dev/null +++ b/site/_downloads/bounce_kkratter.py @@ -0,0 +1,35 @@ +figure(2) +clf() +axis([-10, 10, -10, 10]) + +# Define properties of the "bouncing balls" +n = 14 +pos = (20 * random_sample(n*2) - 10).reshape(n, 2) +vel = (0.3 * normal(size=n*2)).reshape(n, 2) +sizes = 100 * random_sample(n)+10 + +# Colors where each row is (Red, Green, Blue, Alpha). Each can go +# from 0 to 1. Alpha is the transparency. +colors = random_sample([n, 5]) + +# Draw all the circles and return an object ``circles`` that allows +# manipulation of the plotted circles. +circles = scatter(pos[:,0], pos[:,1],marker='o',c=colors,s=sizes) + +for i in range(200): + if 80>i>60: + sizes=sizes-(random_sample(n)*3) + if i<60 | i >80: + sizes=sizes+(random_sample(n)*3)+0.1 + + + #circles = scatter(pos[:,0], pos[:,1], marker='o', s=sizes, c=colors) + pos = pos + vel + bounce = abs(pos) > 10 # Find balls that are outside walls + vel[bounce] = -1.2*vel[bounce] # Bounce if outside the walls + circles.set_edgecolor(colors) + circles.set_facecolor('none') + circles.set_offsets(pos) # Change the positions + circles.set_lw(sizes) + + draw() diff --git a/site/_downloads/bounce_kpoppenhaeger.py b/site/_downloads/bounce_kpoppenhaeger.py new file mode 100644 index 0000000..0f5ae82 --- /dev/null +++ b/site/_downloads/bounce_kpoppenhaeger.py @@ -0,0 +1,53 @@ +figure(1) +clf() +size = 15 +axis([-size, size, -size, size]) + +# Define properties +n = 10 +pos1 = (np.linspace(10,10,20)).reshape(n, 2) # the bubbles +pos2 = (np.linspace(-10,-10,20)).reshape(n, 2) # the thorns + +vel1 = (0.2 * normal(size=n*2)).reshape(n, 2) +vel2 = (0.5 * normal(size=n*2)).reshape(n, 2) + +sizes1 = 500 * random_sample(n) + 150 +sizes2 = ones(n) * 50 + +# Colors where each row is (Red, Green, Blue, Alpha). Each can go +# from 0 to 1. Alpha is the transparency. +colors1 = random_sample([n, 4]) +colors2 = random_sample([n, 4]) + +# Draw all the circles and return an object ``circles`` that allows +# manipulation of the plotted circles. +circles = scatter(pos1[:,0], pos1[:,1], marker='o', s=sizes1, c=colors1) +triangles = scatter(pos2[:,0], pos2[:,1], marker='^', s=sizes2, c=colors2) + +boom = np.array([False] * n) +gone = 0. +angle = 0. + +while gone < 10: + pos1 = pos1 + vel1 + pos2 = pos2 + vel2 + bounce1 = abs(pos1) > size # Find objects that are outside walls + bounce2 = abs(pos2) > size + vel1[bounce1] = -vel1[bounce1] # Bounce if outside the walls + vel2[bounce2] = -vel2[bounce2] + position = [[size+5], [size+5]] + for j in np.arange(0,n): # Check if target has been hit + boom_new = np.sqrt( (pos1[j,0] - pos2[:,0])**2 + (pos1[j,1] - pos2[:,1])**2 ) < (sizes1[j]/240) + if np.sum(boom_new) == 1: + position = [pos1[j,0], pos1[j,1]] # remember position where it was hit + boom[j] = True # and remember which bubble was hit + + + sizes1[boom] = 0 # If target was hit, let it vanish + plt.plot(position[0], position[1], 'o', color='r', markeredgecolor='r', markersize=5) # draw red dot at position of collision + gone = np.sum(boom) # How many bubbles have been hit so far + circles.set_offsets(pos1) # Change the positions + triangles.set_offsets(pos2) + angle = angle + 20 + triangles.set_transform(matplotlib.transforms.Affine2D().rotate_deg(angle)) # Let thorns spin + draw() diff --git a/site/_downloads/bounce_krosenfeld.py b/site/_downloads/bounce_krosenfeld.py new file mode 100644 index 0000000..fee13fb --- /dev/null +++ b/site/_downloads/bounce_krosenfeld.py @@ -0,0 +1,93 @@ +#from matplotlib.pyplot import * +#from numpy.random import * +#from numpy import * + +# K. Rosenfeld 5/11/12: +# This script visualizes a parallelized Metropolis-Hastings algorithm as +# it samples a 2D Gaussian (or whatever function your heart desires). +# Just chose the number of chains (or "sampling balls"), the average jump size +# and let it run. The (arbitrary) contours that appear after a burn in time +# (burn = NN) show the resulting samples. + +#Some tuning and patience may be required. + +# Define the potential +def mypotential(x,y): + x0 = 0 + y0 = 0 + potent = 1./(2*pi*sigma**2)*np.exp(-0.5*((x-x0)**2/sigma**2 + + (y - y0)**2/sigma**2)) + return potent + +# Set up figure +figure(1) +clf() +set_cmap('gray') +axis([-10, 10, -10, 10]) + +# Set up the potential +sigma = 3.0 +nx = 30 +dx = 20./nx +x = np.arange(-10,10,dx) +y = np.arange(-10,10,dx) +ax = np.tile(x,(nx,1)) +ay = np.tile(y,(nx,1)).T + +# Plot the potential +pot = mypotential(ax,ay); +imshow(pot,extent=(-10,10,-10,10)) + +# Set up the "sampling balls" +dstep = 0.5 # Size of steps +burn = 100 # No. of steps before show contours +n = 15 # No. of balls +ntime = 3000 # Lenght of run + +# Define properties of the "sampling balls" +pos = (20 * random_sample(n*2) - 10).reshape(n, 2) +sx = [] +sy = [] +sizes = 90 + ones(n) +alt = mypotential(pos[:,0],pos[:,1]) + +# Colors where each row is (Red, Green, Blue, Alpha). Each can go +# from 0 to 1. Alpha is the transparency. +colors = random_sample([n, 4]) + +# Draw all the circles and return an object ``circles`` that allows +# manipulation of the plotted circles. +circles = scatter(pos[:,0], pos[:,1], marker='o', s=sizes, c=colors) + +for i in range(ntime): + # generate proposed new positions + prop = pos + dstep*randn(n,2) + palt = mypotential(prop[:,0],prop[:,1]) + pmove = palt/alt + mrand = rand(n) + # figure out which balls make the jump + move = pmove > mrand + pos[move] = prop[move] + alt[move] = palt[move] + + # save positions + if (i > burn): + sx = concatenate((sx,pos[:,0]),axis=0) + sy = concatenate((sy,pos[:,1]),axis=0) + # update contours + if (mod(i,10) == 1 and i > burn): + clf() + axis([-10, 10, -10, 10]) + imshow(pot,extent=(-10,10,-10,10)) + H,xedges,yedges = histogram2d(sx,sy,bins=nx) + xcen = (xedges + roll(xedges,1))/2 + ycen = (yedges + roll(yedges,1))/2 + xcen = xcen[1:nx+1] + ycen = ycen[1:nx+1] + set_cmap('gray') + contour(xcen,ycen,H.T,linewidth=2) + set_cmap('jet') + circles = scatter(pos[:,0], pos[:,1], marker='o', s=sizes, c=colors) + + circles.set_offsets(pos) # Change the positions of the balls + draw() diff --git a/site/_downloads/bounce_mswanson.py b/site/_downloads/bounce_mswanson.py new file mode 100644 index 0000000..1366386 --- /dev/null +++ b/site/_downloads/bounce_mswanson.py @@ -0,0 +1,29 @@ +figure(3) +clf() +axis([-10, 10, -10, 10]) + +# Define properties of the "bouncing balls" +n = 10 +pos = (20 * random_sample(n*2) - 10).reshape(n, 2) +vel = (0.3 * normal(size=n*2)).reshape(n, 2) +sizes = normal(400, 100, size=n) + +# Colors where each row is (Red, Green, Blue, Alpha). Each can go +# from 0 to 1. Alpha is the transparency. +colors = random_sample([n, 4]) + +# Draw all the circles and return an object ``circles`` that allows +# manipulation of the plotted circles. +circles = scatter(pos[:,0], pos[:,1], marker=[15,1,0], s=sizes, c=colors) +angle=0 +grow=1 +for i in range(300): + pos = pos + vel + bounce = abs(pos) > 10 # Find balls that are outside walls + vel[bounce] = -vel[bounce] # Bounce if outside the walls + angle=angle+5 + #scalefactor=201/(1+pos[:,0]**2+pos[:,1]**2) + grow=grow*1.01 + circles.set_transform(matplotlib.transforms.Affine2D().rotate_deg(angle).scale(grow)) + circles.set_offsets(pos) # Change the positions + draw() diff --git a/site/_downloads/bounce_pgrigis.py b/site/_downloads/bounce_pgrigis.py new file mode 100644 index 0000000..912ad58 --- /dev/null +++ b/site/_downloads/bounce_pgrigis.py @@ -0,0 +1,121 @@ +#create new figure +figure(1) +clf() + +#this contains the mixing ratio plot +subplot(210) +nruns=500 +axis([0,nruns, 0, 1]) + +#this contains the box with the balls +subplot(211) +axis([-10, 10, -10, 10]) + +#vertical size of the gap between left and right side of the box +GapWidth=2.0 + +#plot internal wall +plot(array([0,0]),array([-10,-GapWidth/2]),linewidth=6,color='green') +plot(array([0,0]),array([GapWidth/2,10]),linewidth=6,color='green') + +# Define properties of the "bouncing balls" +n = 100 + +#1 for red balls, 2 for blue +pos1 = (10 * random_sample(n*2) - 10).reshape(n, 2) +pos1[:,1]=pos1[:,1]*2+10.0 +vel1 = (0.3 * normal(size=n*2)).reshape(n, 2) +pos2 = (10 * random_sample(n*2)).reshape(n, 2) +vel2 = (0.3 * normal(size=n*2)).reshape(n, 2) +pos2[:,1]=pos2[:,1]*2-10.0 + +#ball size is uniform +sizes=150*ones(n) + +# Colors where each row is (Red, Green, Blue, Alpha). Each can go +# from 0 to 1. Alpha is the transparency. + +colors1=zeros([n,4]) +colors1[:,0]=1 #red +colors1[:,3]=1 + +colors2=zeros([n,4]) +colors2[:,2]=1 #blue +colors2[:,3]=1 + +# Draw all the circles and return an object ``circles`` that allows +# manipulation of the plotted circles. +subplot(211) +circles1 = scatter(pos1[:,0], pos1[:,1], marker='o', s=sizes, c=colors1) +circles2 = scatter(pos2[:,0], pos2[:,1], marker='o', s=sizes, c=colors2) + + +#array to store the time evolution of the mixing ratio +mixratio=zeros(nruns,dtype='float') +#"time" i.e. number of runs +xarray=range(nruns) + +#title of mix plot +Title="Mixing ratio (#red/#blue on right hand side)" + +for i in range(nruns): + + #stores old positions + opos1=pos1 + opos2=pos2 + + #omputes new positions + pos1 = pos1 + vel1 + pos2 = pos2 + vel2 + + + # these are collisions of bals agains the inner wall - but not if in the gap + collision1x= ( ((opos1[:,0] < 0) & (pos1[:,0] > 0)) | ((opos1[:,0] > 0) & (pos1[:,0] < 0))) & (abs(pos1[:,1]) > GapWidth/2) + collision2x= ( ((opos2[:,0] < 0) & (pos2[:,0] > 0)) | ((opos2[:,0] > 0) & (pos2[:,0] < 0))) & (abs(pos2[:,1]) > GapWidth/2) + + + # check if a bounce happens at boundaries or inner wall + bounce1x = (abs(pos1[:,0]) > 10.0) | collision1x + bounce1y = (abs(pos1[:,1]) > 10.0) + bounce2x = (abs(pos2[:,0]) > 10.0) | collision2x + bounce2y = (abs(pos2[:,1]) > 10.0) + + + #bounces balls as needed in either x or y direction + vel1[bounce1x,0] = -vel1[bounce1x,0] + vel1[bounce1y,1] = -vel1[bounce1y,1] + + #bounced ball not only reverse veloctiy, but also are placed at the location + #they were pre-bounce + pos1[bounce1x]=opos1[bounce1x] + + circles1.set_offsets(pos1) # Change the positions + + #bounces balls as needed in either x or y direction + vel2[bounce2x,0] = -vel2[bounce2x,0] + vel2[bounce2y,1] = -vel2[bounce2y,1] + + #bounced ball not only reverse veloctiy, but also are placed at the location + #they were pre-bounce + pos2[bounce2x]=opos2[bounce2x] + + circles2.set_offsets(pos2) # Change the positions + + #select upper plot + subplot(211) + + #plot balls + draw() + + #compute mixing ratio = #red/#blue in right hand side + mixratio[i]=(pos1[(pos1[:,0] > 0)]).size/float((pos2[(pos2[:,0] > 0)]).size) + + #select lower plots and set it up and plot mixing ratio + aaa=subplot(210) + aaa.clear() + aaa.axis([0,nruns, 0, 1]) + aaa.set_title(Title) + aaa.plot(xarray,mixratio) + + +#that's all folks! diff --git a/site/_downloads/bounce_trobitaille1.py b/site/_downloads/bounce_trobitaille1.py new file mode 100644 index 0000000..618acbd --- /dev/null +++ b/site/_downloads/bounce_trobitaille1.py @@ -0,0 +1,44 @@ +figure(1) +clf() +axis([-10, 10, -10, 10]) + +# Define properties of the "bouncing balls" +n = 50 +pos = (20 * random_sample(n*2) - 10).reshape(n, 2) +vel = (0.1 * normal(size=n*2)).reshape(n, 2) +sizes = 100 * random_sample(n) + 100 + +# Colors where each row is (Red, Green, Blue, Alpha). Each can go +# from 0 to 1. Alpha is the transparency. +colors = random_sample([n, 4]) +colors[:,3] = 0.0 + +# Draw all the circles and return an object ``circles`` that allows +# manipulation of the plotted circles. +circles = scatter(pos[:,0], pos[:,1], marker='o', s=sizes, c=colors) + +for i in range(300): + + # Add a gravitational field towards the center + d = np.sqrt(pos[:,0]**2 + pos[:,1]**2) + ax = - 1. / (3. + d**2) * pos[:,0] / d / 5. + ay = - 1. / (3. + d**2) * pos[:,1] / d / 5. + vel[:,0] += ax + vel[:,1] += ay + + # Slowly decrease the alpha + colors[:,3] = 3. / (3. + d**2) + + # Update positions + pos = pos + vel + + # Find balls that are outside walls + bounce = abs(pos) > 10 + + # Warp to other side + pos[bounce] = -pos[bounce] + + circles.set_offsets(pos) # Change the positions + circles.set_facecolors(colors) # Change the positions + + draw() diff --git a/site/_downloads/bounce_trobitaille2.py b/site/_downloads/bounce_trobitaille2.py new file mode 100644 index 0000000..a8f6dbc --- /dev/null +++ b/site/_downloads/bounce_trobitaille2.py @@ -0,0 +1,51 @@ +from copy import deepcopy + +figure(1) +clf() +axis([-10, 10, -10, 10]) + +# Define properties of the "bouncing balls" +n = 10 +pos_start = (20 * random_sample(n * 2) - 10).reshape(n, 2) +vel_start = (0.1 * normal(size=n * 2)).reshape(n, 2) +sizes_start = 100 * random_sample(n) + 100 +colors_start = random_sample([n, 4]) +colors_start[:, 3] = 1.0 + +pos = [] +vel = [] + +circles = [] + +n_groups = 0 + +for i in range(300): + + if i in range(0, 20, 3): + n_groups += 1 + circles.append(scatter(pos_start[:, 0], pos_start[:, 1], \ + marker='o', s=deepcopy(sizes_start), + facecolors=deepcopy(colors_start), + edgecolors='none')) + pos.append(deepcopy(pos_start)) + vel.append(deepcopy(vel_start)) + colors_start[:, 3] *= 0.8 + sizes_start[:] *= 0.9 + + for ic in range(n_groups): + + vel[ic][:, 1] += -0.01 + + # Update positions + pos[ic] = pos[ic] + vel[ic] + + # Find balls that are outside walls + bounce = abs(pos[ic]) > 10 + + # Bounce + vel[ic][bounce] = -vel[ic][bounce] + + # Change the positions + circles[ic].set_offsets(pos[ic]) + + draw() diff --git a/site/_downloads/bounce_xlu.py b/site/_downloads/bounce_xlu.py new file mode 100644 index 0000000..a991b58 --- /dev/null +++ b/site/_downloads/bounce_xlu.py @@ -0,0 +1,31 @@ +plt.ion() +fig = plt.figure() +axis([-10, 10, -10, 10]) + +# Define properties of the "bouncing balls" +n = 10 +pos = (20 * random_sample(n*2) - 10).reshape(n, 2) +vel = (0.3 * normal(size=n*2)).reshape(n, 2) +sizes = 100 * random_sample(n) + 100 + +# Colors where each row is (Red, Green, Blue, Alpha). Each can go +# from 0 to 1. Alpha is the transparency. +colors = random_sample([n, 4]) + +# Draw all the circles and return an object ``circles`` that allows +# manipulation of the plotted circles. +circles = scatter(pos[:,0], pos[:,1], s=sizes, marker='*', c=colors) + +elastic = 0.95 +gravity = 0.05 + +for i in range(100): + pos = pos + vel + bounce = abs(pos) > 10 # Find balls that are outside walls + vel[bounce] = -elastic * vel[bounce] # Bounce if outside the walls + vel[:,1] -= gravity + circles.set_offsets(pos) + # The velocity vector for each ball. + for j in range(n): + vector = arrow(pos[j,0], pos[j,1], vel[j,0], vel[j,1], color=colors[j]) + draw() diff --git a/site/_downloads/bounce_xlu_just4fun.py b/site/_downloads/bounce_xlu_just4fun.py new file mode 100644 index 0000000..12c5d3c --- /dev/null +++ b/site/_downloads/bounce_xlu_just4fun.py @@ -0,0 +1,65 @@ +from matplotlib import image + +plt.ion() +fig = plt.figure() +ax = fig.add_subplot(111) +ax.get_frame().set_alpha(1.0) +axis([-10, 10, -10, 10]) + +# Download a dolphin image +import urllib +url = 'http://www.webweaver.nu/clipart/img/nature/ocean/dolphin.gif' +urllib.urlretrieve(url, 'dolphin.gif') + +im = image.imread('dolphin.gif') + +# Define properties of the "bouncing balls" +n = 1 +pos = ((20 * random_sample(n*2) - 10)*0.7).reshape(n, 2) +vel = (0.3 * normal(size=n*2)).reshape(n, 2) +#sizes = 100 * random_sample(n) + 100 + +# Colors where each row is (Red, Green, Blue, Alpha). Each can go +# from 0 to 1. Alpha is the transparency. +# colors = random_sample([n, 4]) + +# Draw all the circles and return an object ``circles`` that allows +# manipulation of the plotted circles. +# ax.circles = scatter(pos[:,0], pos[:,1], s=sizes, marker='*', c=colors) + +# Several kinds of forces +elastic = 1.0 +gravity = 0.03 +ffloat = 0.06 + +#ax.figdol = figimage(im,100,100,origin="lower") +#angle = 60 +#dolphin2=dolphin.set_transform(matplotlib.transforms.Affine2D().rotate_deg(angle)) + +# Plot the 'aquarium'. +ax.text(-1, 9, 'a poorly designed aquarium', fontsize=15,bbox={'facecolor':'yellow','alpha':0.5,'pad':10}) +ax.get_xaxis().set_visible(False) +ax.get_yaxis().set_visible(False) +x = np.linspace(-10, 10, 500) +ax.fill_between(x,-10,0,color='b', alpha=0.3) + +for i in range(200): + bounce = abs(pos) > 8 # Find balls that are outside walls + vel[bounce] = -elastic * vel[bounce] # Bounce if outside the walls + floating = pos[:,1] < 0 + vel[floating,1] += ffloat # Floating force + vel[:,1] -= gravity # Gravity force +# vel[floating,:] += random_sample(2) / 10.0 + pos = pos + vel + # Replace markers with dolphin, however I don't know how to draw more than one dolphin. + line, = ax.plot(pos[:,0]-1.4,pos[:,1]-1.0,"bo",mfc="None",mec="None",markersize=5) + line._transform_path() + path, affine = line._transformed_path.get_transformed_points_and_affine() + path = affine.transform_path(path) + for pixelPoint in path.vertices: + dol = fig.figimage(im,pixelPoint[0]-10,pixelPoint[1]-10,origin="lower", zorder=1) + draw() + dol.set_zorder(0) + +# Reference: +# http://stackoverflow.com/questions/2318288/how-to-use-custom-marker-with-plot diff --git a/site/_downloads/data.txt b/site/_downloads/data.txt new file mode 100644 index 0000000..39cd26c --- /dev/null +++ b/site/_downloads/data.txt @@ -0,0 +1,10 @@ +RAJ DEJ Jmag e_Jmag +2000 (deg) 2000 (deg) 2MASS (mag) (mag) +---------- ---------- ----------------- ------ ------ +010.684737 +41.269035 00424433+4116085 9.453 0.052 +010.683469 +41.268585 00424403+4116069 9.321 0.022 +010.685657 +41.269550 00424455+4116103 10.773 0.069 +010.686026 +41.269226 00424464+4116092 9.299 0.063 +010.683465 +41.269676 00424403+4116108 11.507 0.056 +010.686015 +41.269630 00424464+4116106 9.399 0.045 +010.685270 +41.267124 00424446+4116016 12.070 0.035 diff --git a/site/_downloads/files-excercise.tar.gz b/site/_downloads/files-excercise.tar.gz new file mode 100644 index 0000000..627f8d3 Binary files /dev/null and b/site/_downloads/files-excercise.tar.gz differ diff --git a/site/_downloads/image2.fits b/site/_downloads/image2.fits new file mode 100644 index 0000000..733985b --- /dev/null +++ b/site/_downloads/image2.fits @@ -0,0 +1,75 @@ +SIMPLE = T / file does conform to FITS standard BITPIX = 16 / number of bits per data pixel NAXIS = 2 / number of data axes NAXIS1 = 261 / length of data axis NAXIS2 = 216 / length of data axis EXTEND = T / FITS dataset may contain extensions COMMENT FITS (Flexible Image Transport System) format is defined in 'AstronomyCOMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H HDUNAME = 'EVENTS_IMAGE' / ASCDM block name LONGSTRN= 'OGIP 1.0' / The HEASARC Long String Convention may be used.COMMENT This FITS file may contain long string keyword values that are COMMENT continued over multiple keywords. The HEASARC convention uses the & COMMENT character at the end of each substring which is then continued COMMENT on the next keyword which has the name CONTINUE. HDUCLASS= 'OGIP ' HDUCLAS1= 'EVENTS ' HDUCLAS2= 'ALL ' ORIGIN = 'ASC ' / Source of FITS file CREATOR = 'cxc - Version CIAO 2.0b' / tool that created this output REVISION= 1 ASCDSVER= 'R4CU5UPD9' / ASCDS version number CHECKSUM= 'ZiOcaiOZTiObZiOZ' / HDU checksum updated 2004-05-28T14:55:43 DATASUM = '1058160410' / data unit checksum updated 2004-05-28T14:55:43 DATE = '2000-09-12T17:37:08' / Date and time of file creation DATE-OBS= '2000-09-02T01:10:14' / Date and time of observation start DATE-END= '2000-09-02T03:51:22' / Date and time of observation stop TIMESYS = 'TT ' / Time system MJDREF = 5.0814000000000E+04 / MJD zero point for times TIMEZERO= 0.0000000000000E+00 / Clock correction TIMEUNIT= 's ' / Time unit TIMEREF = 'LOCAL ' / Time reference (barycenter/local) TASSIGN = 'SATELLITE' / Time assigned by clock CLOCKAPP= T / default TIERRELA= 1.0000000000000E-09 / default TIERABSO= 1.0000000000000E-03 / default TIMVERSN= 'ASC-FITS-2' / Timing system definition TSTART = 8.4244214754698E+07 / Observation start time TSTOP = 8.4253882042561E+07 / Observation end time TIMEPIXR= 5.0000000000000E-01 / default TIMEDEL = 3.2410400000000E+00 / Time resolution of data (in seconds) MISSION = 'AXAF ' / Mission TELESCOP= 'CHANDRA ' / Telescope INSTRUME= 'ACIS ' / Instrument DETNAM = 'ACIS-012367' / Detector GRATING = 'NONE ' / Grating OBJECT = 'G21.5-0.9' / Source name TITLE = 'HRC RESPONSE TO CONTINUUM SOURCE.' / Proposal title OBSERVER= 'DR. AXAF CALIBRATION' / Principal investigator OBS_ID = '1838 ' / Observation id SEQ_NUM = '590218 ' / Sequence number SIM_X = -6.8282252473119E-01 / SIM focus pos (mm) SIM_Y = 0.0000000000000E+00 / SIM orthogonal axis pos (mm) SIM_Z = -1.8720586009295E+02 / SIM translation stage pos (mm) DEFOCUS = 1.4449365687057E-03 / SIM defocus (mm) FOC_LEN = 1.0061620000000E+04 / HRMA focal length (mm) OBS_MODE= 'POINTING' / Observation mode DATAMODE= 'FAINT ' / Data mode READMODE= 'TIMED ' / Read mode CYCLE = 'P ' / events from which exps? Prim/Second/Both RA_NOM = 2.7838604502313E+02 / Nominal RA DEC_NOM = -1.0589913302866E+01 / Nominal Dec ROLL_NOM= 2.6680742396206E+02 / Nominal Roll RA_TARG = 2.7838958300000E+02 / Observer's specified target RA DEC_TARG= -1.0568528000000E+01 / Observer's specified target Dec EQUINOX = 2.0000000000000E+03 / default RADECSYS= 'ICRS ' / default DATACLAS= 'OBSERVED' / default HISTNUM = 174 HISTORY TOOL :ade ASC00001HISTORY PARM :infile=/dsops/ap/sdp/opus/prs_run/tmp//TP_ADE____0842166ASC00002HISTORY CONT :38n110/input/acisf084244360N001_SR0.strip ASC00003HISTORY PARM :template=/vobs/ASC_DR_TLM/src/dr/tlm/template_dir/acis_sASC00004HISTORY CONT :trip_file_info.dat@@/main/2 ASC00005HISTORY PARM :template=/vobs/ASC_DR_TLM/src/dr/tlm/template_dir/acis_fASC00006HISTORY CONT :ile_info.dat@@/main/12 ASC00007HISTORY PARM :template=/vobs/ASC_DR_TLM/src/dr/tlm/template_dir/acis_cASC00008HISTORY CONT :onfig_file.dat@@/main/2 ASC00009HISTORY PARM :template=/vobs/ASC_DR_TLM/src/dr/tlm/template_dir/acis_gASC00010HISTORY CONT :roup_info.dat@@/main/12 ASC00011HISTORY PARM :template=/vobs/ASC_DR_TLM/src/dr/tlm/template_dir/acis_dASC00012HISTORY CONT :p_info.dat@@/main/19 ASC00013HISTORY PARM :template=/vobs/ASC_DR_TLM/src/dr/tlm/template_dir/acis_cASC00014HISTORY CONT :ommon_dp_info.dat@@/main/9 ASC00015HISTORY TOOL :acis_format_events 2000-09-03T01:21:18 ASC00001HISTORY PARM :infile=@/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230ASC00002HISTORY CONT :215n485/input/acisf01838_000N001_evt0.lis ASC00003HISTORY STCK :/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230215n485/ASC00004HISTORY CONT :input/acisf084245776N001_0_evt0.fits[time=84244214.75469ASC00005HISTORY CONT :80:84253882.0425610] ASC00006HISTORY STCK :/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230215n485/ASC00007HISTORY CONT :input/acisf084245776N001_1_evt0.fits[time=84244214.75469ASC00008HISTORY CONT :80:84253882.0425610] ASC00009HISTORY STCK :/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230215n485/ASC00010HISTORY CONT :input/acisf084245776N001_2_evt0.fits[time=84244214.75469ASC00011HISTORY CONT :80:84253882.0425610] ASC00012HISTORY STCK :/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230215n485/ASC00013HISTORY CONT :input/acisf084245776N001_3_evt0.fits[time=84244214.75469ASC00014HISTORY CONT :80:84253882.0425610] ASC00015HISTORY STCK :/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230215n485/ASC00016HISTORY CONT :input/acisf084245776N001_4_evt0.fits[time=84244214.75469ASC00017HISTORY CONT :80:84253882.0425610] ASC00018HISTORY STCK :/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230215n485/ASC00019HISTORY CONT :input/acisf084245776N001_5_evt0.fits[time=84244214.75469ASC00020HISTORY CONT :80:84253882.0425610] ASC00021HISTORY PARM :biasfile=@/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_0842ASC00022HISTORY CONT :30215n485/input/acisf01838_000N001_bias0.lis ASC00023HISTORY STCK :/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230215n485/ASC00024HISTORY CONT :input/acisf084244478N001_0_bias0.fits ASC00025HISTORY STCK :/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230215n485/ASC00026HISTORY CONT :input/acisf084244478N001_1_bias0.fits ASC00027HISTORY STCK :/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230215n485/ASC00028HISTORY CONT :input/acisf084244478N001_2_bias0.fits ASC00029HISTORY STCK :/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230215n485/ASC00030HISTORY CONT :input/acisf084244478N001_3_bias0.fits ASC00031HISTORY STCK :/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230215n485/ASC00032HISTORY CONT :input/acisf084244478N001_4_bias0.fits ASC00033HISTORY STCK :/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230215n485/ASC00034HISTORY CONT :input/acisf084244478N001_5_bias0.fits ASC00035HISTORY PARM :exrfile=@/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_08423ASC00036HISTORY CONT :0215n485/input/acisf01838_000N001_exr0.lis ASC00037HISTORY STCK :/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230215n485/ASC00038HISTORY CONT :input/acisf084245776N001_0_exr0.fits[time=84244214.75469ASC00039HISTORY CONT :80:84253882.0425610] ASC00040HISTORY STCK :/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230215n485/ASC00041HISTORY CONT :input/acisf084245776N001_1_exr0.fits[time=84244214.75469ASC00042HISTORY CONT :80:84253882.0425610] ASC00043HISTORY STCK :/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230215n485/ASC00044HISTORY CONT :input/acisf084245776N001_2_exr0.fits[time=84244214.75469ASC00045HISTORY CONT :80:84253882.0425610] ASC00046HISTORY STCK :/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230215n485/ASC00047HISTORY CONT :input/acisf084245776N001_3_exr0.fits[time=84244214.75469ASC00048HISTORY CONT :80:84253882.0425610] ASC00049HISTORY STCK :/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230215n485/ASC00050HISTORY CONT :input/acisf084245776N001_4_exr0.fits[time=84244214.75469ASC00051HISTORY CONT :80:84253882.0425610] ASC00052HISTORY STCK :/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230215n485/ASC00053HISTORY CONT :input/acisf084245776N001_5_exr0.fits[time=84244214.75469ASC00054HISTORY CONT :80:84253882.0425610] ASC00055HISTORY PARM :outfile=/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230ASC00056HISTORY CONT :215n485/output/acisf01838_000N001_epr1.fits ASC00057HISTORY PARM :outbias=/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230ASC00058HISTORY CONT :215n485/output/acisf01838_000N001 ASC00059HISTORY PARM :expstatsfile=/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_0ASC00060HISTORY CONT :84230215n485/output/acisf01838_000N001_stat1.fits ASC00061HISTORY PARM :obsfile=/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230ASC00062HISTORY CONT :215n485/input/axaff01838_000N001_obs0a.par ASC00063HISTORY PARM :logfile=/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230ASC00064HISTORY CONT :215n485/output/acis_format_events.log ASC00065HISTORY PARM :bias_correct=yes ASC00066HISTORY PARM :oc_correct=yes ASC00067HISTORY PARM :min_dlta_oc=-200 ASC00068HISTORY PARM :max_dlta_oc=200 ASC00069HISTORY PARM :eventdef={d:time,i:expno,s:chipx,s:chipy,s:phas,s:ccd_idASC00070HISTORY CONT :,s:node_id,x:status} ASC00071HISTORY PARM :telev1={d:time,i:expno,s:chipx,s:chipy,s:phas,s:ccd_id,sASC00072HISTORY CONT ::node_id,x:status} ASC00073HISTORY PARM :vflev1={d:time,i:expno,s:chipx,s:chipy,s:phas,s:ccd_id,sASC00074STARTMJF= 125659 / Major frame ctr value at start of data STARTMNF= 3 / Start minor frame ctr at start of data STOPMJF = 125945 / Major frame ctr value at stop of data STOPMNF = 41 / Stop minor frame ctr at end of data HISTORY TOOL :ade ASC00001HISTORY PARM :infile=/dsops/ap/sdp/opus/prs_run/tmp//TP_ADE____0842166ASC00002HISTORY CONT :38n110/input/acisf084244360N001_SR0.strip ASC00003HISTORY PARM :template=/vobs/ASC_DR_TLM/src/dr/tlm/template_dir/acis_sASC00004HISTORY CONT :trip_file_info.dat@@/main/2 ASC00005HISTORY PARM :template=/vobs/ASC_DR_TLM/src/dr/tlm/template_dir/acis_fASC00006HISTORY CONT :ile_info.dat@@/main/12 ASC00007HISTORY PARM :template=/vobs/ASC_DR_TLM/src/dr/tlm/template_dir/acis_cASC00008HISTORY CONT :onfig_file.dat@@/main/2 ASC00009HISTORY PARM :template=/vobs/ASC_DR_TLM/src/dr/tlm/template_dir/acis_gASC00010HISTORY CONT :roup_info.dat@@/main/12 ASC00011HISTORY PARM :template=/vobs/ASC_DR_TLM/src/dr/tlm/template_dir/acis_dASC00012HISTORY CONT :p_info.dat@@/main/19 ASC00013HISTORY PARM :template=/vobs/ASC_DR_TLM/src/dr/tlm/template_dir/acis_cASC00014HISTORY CONT :ommon_dp_info.dat@@/main/9 ASC00015HISTORY TOOL :acis_format_events 2000-09-03T01:21:18 ASC00001HISTORY PARM :infile=@/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230ASC00002HISTORY CONT :215n485/input/acisf01838_000N001_evt0.lis ASC00003HISTORY STCK :/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230215n485/ASC00004HISTORY CONT :input/acisf084245776N001_0_evt0.fits[time=84244214.75469ASC00005HISTORY CONT :80:84253882.0425610] ASC00006HISTORY STCK :/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230215n485/ASC00007HISTORY CONT :input/acisf084245776N001_1_evt0.fits[time=84244214.75469ASC00008HISTORY CONT :80:84253882.0425610] ASC00009HISTORY STCK :/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230215n485/ASC00010HISTORY CONT :input/acisf084245776N001_2_evt0.fits[time=84244214.75469ASC00011HISTORY CONT :80:84253882.0425610] ASC00012HISTORY STCK :/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230215n485/ASC00013HISTORY CONT :input/acisf084245776N001_3_evt0.fits[time=84244214.75469ASC00014HISTORY CONT :80:84253882.0425610] ASC00015HISTORY STCK :/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230215n485/ASC00016HISTORY CONT :input/acisf084245776N001_4_evt0.fits[time=84244214.75469ASC00017HISTORY CONT :80:84253882.0425610] ASC00018HISTORY STCK :/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230215n485/ASC00019HISTORY CONT :input/acisf084245776N001_5_evt0.fits[time=84244214.75469ASC00020HISTORY CONT :80:84253882.0425610] ASC00021HISTORY PARM :biasfile=@/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_0842ASC00022HISTORY CONT :30215n485/input/acisf01838_000N001_bias0.lis ASC00023HISTORY STCK :/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230215n485/ASC00024HISTORY CONT :input/acisf084244478N001_0_bias0.fits ASC00025HISTORY STCK :/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230215n485/ASC00026HISTORY CONT :input/acisf084244478N001_1_bias0.fits ASC00027HISTORY STCK :/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230215n485/ASC00028HISTORY CONT :input/acisf084244478N001_2_bias0.fits ASC00029HISTORY STCK :/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230215n485/ASC00030HISTORY CONT :input/acisf084244478N001_3_bias0.fits ASC00031HISTORY STCK :/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230215n485/ASC00032HISTORY CONT :input/acisf084244478N001_4_bias0.fits ASC00033HISTORY STCK :/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230215n485/ASC00034HISTORY CONT :input/acisf084244478N001_5_bias0.fits ASC00035HISTORY PARM :exrfile=@/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_08423ASC00036HISTORY CONT :0215n485/input/acisf01838_000N001_exr0.lis ASC00037HISTORY STCK :/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230215n485/ASC00038HISTORY CONT :input/acisf084245776N001_0_exr0.fits[time=84244214.75469ASC00039HISTORY CONT :80:84253882.0425610] ASC00040HISTORY STCK :/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230215n485/ASC00041HISTORY CONT :input/acisf084245776N001_1_exr0.fits[time=84244214.75469ASC00042HISTORY CONT :80:84253882.0425610] ASC00043HISTORY STCK :/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230215n485/ASC00044HISTORY CONT :input/acisf084245776N001_2_exr0.fits[time=84244214.75469ASC00045HISTORY CONT :80:84253882.0425610] ASC00046HISTORY STCK :/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230215n485/ASC00047HISTORY CONT :input/acisf084245776N001_3_exr0.fits[time=84244214.75469ASC00048HISTORY CONT :80:84253882.0425610] ASC00049HISTORY STCK :/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230215n485/ASC00050HISTORY CONT :input/acisf084245776N001_4_exr0.fits[time=84244214.75469ASC00051HISTORY CONT :80:84253882.0425610] ASC00052HISTORY STCK :/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230215n485/ASC00053HISTORY CONT :input/acisf084245776N001_5_exr0.fits[time=84244214.75469ASC00054HISTORY CONT :80:84253882.0425610] ASC00055HISTORY PARM :outfile=/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230ASC00056HISTORY CONT :215n485/output/acisf01838_000N001_epr1.fits ASC00057HISTORY PARM :outbias=/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230ASC00058HISTORY CONT :215n485/output/acisf01838_000N001 ASC00059HISTORY PARM :expstatsfile=/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_0ASC00060HISTORY CONT :84230215n485/output/acisf01838_000N001_stat1.fits ASC00061HISTORY PARM :obsfile=/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230ASC00062HISTORY CONT :215n485/input/axaff01838_000N001_obs0a.par ASC00063HISTORY PARM :logfile=/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230ASC00064HISTORY CONT :215n485/output/acis_format_events.log ASC00065HISTORY PARM :bias_correct=yes ASC00066HISTORY PARM :oc_correct=yes ASC00067HISTORY PARM :min_dlta_oc=-200 ASC00068HISTORY PARM :max_dlta_oc=200 ASC00069HISTORY PARM :eventdef={d:time,i:expno,s:chipx,s:chipy,s:phas,s:ccd_idASC00070HISTORY CONT :,s:node_id,x:status} ASC00071HISTORY PARM :telev1={d:time,i:expno,s:chipx,s:chipy,s:phas,s:ccd_id,sASC00072HISTORY CONT ::node_id,x:status} ASC00073HISTORY PARM :vflev1={d:time,i:expno,s:chipx,s:chipy,s:phas,s:ccd_id,sASC00074ACSYS1 = 'CHIP:AXAF-ACIS-1.0' / reference for chip coord system ACSYS2 = 'TDET:AXAF-ACIS-2.2' / reference for tiled detector coord system ACSYS3 = 'DET:ASC-FP-1.1' / reference for focal plane coord system ACSYS4 = 'SKY:ASC-FP-1.1' / reference for sky coord system GAINFILE= '/data/CALDB/data/chandra/acis/bcf/gain/acisD2000-01-29gainN0001.fits'GRD_FILE= '/home/ascds/DS.ap/data/asca_grades.fits' CORNERS = 2 / num adjacent side pix > threshold to include coGRADESYS= 'ASCA ' / grade system: ASCA, ACIS, or USER BPIXFILE= '/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230215n485/output/acis&'CONTINUE 'f01838_000N001_bpix1.fits' BIASFIL0= '/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230215n485/input/acisf&'CONTINUE '084244478N001_0_bias0.fits' BIASFIL1= '/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230215n485/input/acisf&'CONTINUE '084244478N001_5_bias0.fits' BIASFIL2= '/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230215n485/input/acisf&'CONTINUE '084244478N001_4_bias0.fits' BIASFIL3= '/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230215n485/input/acisf&'CONTINUE '084244478N001_3_bias0.fits' BIASFIL6= '/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230215n485/input/acisf&'CONTINUE '084244478N001_2_bias0.fits' BIASFIL7= '/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230215n485/input/acisf&'CONTINUE '084244478N001_1_bias0.fits' FSW_VERS= 30 / ACIS flight software version number HISTORY TOOL :acis_process_events 2000-09-03T01:22:55 ASC00090HISTORY PARM :infile=/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_0842302ASC00091HISTORY CONT :15n485/output/acisf01838_000N001_tim1.fits ASC00092HISTORY PARM :outfile=/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230ASC00093HISTORY CONT :215n485/output/acisf01838_000N001_evt1.fits ASC00094HISTORY PARM :acaofffile=@/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_08ASC00095HISTORY CONT :4230215n485/input/pcadf01838_000N001_asol1.lis ASC00096HISTORY STCK :/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230215n485/ASC00097HISTORY CONT :input/pcadf084244404N001_asol1.fits[time=84244214.754698ASC00098HISTORY CONT :0:84253882.0425610] ASC00099HISTORY PARM :alignmentfile=@/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1ASC00100HISTORY CONT :_084230215n485/input/pcadf01838_000N001_asol1.lis ASC00101HISTORY STCK :/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230215n485/ASC00102HISTORY CONT :input/pcadf084244404N001_asol1.fits[time=84244214.754698ASC00103HISTORY CONT :0:84253882.0425610] ASC00104HISTORY PARM :obsfile=/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230ASC00105HISTORY CONT :215n485/input/axaff01838_000N001_obs0a.par ASC00106HISTORY PARM :logfile=/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230ASC00107HISTORY CONT :215n485/output/acis_process_events.log ASC00108HISTORY PARM :gradefile=/home/ascds/DS.ap/data/asca_grades.fits ASC00109HISTORY PARM :gainfile=/data/CALDB/data/chandra/acis/bcf/gain/acisD200ASC00110HISTORY CONT :0-01-29gainN0001.fits ASC00111HISTORY PARM :badpixfile=/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084ASC00112HISTORY CONT :230215n485/output/acisf01838_000N001_bpix1.fits ASC00113HISTORY PARM :threshfile=NONE ASC00114HISTORY PARM :eventdef={d:time,s:ccd_id,s:node_id,i:expno,s:chip,s:tdeASC00115HISTORY CONT :t,f:det,f:sky,s:phas,l:pha,f:energy,l:pi,s:fltgrade,s:grASC00116HISTORY CONT :ade,x:status} ASC00117HISTORY PARM :doevtgrade=yes ASC00118HISTORY PARM :spthresh=13 ASC00119HISTORY PARM :time_offset=0 ASC00120HISTORY PARM :docentroid=no ASC00121HISTORY PARM :calculate_pi=yes ASC00122HISTORY PARM :pi_bin_width=14.6 ASC00123HISTORY PARM :pi_num_bins=1024 ASC00124HISTORY PARM :cc_chipy=393.1330530776004 ASC00125HISTORY PARM :tstart=TSTART ASC00126HISTORY PARM :tstop=TSTOP ASC00127HISTORY PARM :clobber=no ASC00128HISTORY PARM :verbose=0 ASC00129HISTORY PARM :stop=sky ASC00130HISTORY PARM :instrume=acis ASC00131HISTORY PARM :rand_seed=1 ASC00132HISTORY PARM :rand_pix_size=0.5 ASC00133HISTORY PARM :stdlev1={d:time,s:ccd_id,s:node_id,i:expno,s:chip,s:tdetASC00134HISTORY CONT :,f:det,f:sky,s:phas,l:pha,f:energy,l:pi,s:fltgrade,s:graASC00135HISTORY CONT :de,x:status} ASC00136HISTORY PARM :grdlev1={d:time,s:ccd_id,s:node_id,i:expno,s:chip,s:tdetASC00137HISTORY CONT :,f:det,f:sky,l:pha,s:corn_pha,f:energy,l:pi,s:fltgrade,sASC00138HISTORY CONT ::grade,x:status} ASC00139HISTORY PARM :cclev1={d:time,s:ccd_id,s:node_id,i:expno,s:chip,s:tdet,ASC00140HISTORY CONT :f:det,f:sky,f:sky_1d,s:phas,l:pha,f:energy,l:pi,s:fltgraASC00141HISTORY CONT :de,s:grade,x:status} ASC00142HISTORY PARM :ccgrdlev1={d:time,s:ccd_id,s:node_id,i:expno,s:chip,s:tdASC00143HISTORY CONT :et,f:det,f:sky,f:sky_1d,l:pha,f:energy,l:pi,s:fltgrade,sASC00144HISTORY CONT ::grade,x:status} ASC00145ASPTYPE = 'KALMAN ' HISTORY TOOL :acis_detect_afterglow 2000-09-03T01:25:34 ASC00146HISTORY PARM :infile=/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_0842302ASC00147HISTORY CONT :15n485/output/acisf01838_000N001_tmp_evt1.fits ASC00148HISTORY PARM :outfile=/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230ASC00149HISTORY CONT :215n485/output/acisf01838_000N001_evt1.fits ASC00150HISTORY PARM :logfile=stdout ASC00151HISTORY PARM :pha_rules=LTEQ ASC00152HISTORY PARM :fltgrade_rules=NONE ASC00153HISTORY PARM :maxchain=16 ASC00154HISTORY PARM :verbose=0 ASC00155HISTORY PARM :clobber=no ASC00156FIRSTROW= 1 / Index of first row of CCD (sub)array readout NROWS = 1023 / Number of rows in (sub)array readout EXPTIME = 3.2000000000000E+00 / [s] commanded exposure time (s) ONTIME0 = 7.9552000074089E+03 / [s] [s] Sum of GTIs LIVTIME0= 7.8544664748687E+03 / [s] [s] Ontime multiplied by DTCOR EXPOSUR0= 7.8544664748687E+03 / [s] [s] Total exposure time, with all known corONTIME1 = 7.9520000074059E+03 / [s] [s] Sum of GTIs LIVTIME1= 7.8513069951925E+03 / [s] [s] Ontime multiplied by DTCOR EXPOSUR1= 7.8513069951925E+03 / [s] [s] Total exposure time, with all known corONTIME2 = 7.9552000074089E+03 / [s] [s] Sum of GTIs LIVTIME2= 7.8544664748687E+03 / [s] [s] Ontime multiplied by DTCOR EXPOSUR2= 7.8544664748687E+03 / [s] [s] Total exposure time, with all known corONTIME3 = 7.9552000074089E+03 / [s] [s] Sum of GTIs LIVTIME3= 7.8544664748687E+03 / [s] [s] Ontime multiplied by DTCOR EXPOSUR3= 7.8544664748687E+03 / [s] [s] Total exposure time, with all known corONTIME6 = 7.9552000074089E+03 / [s] [s] Sum of GTIs LIVTIME6= 7.8544664748687E+03 / [s] [s] Ontime multiplied by DTCOR EXPOSUR6= 7.8544664748687E+03 / [s] [s] Total exposure time, with all known corONTIME7 = 7.9552000074089E+03 / [s] [s] Sum of GTIs LIVTIME7= 7.8544664748687E+03 / [s] [s] Ontime multiplied by DTCOR EXPOSUR7= 7.8544664748687E+03 / [s] [s] Total exposure time, with all known corONTIME = 7.9552000074089E+03 / [s] [s] Sum of GTIs LIVETIME= 7.8544664748687E+03 / [s] [s] Ontime multiplied by DTCOR EXPOSURE= 7.8544664748687E+03 / [s] [s] Total exposure time, with all known corDTCOR = 9.8733739787229E-01 / Dead time correction HISTORY TOOL :acis_build_chip_gti 2000-09-03T01:26:41 ASC00157HISTORY PARM :infile=/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_0842302ASC00158HISTORY CONT :15n485/output/acisf01838_000N001_stat1.fits ASC00159HISTORY PARM :outfile=/dsops/ap/sdp/opus/prs_run/tmp//ACIS_F_L1_084230ASC00160HISTORY CONT :215n485/output/acisf01838_000N001_evt1.fits ASC00161CALDBVER= ' 1.4 ' HISTORY TOOL :dmmerge 2000-09-12T17:37:08 ASC00162HISTORY PARM :infile= File # 1 : /dsops/ap/sdp/opus/prs_run/tmp//ACIS_ASC00163HISTORY CONT :L2___084232105n500/input/acisf01838_000N001_evt1.fits[@/ASC00164HISTORY CONT :dsops/ap/sdp/opus/prs_run/tmp//ACIS_L2___084232105n500/iASC00165HISTORY CONT :nput/acisf01838_000N001_flt1.fits][cols !PHAS,!CORN_PHA]ASC00166CONTENT = 'EVT2 ' HDUCLAS3= ' ' HISTORY dmcopy /dsops/ap/sdp/opus/prs_run/tmp//ACIS_L2___084232105n500/output/tmHISTORY p_acisf01838N001_evt2.fits[status=0,grade=0,2,3,4,6] /dsops/ap/sdp/opus/HISTORY prs_run/tmp//ACIS_L2___084232105n500/output/acisf01838N001_evt2.fits kerHISTORY nel=FITS DSTYP1 = 'time ' / DM Keyword: Descriptor name. DSVAL1 = 'TABLE ' / [s] DSFORM1 = 'D ' / DM Keyword: Descriptor datatype. DSUNIT1 = 's ' / DM Keyword: Descriptor unit. DSREF1 = ':GTI7 ' 2DSREF1 = ':GTI0 ' 3DSREF1 = ':GTI1 ' 4DSREF1 = ':GTI2 ' 5DSREF1 = ':GTI3 ' 6DSREF1 = ':GTI6 ' DSTYP2 = 'ccd_id ' / DM Keyword: Descriptor name. DSVAL2 = '7:7 ' / DM Keyword: Descriptor value. DSFORM2 = 'I ' / DM Keyword: Descriptor datatype. 2DSVAL2 = '0:0 ' / 3DSVAL2 = '1:1 ' / 4DSVAL2 = '2:2 ' / 5DSVAL2 = '3:3 ' / 6DSVAL2 = '6:6 ' / DSTYP3 = 'node_id ' / DM Keyword: Descriptor name. DSVAL3 = '0:3 ' / DM Keyword: Descriptor value. DSFORM3 = 'I ' / DM Keyword: Descriptor datatype. 2DSVAL3 = '0:3 ' / 3DSVAL3 = '0:3 ' / 4DSVAL3 = '0:3 ' / 5DSVAL3 = '0:3 ' / 6DSVAL3 = '0:3 ' / DSTYP4 = 'expno ' / DM Keyword: Descriptor name. DSVAL4 = '0:2147483647' / DM Keyword: Descriptor value. DSFORM4 = 'J ' / DM Keyword: Descriptor datatype. 2DSVAL4 = '0:2147483647' / 3DSVAL4 = '0:2147483647' / 4DSVAL4 = '0:2147483647' / 5DSVAL4 = '0:2147483647' / 6DSVAL4 = '0:2147483647' / DSTYP5 = 'chipx ' / DM Keyword: Descriptor name. DSVAL5 = '1:1024 ' / [pixel] DSFORM5 = 'I ' / DM Keyword: Descriptor datatype. DSUNIT5 = 'pixel ' / DM Keyword: Descriptor unit. DSTYP6 = 'chipy ' / DM Keyword: Descriptor name. DSVAL6 = '1:1024 ' / [pixel] DSFORM6 = 'I ' / DM Keyword: Descriptor datatype. DSUNIT6 = 'pixel ' / DM Keyword: Descriptor unit. 2DSVAL5 = '1:1024 ' / [pixel] 2DSVAL6 = '1:1024 ' / [pixel] 3DSVAL5 = '1:1024 ' / [pixel] 3DSVAL6 = '1:1024 ' / [pixel] 4DSVAL5 = '1:1024 ' / [pixel] 4DSVAL6 = '1:1024 ' / [pixel] 5DSVAL5 = '1:1024 ' / [pixel] 5DSVAL6 = '1:1024 ' / [pixel] 6DSVAL5 = '1:1024 ' / [pixel] 6DSVAL6 = '1:1024 ' / [pixel] DSTYP7 = 'tdetx ' / DM Keyword: Descriptor name. DSVAL7 = '1:8192 ' / [pixel] DSFORM7 = 'I ' / DM Keyword: Descriptor datatype. DSUNIT7 = 'pixel ' / DM Keyword: Descriptor unit. DSTYP8 = 'tdety ' / DM Keyword: Descriptor name. DSVAL8 = '1:8192 ' / [pixel] DSFORM8 = 'I ' / DM Keyword: Descriptor datatype. DSUNIT8 = 'pixel ' / DM Keyword: Descriptor unit. 2DSVAL7 = '1:8192 ' / [pixel] 2DSVAL8 = '1:8192 ' / [pixel] 3DSVAL7 = '1:8192 ' / [pixel] 3DSVAL8 = '1:8192 ' / [pixel] 4DSVAL7 = '1:8192 ' / [pixel] 4DSVAL8 = '1:8192 ' / [pixel] 5DSVAL7 = '1:8192 ' / [pixel] 5DSVAL8 = '1:8192 ' / [pixel] 6DSVAL7 = '1:8192 ' / [pixel] 6DSVAL8 = '1:8192 ' / [pixel] DSTYP9 = 'detx ' / DM Keyword: Descriptor name. DSVAL9 = '0.5:8192.5' / [pixel] DSFORM9 = 'E ' / DM Keyword: Descriptor datatype. DSUNIT9 = 'pixel ' / DM Keyword: Descriptor unit. DSTYP10 = 'dety ' / DM Keyword: Descriptor name. DSVAL10 = '0.5:8192.5' / [pixel] DSFORM10= 'E ' / DM Keyword: Descriptor datatype. DSUNIT10= 'pixel ' / DM Keyword: Descriptor unit. 2DSVAL9 = '0.5:8192.5' / [pixel] 2DSVAL10= '0.5:8192.5' / [pixel] 3DSVAL9 = '0.5:8192.5' / [pixel] 3DSVAL10= '0.5:8192.5' / [pixel] 4DSVAL9 = '0.5:8192.5' / [pixel] 4DSVAL10= '0.5:8192.5' / [pixel] 5DSVAL9 = '0.5:8192.5' / [pixel] 5DSVAL10= '0.5:8192.5' / [pixel] 6DSVAL9 = '0.5:8192.5' / [pixel] 6DSVAL10= '0.5:8192.5' / [pixel] DSTYP11 = 'sky(x,y)' / DM Keyword: Descriptor name. DSVAL11 = 'Box(4059.25,4235.75,521.5,431.5)' / [pixel] DSFORM11= 'E ' / DM Keyword: Descriptor datatype. DSUNIT11= 'pixel ' / DM Keyword: Descriptor unit. 2DSVAL11= 'Box(4059.25,4235.75,521.5,431.5)' / [pixel] 3DSVAL11= 'Box(4059.25,4235.75,521.5,431.5)' / [pixel] 4DSVAL11= 'Box(4059.25,4235.75,521.5,431.5)' / [pixel] 5DSVAL11= 'Box(4059.25,4235.75,521.5,431.5)' / [pixel] 6DSVAL11= 'Box(4059.25,4235.75,521.5,431.5)' / [pixel] DSTYP12 = 'pha ' / DM Keyword: Descriptor name. DSVAL12 = '0:36855 ' / [adu] DSFORM12= 'J ' / DM Keyword: Descriptor datatype. DSUNIT12= 'adu ' / DM Keyword: Descriptor unit. 2DSVAL12= '0:36855 ' / [adu] 3DSVAL12= '0:36855 ' / [adu] 4DSVAL12= '0:36855 ' / [adu] 5DSVAL12= '0:36855 ' / [adu] 6DSVAL12= '0:36855 ' / [adu] DSTYP13 = 'energy ' / DM Keyword: Descriptor name. DSVAL13 = '0:1000000' / [eV] DSFORM13= 'E ' / DM Keyword: Descriptor datatype. DSUNIT13= 'eV ' / DM Keyword: Descriptor unit. 2DSVAL13= '0:1000000' / [eV] 3DSVAL13= '0:1000000' / [eV] 4DSVAL13= '0:1000000' / [eV] 5DSVAL13= '0:1000000' / [eV] 6DSVAL13= '0:1000000' / [eV] DSTYP14 = 'pi ' / DM Keyword: Descriptor name. DSVAL14 = '1:1024 ' / [chan] DSFORM14= 'J ' / DM Keyword: Descriptor datatype. DSUNIT14= 'chan ' / DM Keyword: Descriptor unit. 2DSVAL14= '1:1024 ' / [chan] 3DSVAL14= '1:1024 ' / [chan] 4DSVAL14= '1:1024 ' / [chan] 5DSVAL14= '1:1024 ' / [chan] 6DSVAL14= '1:1024 ' / [chan] DSTYP15 = 'fltgrade' / DM Keyword: Descriptor name. DSVAL15 = '0:255 ' / DM Keyword: Descriptor value. DSFORM15= 'I ' / DM Keyword: Descriptor datatype. 2DSVAL15= '0:255 ' / 3DSVAL15= '0:255 ' / 4DSVAL15= '0:255 ' / 5DSVAL15= '0:255 ' / 6DSVAL15= '0:255 ' / DSTYP16 = 'grade ' / DM Keyword: Descriptor name. DSVAL16 = '0:0,2:2,3:3,4:4,6:6' / DM Keyword: Descriptor value. DSFORM16= 'I ' / DM Keyword: Descriptor datatype. 2DSVAL16= '0:0,2:2,3:3,4:4,6:6' / 3DSVAL16= '0:0,2:2,3:3,4:4,6:6' / 4DSVAL16= '0:0,2:2,3:3,4:4,6:6' / 5DSVAL16= '0:0,2:2,3:3,4:4,6:6' / 6DSVAL16= '0:0,2:2,3:3,4:4,6:6' / DSTYP17 = 'phas ' / DM Keyword: Descriptor name. DSVAL17 = '-4096:4095' / DM Keyword: Descriptor value. DSFORM17= 'I ' / DM Keyword: Descriptor datatype. 2DSVAL17= '-4096:4095' / 3DSVAL17= '-4096:4095' / 4DSVAL17= '-4096:4095' / 5DSVAL17= '-4096:4095' / 6DSVAL17= '-4096:4095' / MTYPE1 = 'sky ' / DM Keyword: Descriptor name. MFORM1 = 'x,y ' / [pixel] CTYPE1P = 'x ' / sky coordinates CRVAL1P = 3.7985000000000E+03 CRPIX1P = 5.0000000000000E-01 CDELT1P = 2.0000000000000E+00 WCSTY1P = 'PHYSICAL' LTV1 = -1.8987500000000E+03 LTM1_1 = 5.0000000000000E-01 CTYPE2P = 'y ' / sky coordinates CRVAL2P = 4.0195000000000E+03 CRPIX2P = 5.0000000000000E-01 CDELT2P = 2.0000000000000E+00 WCSTY2P = 'PHYSICAL' LTV2 = -2.0092500000000E+03 LTM2_2 = 5.0000000000000E-01 MTYPE2 = 'EQPOS ' / DM Keyword: Descriptor name. MFORM2 = 'RA,DEC ' / DM Keyword: Descriptor value. CTYPE1 = 'RA---TAN' CRVAL1 = 2.7838604502313E+02 CRPIX1 = 1.4950000000000E+02 CDELT1 = -2.7333333333334E-04 CTYPE2 = 'DEC--TAN' CRVAL2 = -1.0589913302866E+01 CRPIX2 = 3.9000000000000E+01 CDELT2 = 2.7333333333334E-04 HISTORY TOOL :dmcopy 2004-05-28T14:55:43 ASC00167HISTORY PARM :infile=1838/primary/acisf01838N001_evt2.fits.gz[sky=box(ASC00168HISTORY CONT :4059.25,4235.75,521.5,431.5)][bin x=::2,y=::2] ASC00169HISTORY PARM :outfile=image2.fits ASC00170HISTORY PARM :kernel=default ASC00171HISTORY PARM :option= ASC00172HISTORY PARM :verbose=0 ASC00173HISTORY PARM :clobber=no ASC00174END  +!%  + +     + +  +         +      +  + +       + +  +    +  +  +        +    +    +       + + + + +  +   +  +     +         +    +         %%&     +   +  "$,:B3+  +      .I%  + +   ,/ +       +]I)    +  + 1my:#       +  97-!          +  +    + +    +  +  +   +          +    +    +   +   +   +        + +      + +  +      +     + +    +    + +    + +    + +         +  +  +   +   +    XTENSION= 'BINTABLE' / binary table extension BITPIX = 8 / 8-bit bytes NAXIS = 2 / 2-dimensional binary table NAXIS1 = 16 / width of table in bytes NAXIS2 = 1 / number of rows in table PCOUNT = 0 / size of special data area GCOUNT = 1 / one data group (required keyword) TFIELDS = 2 / number of fields in each row EXTNAME = 'GTI ' / name of this binary table extension EXTVER = 7 HDUNAME = 'GTI7 ' / ASCDM block name TTYPE1 = 'START ' / S/C TT corresponding to mid-exposure TFORM1 = '1D ' / format of field TUNIT1 = 's ' TTYPE2 = 'STOP ' / S/C TT corresponding to mid-exposure TFORM2 = '1D ' / format of field TUNIT2 = 's ' MISSION = 'AXAF ' / Mission TELESCOP= 'CHANDRA ' / Telescope INSTRUME= 'ACIS ' / Instrument MJDREF = 5.0814000000000E+04 / MJD zero point for times TSTART = 8.4244214754698E+07 / Observation start time TSTOP = 8.4253882042561E+07 / Observation end time TIMESYS = 'TT ' / Time system TIMEUNIT= 's ' / Time unit CHECKSUM= 'ZdoOdanLZanLdanL' / HDU checksum updated 2004-05-28T14:55:43 DATASUM = '2677552283' / data unit checksum updated 2004-05-28T14:55:43 CCD_ID = 7 / CCD for this table END AgќApkzXTENSION= 'BINTABLE' / binary table extension BITPIX = 8 / 8-bit bytes NAXIS = 2 / 2-dimensional binary table NAXIS1 = 16 / width of table in bytes NAXIS2 = 1 / number of rows in table PCOUNT = 0 / size of special data area GCOUNT = 1 / one data group (required keyword) TFIELDS = 2 / number of fields in each row EXTNAME = 'GTI ' / name of this binary table extension EXTVER = 0 HDUNAME = 'GTI0 ' / ASCDM block name TTYPE1 = 'START ' / S/C TT corresponding to mid-exposure TFORM1 = '1D ' / format of field TUNIT1 = 's ' TTYPE2 = 'STOP ' / S/C TT corresponding to mid-exposure TFORM2 = '1D ' / format of field TUNIT2 = 's ' MISSION = 'AXAF ' / Mission TELESCOP= 'CHANDRA ' / Telescope INSTRUME= 'ACIS ' / Instrument MJDREF = 5.0814000000000E+04 / MJD zero point for times TSTART = 8.4244214754698E+07 / Observation start time TSTOP = 8.4253882042561E+07 / Observation end time TIMESYS = 'TT ' / Time system TIMEUNIT= 's ' / Time unit CHECKSUM= 'Zb4Pdb1NZb1Ndb1N' / HDU checksum updated 2004-05-28T14:55:43 DATASUM = '2677552283' / data unit checksum updated 2004-05-28T14:55:43 CCD_ID = 0 / CCD for this table END AgќApkzXTENSION= 'BINTABLE' / binary table extension BITPIX = 8 / 8-bit bytes NAXIS = 2 / 2-dimensional binary table NAXIS1 = 16 / width of table in bytes NAXIS2 = 2 / number of rows in table PCOUNT = 0 / size of special data area GCOUNT = 1 / one data group (required keyword) TFIELDS = 2 / number of fields in each row EXTNAME = 'GTI ' / name of this binary table extension EXTVER = 1 HDUNAME = 'GTI1 ' / ASCDM block name TTYPE1 = 'START ' / S/C TT corresponding to mid-exposure TFORM1 = '1D ' / format of field TUNIT1 = 's ' TTYPE2 = 'STOP ' / S/C TT corresponding to mid-exposure TFORM2 = '1D ' / format of field TUNIT2 = 's ' MISSION = 'AXAF ' / Mission TELESCOP= 'CHANDRA ' / Telescope INSTRUME= 'ACIS ' / Instrument MJDREF = 5.0814000000000E+04 / MJD zero point for times TSTART = 8.4244214754698E+07 / Observation start time TSTOP = 8.4253882042561E+07 / Observation end time TIMESYS = 'TT ' / Time system TIMEUNIT= 's ' / Time unit CHECKSUM= 'QArMT5oKQAoKQ5oK' / HDU checksum updated 2004-05-28T14:55:43 DATASUM = '1050691281' / data unit checksum updated 2004-05-28T14:55:43 CCD_ID = 1 / CCD for this table END AgќAAVYApkzXTENSION= 'BINTABLE' / binary table extension BITPIX = 8 / 8-bit bytes NAXIS = 2 / 2-dimensional binary table NAXIS1 = 16 / width of table in bytes NAXIS2 = 1 / number of rows in table PCOUNT = 0 / size of special data area GCOUNT = 1 / one data group (required keyword) TFIELDS = 2 / number of fields in each row EXTNAME = 'GTI ' / name of this binary table extension EXTVER = 2 HDUNAME = 'GTI2 ' / ASCDM block name TTYPE1 = 'START ' / S/C TT corresponding to mid-exposure TFORM1 = '1D ' / format of field TUNIT1 = 's ' TTYPE2 = 'STOP ' / S/C TT corresponding to mid-exposure TFORM2 = '1D ' / format of field TUNIT2 = 's ' MISSION = 'AXAF ' / Mission TELESCOP= 'CHANDRA ' / Telescope INSTRUME= 'ACIS ' / Instrument MJDREF = 5.0814000000000E+04 / MJD zero point for times TSTART = 8.4244214754698E+07 / Observation start time TSTOP = 8.4253882042561E+07 / Observation end time TIMESYS = 'TT ' / Time system TIMEUNIT= 's ' / Time unit CHECKSUM= 'Zb3Ndb0NZb0Ndb0N' / HDU checksum updated 2004-05-28T14:55:43 DATASUM = '2677552283' / data unit checksum updated 2004-05-28T14:55:43 CCD_ID = 2 / CCD for this table END AgќApkzXTENSION= 'BINTABLE' / binary table extension BITPIX = 8 / 8-bit bytes NAXIS = 2 / 2-dimensional binary table NAXIS1 = 16 / width of table in bytes NAXIS2 = 1 / number of rows in table PCOUNT = 0 / size of special data area GCOUNT = 1 / one data group (required keyword) TFIELDS = 2 / number of fields in each row EXTNAME = 'GTI ' / name of this binary table extension EXTVER = 3 HDUNAME = 'GTI3 ' / ASCDM block name TTYPE1 = 'START ' / S/C TT corresponding to mid-exposure TFORM1 = '1D ' / format of field TUNIT1 = 's ' TTYPE2 = 'STOP ' / S/C TT corresponding to mid-exposure TFORM2 = '1D ' / format of field TUNIT2 = 's ' MISSION = 'AXAF ' / Mission TELESCOP= 'CHANDRA ' / Telescope INSTRUME= 'ACIS ' / Instrument MJDREF = 5.0814000000000E+04 / MJD zero point for times TSTART = 8.4244214754698E+07 / Observation start time TSTOP = 8.4253882042561E+07 / Observation end time TIMESYS = 'TT ' / Time system TIMEUNIT= 's ' / Time unit CHECKSUM= 'Zb1Pdb0MZb0Mdb0M' / HDU checksum updated 2004-05-28T14:55:43 DATASUM = '2677552283' / data unit checksum updated 2004-05-28T14:55:43 CCD_ID = 3 / CCD for this table END AgќApkzXTENSION= 'BINTABLE' / binary table extension BITPIX = 8 / 8-bit bytes NAXIS = 2 / 2-dimensional binary table NAXIS1 = 16 / width of table in bytes NAXIS2 = 1 / number of rows in table PCOUNT = 0 / size of special data area GCOUNT = 1 / one data group (required keyword) TFIELDS = 2 / number of fields in each row EXTNAME = 'GTI ' / name of this binary table extension EXTVER = 6 HDUNAME = 'GTI6 ' / ASCDM block name TTYPE1 = 'START ' / S/C TT corresponding to mid-exposure TFORM1 = '1D ' / format of field TUNIT1 = 's ' TTYPE2 = 'STOP ' / S/C TT corresponding to mid-exposure TFORM2 = '1D ' / format of field TUNIT2 = 's ' MISSION = 'AXAF ' / Mission TELESCOP= 'CHANDRA ' / Telescope INSTRUME= 'ACIS ' / Instrument MJDREF = 5.0814000000000E+04 / MJD zero point for times TSTART = 8.4244214754698E+07 / Observation start time TSTOP = 8.4253882042561E+07 / Observation end time TIMESYS = 'TT ' / Time system TIMEUNIT= 's ' / Time unit CHECKSUM= 'ZdqMdanMZanMdanM' / HDU checksum updated 2004-05-28T14:55:43 DATASUM = '2677552283' / data unit checksum updated 2004-05-28T14:55:43 CCD_ID = 6 / CCD for this table END AgќApkz \ No newline at end of file diff --git a/site/_downloads/m82_wise.tar b/site/_downloads/m82_wise.tar new file mode 100644 index 0000000..da2a08d Binary files /dev/null and b/site/_downloads/m82_wise.tar differ diff --git a/site/_downloads/myidlfile.sav b/site/_downloads/myidlfile.sav new file mode 100644 index 0000000..6cf79bb Binary files /dev/null and b/site/_downloads/myidlfile.sav differ diff --git a/site/_images/3c120.png b/site/_images/3c120.png new file mode 100644 index 0000000..713dabc Binary files /dev/null and b/site/_images/3c120.png differ diff --git a/site/_images/3c120_data.png b/site/_images/3c120_data.png new file mode 100644 index 0000000..0ea5f6c Binary files /dev/null and b/site/_images/3c120_data.png differ diff --git a/site/_images/3c120_fit_resid1.png b/site/_images/3c120_fit_resid1.png new file mode 100644 index 0000000..9c7405c Binary files /dev/null and b/site/_images/3c120_fit_resid1.png differ diff --git a/site/_images/3c120_fit_resid2.png b/site/_images/3c120_fit_resid2.png new file mode 100644 index 0000000..20a3db2 Binary files /dev/null and b/site/_images/3c120_fit_resid2.png differ diff --git a/site/_images/3c120_spec.gif b/site/_images/3c120_spec.gif new file mode 100644 index 0000000..dda4d62 Binary files /dev/null and b/site/_images/3c120_spec.gif differ diff --git a/site/_images/3c273_data_errors.png b/site/_images/3c273_data_errors.png new file mode 100644 index 0000000..3319db7 Binary files /dev/null and b/site/_images/3c273_data_errors.png differ diff --git a/site/_images/3c273_data_mast.png b/site/_images/3c273_data_mast.png new file mode 100644 index 0000000..478d532 Binary files /dev/null and b/site/_images/3c273_data_mast.png differ diff --git a/site/_images/3c273_fit_broadline_component.png b/site/_images/3c273_fit_broadline_component.png new file mode 100644 index 0000000..d8ec32f Binary files /dev/null and b/site/_images/3c273_fit_broadline_component.png differ diff --git a/site/_images/3c273_fit_broadline_ignore.png b/site/_images/3c273_fit_broadline_ignore.png new file mode 100644 index 0000000..1215d41 Binary files /dev/null and b/site/_images/3c273_fit_broadline_ignore.png differ diff --git a/site/_images/3c273_fit_lines_delchi.png b/site/_images/3c273_fit_lines_delchi.png new file mode 100644 index 0000000..e83c3d6 Binary files /dev/null and b/site/_images/3c273_fit_lines_delchi.png differ diff --git a/site/_images/3c273_fit_mast.png b/site/_images/3c273_fit_mast.png new file mode 100644 index 0000000..c21fe8d Binary files /dev/null and b/site/_images/3c273_fit_mast.png differ diff --git a/site/_images/3c273_fit_powerlaw.png b/site/_images/3c273_fit_powerlaw.png new file mode 100644 index 0000000..d54c829 Binary files /dev/null and b/site/_images/3c273_fit_powerlaw.png differ diff --git a/site/_images/3c273_g2.png b/site/_images/3c273_g2.png new file mode 100644 index 0000000..d577955 Binary files /dev/null and b/site/_images/3c273_g2.png differ diff --git a/site/_images/3c273_g2_fwhm_gamma.png b/site/_images/3c273_g2_fwhm_gamma.png new file mode 100644 index 0000000..750d2c5 Binary files /dev/null and b/site/_images/3c273_g2_fwhm_gamma.png differ diff --git a/site/_images/3c273_g2_pos.png b/site/_images/3c273_g2_pos.png new file mode 100644 index 0000000..8b9de7b Binary files /dev/null and b/site/_images/3c273_g2_pos.png differ diff --git a/site/_images/CaII-1.png b/site/_images/CaII-1.png new file mode 100644 index 0000000..4c08ece Binary files /dev/null and b/site/_images/CaII-1.png differ diff --git a/site/_images/CaII-2.png b/site/_images/CaII-2.png new file mode 100644 index 0000000..3be66b9 Binary files /dev/null and b/site/_images/CaII-2.png differ diff --git a/site/_images/CaII-3.png b/site/_images/CaII-3.png new file mode 100644 index 0000000..43e9161 Binary files /dev/null and b/site/_images/CaII-3.png differ diff --git a/site/_images/CaII-lines-all.png b/site/_images/CaII-lines-all.png new file mode 100644 index 0000000..e617e3b Binary files /dev/null and b/site/_images/CaII-lines-all.png differ diff --git a/site/_images/CaII-lines-one.png b/site/_images/CaII-lines-one.png new file mode 100644 index 0000000..f33d208 Binary files /dev/null and b/site/_images/CaII-lines-one.png differ diff --git a/site/_images/CaII.png b/site/_images/CaII.png new file mode 100644 index 0000000..bc186fc Binary files /dev/null and b/site/_images/CaII.png differ diff --git a/site/_images/XLF.png b/site/_images/XLF.png new file mode 100644 index 0000000..76c9630 Binary files /dev/null and b/site/_images/XLF.png differ diff --git a/site/_images/antisocial_pythons_trans.png b/site/_images/antisocial_pythons_trans.png new file mode 100644 index 0000000..f0c5eec Binary files /dev/null and b/site/_images/antisocial_pythons_trans.png differ diff --git a/site/_images/aplpy.gif b/site/_images/aplpy.gif new file mode 100644 index 0000000..d7ad947 Binary files /dev/null and b/site/_images/aplpy.gif differ diff --git a/site/_images/aplpy_example.png b/site/_images/aplpy_example.png new file mode 100644 index 0000000..037733e Binary files /dev/null and b/site/_images/aplpy_example.png differ diff --git a/site/_images/appearance_fonts_custom.png b/site/_images/appearance_fonts_custom.png new file mode 100644 index 0000000..6e6b13c Binary files /dev/null and b/site/_images/appearance_fonts_custom.png differ diff --git a/site/_images/appearance_fonts_rc.png b/site/_images/appearance_fonts_rc.png new file mode 100644 index 0000000..8da9275 Binary files /dev/null and b/site/_images/appearance_fonts_rc.png differ diff --git a/site/_images/axes_full.png b/site/_images/axes_full.png new file mode 100644 index 0000000..9c8d921 Binary files /dev/null and b/site/_images/axes_full.png differ diff --git a/site/_images/axes_inset.png b/site/_images/axes_inset.png new file mode 100644 index 0000000..7ba4b47 Binary files /dev/null and b/site/_images/axes_inset.png differ diff --git a/site/_images/big_hexes.png b/site/_images/big_hexes.png new file mode 100644 index 0000000..243c94c Binary files /dev/null and b/site/_images/big_hexes.png differ diff --git a/site/_images/biopython.jpg b/site/_images/biopython.jpg new file mode 100644 index 0000000..9eab849 Binary files /dev/null and b/site/_images/biopython.jpg differ diff --git a/site/_images/bkg_fit0.png b/site/_images/bkg_fit0.png new file mode 100644 index 0000000..890180a Binary files /dev/null and b/site/_images/bkg_fit0.png differ diff --git a/site/_images/bkg_fit1.png b/site/_images/bkg_fit1.png new file mode 100644 index 0000000..da338d1 Binary files /dev/null and b/site/_images/bkg_fit1.png differ diff --git a/site/_images/bkg_fit2.png b/site/_images/bkg_fit2.png new file mode 100644 index 0000000..c738f46 Binary files /dev/null and b/site/_images/bkg_fit2.png differ diff --git a/site/_images/bounce.png b/site/_images/bounce.png new file mode 100644 index 0000000..36ee225 Binary files /dev/null and b/site/_images/bounce.png differ diff --git a/site/_images/colorbar_ax.png b/site/_images/colorbar_ax.png new file mode 100644 index 0000000..f7693e5 Binary files /dev/null and b/site/_images/colorbar_ax.png differ diff --git a/site/_images/colorbar_cax.png b/site/_images/colorbar_cax.png new file mode 100644 index 0000000..d2d4aa5 Binary files /dev/null and b/site/_images/colorbar_cax.png differ diff --git a/site/_images/colorbar_cax_aspect.png b/site/_images/colorbar_cax_aspect.png new file mode 100644 index 0000000..32adb6c Binary files /dev/null and b/site/_images/colorbar_cax_aspect.png differ diff --git a/site/_images/colorbar_cax_scatter.png b/site/_images/colorbar_cax_scatter.png new file mode 100644 index 0000000..f1e52a3 Binary files /dev/null and b/site/_images/colorbar_cax_scatter.png differ diff --git a/site/_images/coord_level2.png b/site/_images/coord_level2.png new file mode 100644 index 0000000..9f20d80 Binary files /dev/null and b/site/_images/coord_level2.png differ diff --git a/site/_images/count_hist.png b/site/_images/count_hist.png new file mode 100644 index 0000000..fbfb1dd Binary files /dev/null and b/site/_images/count_hist.png differ diff --git a/site/_images/custom_ticks_1.png b/site/_images/custom_ticks_1.png new file mode 100644 index 0000000..71edb05 Binary files /dev/null and b/site/_images/custom_ticks_1.png differ diff --git a/site/_images/custom_ticks_2.png b/site/_images/custom_ticks_2.png new file mode 100644 index 0000000..22afbc7 Binary files /dev/null and b/site/_images/custom_ticks_2.png differ diff --git a/site/_images/custom_ticks_3.png b/site/_images/custom_ticks_3.png new file mode 100644 index 0000000..cbff7ef Binary files /dev/null and b/site/_images/custom_ticks_3.png differ diff --git a/site/_images/custom_ticks_4.png b/site/_images/custom_ticks_4.png new file mode 100644 index 0000000..77e0666 Binary files /dev/null and b/site/_images/custom_ticks_4.png differ diff --git a/site/_images/err_row254.png b/site/_images/err_row254.png new file mode 100644 index 0000000..4a99724 Binary files /dev/null and b/site/_images/err_row254.png differ diff --git a/site/_images/exercise_1.png b/site/_images/exercise_1.png new file mode 100644 index 0000000..952d987 Binary files /dev/null and b/site/_images/exercise_1.png differ diff --git a/site/_images/exercise_3.png b/site/_images/exercise_3.png new file mode 100644 index 0000000..8b7e0b5 Binary files /dev/null and b/site/_images/exercise_3.png differ diff --git a/site/_images/exercise_4.png b/site/_images/exercise_4.png new file mode 100644 index 0000000..c3f5d6d Binary files /dev/null and b/site/_images/exercise_4.png differ diff --git a/site/_images/fit.png b/site/_images/fit.png new file mode 100644 index 0000000..94ea343 Binary files /dev/null and b/site/_images/fit.png differ diff --git a/site/_images/fits_level2.png b/site/_images/fits_level2.png new file mode 100644 index 0000000..2da6da1 Binary files /dev/null and b/site/_images/fits_level2.png differ diff --git a/site/_images/fits_level3.png b/site/_images/fits_level3.png new file mode 100644 index 0000000..fd38348 Binary files /dev/null and b/site/_images/fits_level3.png differ diff --git a/site/_images/g21.png b/site/_images/g21.png new file mode 100644 index 0000000..1e3d901 Binary files /dev/null and b/site/_images/g21.png differ diff --git a/site/_images/g21_filter.png b/site/_images/g21_filter.png new file mode 100644 index 0000000..eaa775a Binary files /dev/null and b/site/_images/g21_filter.png differ diff --git a/site/_images/g21_fit.png b/site/_images/g21_fit.png new file mode 100644 index 0000000..bccad56 Binary files /dev/null and b/site/_images/g21_fit.png differ diff --git a/site/_images/g21_model.png b/site/_images/g21_model.png new file mode 100644 index 0000000..3a09f52 Binary files /dev/null and b/site/_images/g21_model.png differ diff --git a/site/_images/hipe.png b/site/_images/hipe.png new file mode 100644 index 0000000..eac387f Binary files /dev/null and b/site/_images/hipe.png differ diff --git a/site/_images/hist.png b/site/_images/hist.png new file mode 100644 index 0000000..a120de6 Binary files /dev/null and b/site/_images/hist.png differ diff --git a/site/_images/image_plotting.png b/site/_images/image_plotting.png new file mode 100644 index 0000000..29900b6 Binary files /dev/null and b/site/_images/image_plotting.png differ diff --git a/site/_images/img_col300.png b/site/_images/img_col300.png new file mode 100644 index 0000000..2c31f0c Binary files /dev/null and b/site/_images/img_col300.png differ diff --git a/site/_images/img_row254_clean.png b/site/_images/img_row254_clean.png new file mode 100644 index 0000000..1bdbaf1 Binary files /dev/null and b/site/_images/img_row254_clean.png differ diff --git a/site/_images/img_row254_noisy.png b/site/_images/img_row254_noisy.png new file mode 100644 index 0000000..36d459a Binary files /dev/null and b/site/_images/img_row254_noisy.png differ diff --git a/site/_images/imgview_dq.png b/site/_images/imgview_dq.png new file mode 100644 index 0000000..0b8f5ce Binary files /dev/null and b/site/_images/imgview_dq.png differ diff --git a/site/_images/imgview_err.png b/site/_images/imgview_err.png new file mode 100644 index 0000000..0a03754 Binary files /dev/null and b/site/_images/imgview_err.png differ diff --git a/site/_images/imgview_img.png b/site/_images/imgview_img.png new file mode 100644 index 0000000..df86fab Binary files /dev/null and b/site/_images/imgview_img.png differ diff --git a/site/_images/imshow_extent.png b/site/_images/imshow_extent.png new file mode 100644 index 0000000..73cd343 Binary files /dev/null and b/site/_images/imshow_extent.png differ diff --git a/site/_images/lat_background_slice0.png b/site/_images/lat_background_slice0.png new file mode 100644 index 0000000..4c0f3d2 Binary files /dev/null and b/site/_images/lat_background_slice0.png differ diff --git a/site/_images/legend.png b/site/_images/legend.png new file mode 100644 index 0000000..46f3857 Binary files /dev/null and b/site/_images/legend.png differ diff --git a/site/_images/legend_custom.png b/site/_images/legend_custom.png new file mode 100644 index 0000000..c1487a2 Binary files /dev/null and b/site/_images/legend_custom.png differ diff --git a/site/_images/mult_figs1.png b/site/_images/mult_figs1.png new file mode 100644 index 0000000..39d1584 Binary files /dev/null and b/site/_images/mult_figs1.png differ diff --git a/site/_images/mult_figs2.png b/site/_images/mult_figs2.png new file mode 100644 index 0000000..f31f7ef Binary files /dev/null and b/site/_images/mult_figs2.png differ diff --git a/site/_images/patches.png b/site/_images/patches.png new file mode 100644 index 0000000..806d74e Binary files /dev/null and b/site/_images/patches.png differ diff --git a/site/_images/profile.png b/site/_images/profile.png new file mode 100644 index 0000000..8827a00 Binary files /dev/null and b/site/_images/profile.png differ diff --git a/site/_images/publication_1.png b/site/_images/publication_1.png new file mode 100644 index 0000000..71d5e66 Binary files /dev/null and b/site/_images/publication_1.png differ diff --git a/site/_images/publication_2.png b/site/_images/publication_2.png new file mode 100644 index 0000000..d357dda Binary files /dev/null and b/site/_images/publication_2.png differ diff --git a/site/_images/publication_3.png b/site/_images/publication_3.png new file mode 100644 index 0000000..fadf392 Binary files /dev/null and b/site/_images/publication_3.png differ diff --git a/site/_images/publication_4.png b/site/_images/publication_4.png new file mode 100644 index 0000000..5c7f092 Binary files /dev/null and b/site/_images/publication_4.png differ diff --git a/site/_images/publication_fontsize.png b/site/_images/publication_fontsize.png new file mode 100644 index 0000000..a441156 Binary files /dev/null and b/site/_images/publication_fontsize.png differ diff --git a/site/_images/publication_lines.png b/site/_images/publication_lines.png new file mode 100644 index 0000000..e549a9e Binary files /dev/null and b/site/_images/publication_lines.png differ diff --git a/site/_images/publication_serif.png b/site/_images/publication_serif.png new file mode 100644 index 0000000..2d3c1df Binary files /dev/null and b/site/_images/publication_serif.png differ diff --git a/site/_images/pyplot_3d.png b/site/_images/pyplot_3d.png new file mode 100644 index 0000000..36d3195 Binary files /dev/null and b/site/_images/pyplot_3d.png differ diff --git a/site/_images/pyplot_annotate.png b/site/_images/pyplot_annotate.png new file mode 100644 index 0000000..6837140 Binary files /dev/null and b/site/_images/pyplot_annotate.png differ diff --git a/site/_images/pyplot_formatstr.png b/site/_images/pyplot_formatstr.png new file mode 100644 index 0000000..5b78b4d Binary files /dev/null and b/site/_images/pyplot_formatstr.png differ diff --git a/site/_images/pyplot_simple.png b/site/_images/pyplot_simple.png new file mode 100644 index 0000000..bda84ae Binary files /dev/null and b/site/_images/pyplot_simple.png differ diff --git a/site/_images/pyplot_text.png b/site/_images/pyplot_text.png new file mode 100644 index 0000000..9fef95a Binary files /dev/null and b/site/_images/pyplot_text.png differ diff --git a/site/_images/pyplot_three_v2.png b/site/_images/pyplot_three_v2.png new file mode 100644 index 0000000..76b8562 Binary files /dev/null and b/site/_images/pyplot_three_v2.png differ diff --git a/site/_images/pyplot_window.png b/site/_images/pyplot_window.png new file mode 100644 index 0000000..c2546ec Binary files /dev/null and b/site/_images/pyplot_window.png differ diff --git a/site/_images/ripple.png b/site/_images/ripple.png new file mode 100644 index 0000000..fcf6248 Binary files /dev/null and b/site/_images/ripple.png differ diff --git a/site/_images/ripple_masked.png b/site/_images/ripple_masked.png new file mode 100644 index 0000000..9a27ed7 Binary files /dev/null and b/site/_images/ripple_masked.png differ diff --git a/site/_images/rosat_image.png b/site/_images/rosat_image.png new file mode 100644 index 0000000..76a23ac Binary files /dev/null and b/site/_images/rosat_image.png differ diff --git a/site/_images/run_codes.png b/site/_images/run_codes.png new file mode 100644 index 0000000..ce1f5cd Binary files /dev/null and b/site/_images/run_codes.png differ diff --git a/site/_images/scatter.png b/site/_images/scatter.png new file mode 100644 index 0000000..f6b8185 Binary files /dev/null and b/site/_images/scatter.png differ diff --git a/site/_images/spectrum_clean.png b/site/_images/spectrum_clean.png new file mode 100644 index 0000000..df17afc Binary files /dev/null and b/site/_images/spectrum_clean.png differ diff --git a/site/_images/spectrum_final.png b/site/_images/spectrum_final.png new file mode 100644 index 0000000..b178395 Binary files /dev/null and b/site/_images/spectrum_final.png differ diff --git a/site/_images/spectrum_noisy.png b/site/_images/spectrum_noisy.png new file mode 100644 index 0000000..c610520 Binary files /dev/null and b/site/_images/spectrum_noisy.png differ diff --git a/site/_images/subplot.png b/site/_images/subplot.png new file mode 100644 index 0000000..81de3a9 Binary files /dev/null and b/site/_images/subplot.png differ diff --git a/site/_images/synthetic_image.png b/site/_images/synthetic_image.png new file mode 100644 index 0000000..f6387ff Binary files /dev/null and b/site/_images/synthetic_image.png differ diff --git a/site/_images/tables_level2.png b/site/_images/tables_level2.png new file mode 100644 index 0000000..a0cf444 Binary files /dev/null and b/site/_images/tables_level2.png differ diff --git a/site/_images/twinx.png b/site/_images/twinx.png new file mode 100644 index 0000000..c5f3c74 Binary files /dev/null and b/site/_images/twinx.png differ diff --git a/site/_images/two_axes.png b/site/_images/two_axes.png new file mode 100644 index 0000000..b26fe35 Binary files /dev/null and b/site/_images/two_axes.png differ diff --git a/site/_images/wcs_level3.png b/site/_images/wcs_level3.png new file mode 100644 index 0000000..4a28a8b Binary files /dev/null and b/site/_images/wcs_level3.png differ diff --git a/site/_images/wise_cc.png b/site/_images/wise_cc.png new file mode 100644 index 0000000..be19bf9 Binary files /dev/null and b/site/_images/wise_cc.png differ diff --git a/site/_images/xjet_hist.png b/site/_images/xjet_hist.png new file mode 100644 index 0000000..5c41811 Binary files /dev/null and b/site/_images/xjet_hist.png differ diff --git a/site/_images/xkcd_python.png b/site/_images/xkcd_python.png new file mode 100644 index 0000000..23a4c6e Binary files /dev/null and b/site/_images/xkcd_python.png differ diff --git a/site/_sources/astropy-UVES/UVES.txt b/site/_sources/astropy-UVES/UVES.txt new file mode 100644 index 0000000..68e4cce --- /dev/null +++ b/site/_sources/astropy-UVES/UVES.txt @@ -0,0 +1,847 @@ +Astropy II: Analyzing UVES Spectroscopy +======================================== + +This tutorial follows my real live data analysis of MN Lup and the code developed +below is taken (with only minor modifications) from the code that I used to +actually prepare the publication. The plots that will be developed below +appear in very similar form in the article published in ApJ (771, 70, 2013). + +The examples below depend on each other and the plots in the last section make +use of things calculated in the earlier sections. Thus, if you need to restart +your python session in the course of this tutorial, please execute all the code +again. + +Also, this tutorial works best if you follow along and execute the code shown +on your own computer. The page is already quite long and I do not include the +output you would see on your screen in this document. + +.. toctree:: + + +Before you proceed +------------------ +Please download this +:download:`this tar file <../downloads/astropy_UVES.tar.gz>` and extract +the content, either by clicking on the link or by executing this +python code:: + + from astropy.extern.six.moves.urllib import request + import tarfile + url = 'http://python4astronomers.github.io/_downloads/astropy_UVES.tar.gz' + tarfile.open(fileobj=request.urlopen(url), mode='r|*').extractall() + cd UVES + ls + +Then start up IPython with the ``--matplotlib`` option and do the usual imports +to enable interactive plotting:: + + $ ipython --matplotlib + + import numpy as np + import matplotlib.pyplot as plt + + +Acknowledgments +--------------- + +:Authors: Moritz Guenther +:Copyright: 2013 Moritz Guenther + +Based on observations made with ESO Telescopes at the La Silla Paranal Observatory +under program ID 087.V0991(A). + + +Scientific background +--------------------- +In this tutorial we analyze data from MN Lup, a T Tauri star in the +Taurus-Auriga star forming region located at a distance of about 140 pc. MN Lup +has been observed simultaneously with XMM-Newton and the UVES spectrograph on the +VLT. MN Lup is suspected to be a classical T Tauri star, that is accreting mass +from a circumstellar disk. MN Lup has been Doppler imaged by `Strassmeier et al. +(2005, A&A, 440, 1105) `_ +with a very similar UVES setup and those authors claim an rotationally modulated +accretion spot. + +In the X-ray data we find moderate indications for accretion. In this +tutorial we analyze (some of) the UVES data to search for rotationally modulated +features in the emission line profiles, which could be due to an accretion spot +on the stellar surface. + +Reading the data +---------------- +The previous astropy tutorial already covered +:ref:`handling-fits-files` and :ref:`wcs-transformations`, so the explanation here +is only very brief. Check the `astropy documentation `_ +or the other two tutorials for more details:: + + from glob import glob + + import numpy as np + + from astropy.wcs import WCS + from astropy.io import fits + + # glob searches through directories similar to the Unix shell + filelist = glob('*.fits') + # sort alphabetically - given the way the filenames are + # this also sorts in time + filelist.sort() + +Read the first fits file in the list and check what is in there:: + + sp = fits.open(filelist[0]) + sp.info() + +We see that the data is given as the primary image and all other info is +part of the primary header. So, we can extract the WCS from that header +to get the wavelength coordinate:: + + header = sp[0].header + + wcs = WCS(header) + #make index array + index = np.arange(header['NAXIS1']) + + wavelength = wcs.wcs_pix2world(index[:,np.newaxis], 0) + wavelength.shape + #Ahh, this has the wrong dimension. So we flatten it. + wavelength = wavelength.flatten() + +The flux is contained in the primary image:: + + flux = sp[0].data + + +Making code reusable as a function +---------------------------------- + +Now, we do not want to repeat this process for every single file by hand, +so let us define a function that takes the filename as input and returns +the wavelength and flux arrays and the time of the observation. +In python, functions are created with the ``def`` statements. +All lines that have an indentation level below the `def` statement are part +of the function. Functions can (but do not have to) return values using +the ``return`` statement. + +If a function ``func`` is contained in a file called ``spectra_utils.py`` in +the current directory, then this file can be imported into a python session in +order to use the function `func` with the following command:: + + import spectra_utils + a = spectra_utils.func(param1, param2, ...) + +Alternatively, you can import just one (or a few) of many different functions +that are defined in your file ``spectra_utils.py``:: + + from spectra_utils import func + a = func(param1, param2, ...) + +You will recognize that python does not make a difference between modules that come +with python (e.g. `glob`), external modules (e.g. `numpy` or `astropy`) and modules +that you write yourself. The syntax to import those modules or functions +is the same in all cases, provided that the directory where your module is +defined is in the search path (`more about python modules and the search path +`_). + +.. note:: + You can also define a function on the interactive interpreter by just + typing it line by line. However, + if you work in an interactive session, then the function ends as soon as there + is a blank line. This makes it a little inconvenient to copy and paste more + than the simplest functions into an interpreter. + Fortunately, ipython offers two magic functions that take care of this: + + #) You can mark code in some editor, copy it to the clipboard and then + type ``%paste`` in ipython. + #) You type ``%cpaste`` in ipython you can paste code (e.g. with the + mouse) and ipython will correct the leading number of white spaces and + ignore empty lines. + + These two tricks can be used with any type of code, but are particularly useful + to define functions. + +.. note:: + Once you used ``import spectra_utils`` python will not monitor the source file. + If you change the source code of ``func`` in the file, you need to + ``reload(spectra_utils)`` to load the new version of ``func``. + +So, after all this discussion, we can now define a function that automates the +loading of a single spectrum using the commands we developed above. Even if +this function is fairly short, we still add some documentation to the header, +so that we can look up what parameters it needs when we come back to this +project a while later. Personally, I comment every function that is longer +than two lines:: + + def read_spec(filename): + '''Read a UVES spectrum from the ESO pipeline + + Parameters + ---------- + filename : string + name of the fits file with the data + + Returns + ------- + wavelength : np.ndarray + wavelength (in Ang) + flux : np.ndarray + flux (in erg/s/cm**2) + date_obs : string + time of observation + ''' + sp = fits.open(filename) + header = sp[0].header + + wcs = WCS(header) + #make index array + index = np.arange(header['NAXIS1']) + + wavelength = wcs.wcs_pix2world(index[:,np.newaxis], 0) + wavelength = wavelength.flatten() + flux = sp[0].data + + date_obs = header['Date-OBS'] + return wavelength, flux, date_obs + +.. admonition:: Exercise + + Try to find out how you can read the help for this function from the + command line. +.. raw:: html + +

    Click to Show/Hide Solution

    + +:: + + help(read_spec) + #or + read_spec? + +.. raw:: html + +
    + +.. admonition:: Exercise + + The dataset of UVES spectra should have been taken using all the same setup. + Write a function that returns the exposure time (``EXPTIME``), + the wavelength zero point + (``CRVAL1``), and the arm used (UVES has a red and a blue arm - see keyword + ``HIERARCH ESO INS PATH``). Then check that all exposures have the same + setup. + + +.. raw:: html + +

    Click to Show/Hide Solution

    + +:: + + def read_setup(filename): + '''Get setup for UVES spectrum from the ESO pipeline + + Parameters + ---------- + filename : string + name of the fits file with the data + + Returns + ------- + exposure_time : float + wavelength_zero_point : float + optical_arm : string + ''' + sp = fits.open(filename) + header = sp[0].header + + return header['EXPTIME'], header['CRVAL1'], header['HIERARCH ESO INS PATH'] + + # Let's just print the setup on the screen + # We'll see if it's all the same. + for f in filelist: + print(read_setup(f)) + +.. raw:: html + +
    + +The UVES pipeline that was used to reduce the data that we use in the this example +employs a fixed wavelength grid (see exercise above), +thus the ``wavelength`` is the same for all spectra. +This makes it easy to define an array that can hold the fluxes of all +observations. Then, we loop over the list of all filenames and fill this array +with data:: + + flux = np.zeros((len(filelist), len(wavelength))) + # date comes as string with 23 characters (dtype = 'S23') + date = np.zeros((len(filelist)), dtype = 'S23') + + for i, fname in enumerate(filelist): + w, f, date_obs = read_spec(fname) + flux[i,:] = f + date[i] = date_obs + +Units and constants in astropy +------------------------------ +Often, one has to keep track of the units for certain values. Was the wavelength +given in Angstrom or in nm? In X-ray observations, a common unit of wavelength is +keV. How many nm is 0.65 keV? +`astropy.units `_ +offers a framework that can take +care of this book-keeping and propagate the units through many (but not all) +mathematical operations (e.g. addition, division, multiplication). +Furthermore, +`astropy.constants `_ supplies the values of +many physical and astronomical constants. +The easiest way to attach a unit to a number is by multiplication:: + + import astropy.units as u + from astropy.constants.si import c, G, M_sun, R_sun + + wavelength = wavelength * u.AA + + # Let's define some constants we need for the exercises further down + # Again, we multiply the value with a unit here + heliocentric = -23. * u.km/u.s + v_rad = -4.77 * u.km / u.s # Strassmeier et al. (2005) + R_MN_Lup = 0.9 * R_sun # Strassmeier et al. (2005) + M_MN_Lup = 0.6 * M_sun # Strassmeier et al. (2005) + vsini = 74.6 * u.km / u.s # Strassmeier et al. (2005) + period = 0.439 * u.day # Strassmeier et al. (2005) + + inclination = 45. * u.degree # Strassmeier et al. (2005) + # All numpy trigonometric functions expect the input in radian. + # So far, astropy does not know this, so we need to convert the + # angle manually + incl = inclination.to(u.radian) + +Now, we can use those variables in our calculations. MN Lup is a T Tauri +star (TTS), which is possibly surrounded by an accretion disk. In the spectra +we will be looking for signatures of accretion. We expect those accretion +signatures to appear close to the free-fall velocity v that a mass m reaches, when +it hits the stellar surface. We can calculate the infall speed using simple +energy conservation: + +.. _formula-vaccr: + +.. math:: + E_{kin} = E_{grav} + + \frac{1}{2} m v^2 = G \frac{m M_*}{R_*} + +So, let us calculate the free-fall velocity for MN Lup:: + + >>> v_accr = (2.* G * M_MN_Lup/R_MN_Lup)**0.5 + >>> print v_accr + 504469.027564 m / (s) + >>> # Maybe astronomers prefer it in the traditional cgs system? + >>> print v_accr.cgs + 50446902.7564 cm / (s) + >>> # Or in some really obscure unit? + >>> print v_accr.to(u.mile / u.hour) + 1128465.07598 mi / (h) + +How does the accretion velocity relate to the rotational velocity? +:: + + v_rot = vsini / np.sin(incl) + v_accr / v_rot + +Oh, what is that? The seconds are gone, but ``astropy.quantity`` objects keep +their different length units unless told otherwise:: + + (v_accr / v_rot).decompose() + +The reason for this is that it is not uncommon to use different length units in +a single constant, e.g. the Hubble constant is commonly given in "km/ (s * Mpc)". +"km" and "Mpc" are both units of length, but generally you do *not* want to +shorten this to "1/s". + +We can now use the ``astropy.units`` mechanism to correct the wavelength +scale to the heliocentric velocity scale: + +.. math:: + + \lambda_{heliocentric} = \lambda_{bariocentric} * (1 + \frac{v_{helio}}{c}) + +Naively, we could try:: + + wavelength = wavelength * (1. + heliocentric/c) + TypeError: unsupported operand type(s) for +: 'float' and 'Quantity' + +However, this fails, because ``heliocentric/c`` is in units of "km/m" and ``1.`` +is just a number. From the notation above, it is not clear what we actually want. +Do we ask for the value of ``heliocentric/c + 1.`` or do we want to simplify the +units of ``heliocentric/c`` and after that add ``1.``? +There are several ways to make the instruction precise, +but one is to explicitly add ``u.dimensionless_unscaled`` to ``1.`` +to tell astropy that this number is dimensionless and does not carry any scaling:: + + wavelength = wavelength * (1. * u.dimensionless_unscaled+ heliocentric/c) + +I want to mention one more feature here (check out +`astropy.units `_ for +more): The ability to convert the spectral axis to frequencies or energies. +Normally, a unit of length is not equivalent to a unit of energy or to a +frequency, but this conversion makes sense for the wavelength of a spectrum. +This is how it can be done:: + + wavelength.to(u.keV, equivalencies=u.spectral()) + wavelength.to(u.Hz, equivalencies=u.spectral()) + +.. admonition:: Exercise + + Spectroscopically, MN Lup is classified as spectral type M0 V, thus + the gravitational acceleration on the surface :math:`\log(g)` + should be comparable to the sun. + (For non-stellar astronomers: Conventionally, all values are given + in the cgs system. The value for the sun is :math:`\log(g) = 4.4`.) + + Calculate :math:`\log(g)` for MN Lup with the values for the mass + and radius given above. Those values were determined from + evolutionary tracks. Check if the :math:`\log(g)` is consistent + with the value expected from spectroscopy. + +.. raw:: html + +

    Click to Show/Hide Solution

    + +The values from evolutionary tracks are indeed consistent with the +spectroscopically estimated surface gravity:: + + >>> print np.log10((G*M_MN_Lup/R_MN_Lup**2).cgs) + 4.3080943799180433 + +.. raw:: html + +
    + + +.. admonition:: Exercise + + Write a function that turns a wavelength scale into a velocity scale. + We want to input a wavelengths array and the rest wavelength of a spectral + line. We need this function later to show the red- and blueshift of the + spectrum relative to the the Ca II H line. Use the following definition + to make sure the that code below can use it later:: + + def wave2doppler(wavelength_array, wavelength_line): + .. do something .. + return array_of_dopplershifts + + You can test if you function works by calculating the a Dopplershift + of the following wavelengths relative to :math:`H_\alpha`:: + + waveclosetoHa = np.array([6562.,6563,6565.]) * u.AA + print(wave2doppler(waveclosetoHa, 656.489 * u.nm)) + + I get -132, -86 and +5 km/s. + +.. raw:: html + +

    Click to Show/Hide Solution

    + +:: + + def wave2doppler(w, w0): + doppler = ((w-w0)/w0 * c) + return doppler + + print(wave2doppler(waveclosetoHa, 656.489 * u.nm).decompose().to(u.km/u.s)) + +.. raw:: html + +
    + +.. admonition:: Exercise + + Write a function that takes a wavelength array and the rest wavelength of + a spectral line as input, turns it into a Doppler shift (you can use + the function from the last exercise), + subtracts the radial velocity of MN Lup (4.77 km/s) and expresses + the resulting velocity in units of vsini. + We need this function later to show the red- and blueshift of the + spectrum relative to the Ca II H line. Use the following definition + to make sure the that code below can use it later:: + + def w2vsini(wavelength_array, wavelength_line): + .. do something .. + return array_of_shifts_in_vsini + +.. raw:: html + +

    Click to Show/Hide Solution

    + +:: + + def w2vsini(w, w0): + v = wave2doppler(w, w0) - 4.77 * u.km/u.s + return v / vsini + +.. raw:: html + +
    + +Converting times +---------------- +`astropy.time `_ +provides methods to convert times and dates between different +systems and formats. Since the ESO fits headers already contain the time of the +observation in different systems, we could just read the keyword in the time +system we like, but we will use ``astropy.time`` to make this conversion here. +``astropy.time.Time`` will parse many common input formats (strings, floats), but +unless the format is unambiguous the format needs to be specified (e.g. a number +could mean JD or MJD or year). Also, the time system needs to be given (e.g. UTC). +Below are several examples, initialized from different header keywords:: + + from astropy.time import Time + t1 = Time(header['MJD-Obs'], format = 'mjd', scale = 'utc') + t2 = Time(header['Date-Obs'], scale = 'utc') + +Times can be expressed in different formats:: + + >>> t1 +