text:
This section describes the format of and some features associated with GNIRS data. More detailed information on reduction of GNIRS data accompanies the GNIRS IRAF package. GNIRS imaging can be reduced with the DRAGONS data reduction software.
- Reducing XD spectra
- Gemini IRAF package
- To browse what Gemini Users have exchanged about tricks, issues and solutions regarding reduction of GNIRS data, please go to the DR forum (tag=GNIRS).
Reducing XD spectra
This web page goes through the steps involved in reducing GNIRS cross-dispersed (XD) spectra using the Gemini IRAF package (v1.13.1). These spectra of a nearby galaxy nucleus were taken with the short (0.15 arcsec/pix) blue camera and 32 l/mm grating, the most commonly-used XD mode, but the data reduction steps will be broadly applicable to data taken in other XD configurations as well. The IRAF tasks can be used in several different ways according to the characteristics of the specific data set and the user's personal preference. The procedure shown here will not be optimal for all XD observations, but is intended as a starting point for those new to GNIRS data.
For more information about GNIRS data reduction and how the tasks can be used, try the following:
- General GNIRS data reduction information: type "gnirsinfo" on the IRAF command line after loading the Gemini and GNIRS packages (also at this web page)
- Information about XD reductions: type "gnirsinfoxd" (also linked from this web page; gnirsinfols and gnirsinfoifu also available)
- Example reduction scripts: type "gnirsexamples"
- Help pages for individual tasks
- Published science papers based on GNIRS data, e.g. Kriek et al. (2006), Burleigh et al. (2006)
- This ADASS paper is several years old but may be useful for general background information
- Various general near-IR data reduction tutorials are available on the web
- Problems can be reported through the helpdesk
- An alternative way to reduce the GNIRS cross-dispersed mode data is using PypeIt.
The steps discussed on this page are:
- Inspecting and sorting the data
- Pattern noise cleaning
- Dealing with radiation events in short camera data
- Preparing the data reduction environment
- "Preparing" the data
- Making the flatfield
- Reducing the science data
- Wavelength calibration and s-distortion correction
- Extracting spectra
- Telluric line cancellation and flux calibration
Sorting/inspecting the data
We will be working on data taken for GN-2011A-Q-126, a poor weather program designed to make use of the telescope in cloudy conditions. Usually the PI will download their data from the Gemini Observatory Archive (see this page for some help with using the archive). If you are not the PI of the program, this retrieval option is available after the proprietary period of the data has ended. Files retrieved from the archive may contain various types of data, depending on the search method: acquisition images, calibration data, science target spectroscopy, etc. Before starting the reduction, we need to work out which files are which. There at least three ways of doing this, and it can be helpful to combine a couple of them to get a good sense of the data. Note that the first method currently only works if you are the PI of the program such that you have access to the program in the OT.
- Use the OT to fetch and inspect the program (PI of the program only) :
- As observations in an observing programme are executed, their colour changes to reflect their status. Green, "ready" observations change to black on completion, so the above left screenshot shows that the acquisition and spectroscopy of NGC 4736 in the "Nucleus: IQ85 CCAny" group has been observed, along with a telluric standard and some daytime calibrations. The grey, "inactive" observations are no longer relevant and will not be scheduled.
- The shaded steps in the "Sequence" view are those that have been completed. In this case, the first ABBA was executed, then the observer skipped ahead to take the flats and arcs and then move onto another programme as the weather was improving enough to allow regular queue observations.
- The righthand screenshot shows the "Observation Log". This gives the filenames associated with the individual steps and also the "QA State". The QA state can be "Pass" (no known problems that would make the observations unsuitable for the intended science use), "Usable" (problems such as violation of the requested observing condition constraints, but possibly useful anyway), "Fail" (fatally compromised) or "Undefined". As Q126 was a low-priority, band 4 "filler" programme, no quality assessment has been performed and all the QA states are undefined. Clicking on the "Comments" tab would show any comments left by the observer as they acquired the data (also given in the obslog, below). - Use the observing log downloaded from the archive along with the data:
This extract gives a chronological record of the observations, showing the observer's comments as well as file numbers and details of the instrument configuration, object being observed, etc. In this case we can see that the observer recorded the offsets used to centre the galaxy and telluric standard in the slit, and also noticed that the initial standard star spectra were saturated and reduced the exposure time to compensate.
- Use the file headers. For example:
ecl> hselect N20110516*[0] field=$I,OBJECT,OBSTYPE,OBSCLASS expr=yes N20110516S0151.fits[0] "NGC 4736" OBJECT acq N20110516S0152.fits[0] "NGC 4736" OBJECT acq N20110516S0153.fits[0] "NGC 4736" OBJECT acq N20110516S0154.fits[0] "NGC 4736" OBJECT acq N20110516S0155.fits[0] "NGC 4736" OBJECT science N20110516S0156.fits[0] "NGC 4736" OBJECT science N20110516S0157.fits[0] "NGC 4736" OBJECT science N20110516S0159.fits[0] "NGC 4736" OBJECT science N20110516S0160.fits[0] Ar ARC partnerCal N20110516S0161.fits[0] Ar ARC partnerCal N20110516S0162.fits[0] GCALflat FLAT partnerCal N20110516S0163.fits[0] GCALflat FLAT partnerCal N20110516S0164.fits[0] GCALflat FLAT partnerCal N20110516S0165.fits[0] GCALflat FLAT partnerCal N20110516S0166.fits[0] GCALflat FLAT partnerCal N20110516S0167.fits[0] GCALflat FLAT partnerCal N20110516S0168.fits[0] GCALflat FLAT partnerCal N20110516S0169.fits[0] GCALflat FLAT partnerCal N20110516S0170.fits[0] GCALflat FLAT partnerCal N20110516S0171.fits[0] GCALflat FLAT partnerCal N20110516S0172.fits[0] GCALflat FLAT partnerCal N20110516S0173.fits[0] GCALflat FLAT partnerCal N20110516S0174.fits[0] GCALflat FLAT partnerCal N20110516S0175.fits[0] GCALflat FLAT partnerCal N20110516S0176.fits[0] GCALflat FLAT partnerCal N20110516S0177.fits[0] GCALflat FLAT partnerCal N20110516S0178.fits[0] HIP65159 OBJECT acqCal N20110516S0179.fits[0] HIP65159 OBJECT acqCal N20110516S0180.fits[0] HIP65159 OBJECT acqCal N20110516S0181.fits[0] HIP65159 OBJECT acqCal N20110516S0182.fits[0] HIP65159 OBJECT partnerCal N20110516S0183.fits[0] HIP65159 OBJECT partnerCal N20110516S0184.fits[0] HIP65159 OBJECT partnerCal N20110516S0185.fits[0] HIP65159 OBJECT partnerCal N20110516S0186.fits[0] HIP65159 OBJECT partnerCal N20110516S0187.fits[0] HIP65159 OBJECT partnerCal N20110516S0188.fits[0] HIP65159 OBJECT partnerCal N20110516S0189.fits[0] HIP65159 OBJECT partnerCal N20110516S0379.fits[0] GCALflat FLAT dayCal N20110516S0380.fits[0] GCALflat FLAT dayCal N20110516S0381.fits[0] GCALflat FLAT dayCal N20110516S0382.fits[0] GCALflat FLAT dayCal N20110516S0383.fits[0] GCALflat FLAT dayCal N20110516S0408.fits[0] Dark DARK dayCal N20110516S0409.fits[0] Dark DARK dayCal N20110516S0410.fits[0] Dark DARK dayCal N20110516S0411.fits[0] Dark DARK dayCal N20110516S0412.fits[0] Dark DARK dayCal N20110516S0413.fits[0] Dark DARK dayCal N20110516S0414.fits[0] Dark DARK dayCal N20110516S0415.fits[0] Dark DARK dayCal N20110516S0416.fits[0] Dark DARK dayCal N20110516S0417.fits[0] Dark DARK dayCal
Evidently the galaxy was acquired and then four spectra were taken. These were followed by arcs and flats, then a telluric standard was acquired and observed. More flats were taken the morning after the nighttime observations, along with a set of darks. (The darks were taken for test purposes and are not necessary for the reduction.) Note that comments from the observer or QA staff are not recorded in the headers, although the QA states are.
Of course, it's always a good idea to look at each of the files and measure some statistics before starting to reduce the data. The figure below shows some of the data taken for this program (we'll take a look at the statistics in the next section). Clockwise from top left:
- XD spectrum of the galaxy nucleus, with emission filling the short slit. The leftmost order (order 3) roughly corresponds to the K band, with the other orders covering progressively shorter wavelengths. Wavelength increases from top to bottom in the raw data. Other features visible in the data (click on the figure for a larger view) include radiation events (which look like cosmic ray hits) from the short camera lenses and a few patches of bad pixels. A close look also shows faint vertical striping.
- One of the sky frames. As the above OT screenshot shows, the data were taken in an ABBA pattern nodding to blank sky 50 arcsec from the extended galaxy nucleus. The faint "spectrum" in the blank sky frame is actually low-level persistence from the bright galaxy in the previous exposure.
- One of the telluric standard star spectra. As the exposures are much shorter (1 sec vs 300 sec), sky lines and radiation events are not obvious in the image.
- Daytime pinhole flat, used for tracing the spectra.
- Nighttime flat taken with the Quartz Halogen lamp. Flats taken with the IR lamp look similar but only have strong emission in order 3 (~K band, leftmost order).
- Argon arc spectrum
Pattern noise cleaning
GNIRS spectra are frequently affected by striping caused by the detector controller. This can usually be effectively removed using the cleanir.py script (a standalone python script, not part of the IRAF package) either at the start of the reduction or after running nsprepare. The vertical pattern is not prominent in this particular data set, however, and running the cleanir.py script has little effect. If we were to use it, the syntax would be something like this (run outside IRAF):
cleanir.py N20110516S0155.fits
See the cleanir github repo for more details. The nvnoise task in the GNIRS IRAF package is also available for modelling and subtracting electronic striping; type "help nvnoise" for details. The user is advised to visually inspect the cleaned files output by cleanir.py/nvnoise before proceeding with the rest of the reduction.
Dealing with radiation events in short camera data
Before 2012B, GNIRS spectra taken with the short cameras are affected by radiation events from the radioactive short camera lens coatings. A number of these can be seen in the galaxy spectra shown above. The radiation events, which bear some resemblance to cosmic ray hits, can be dealt with in several ways depending on the characteristics of the data. For example:
- Cosmic ray detection algorithms (e.g. IRAF's crutil package) can be used to detect and remove the radiation events
- Most tasks outside the Gemini IRAF package do not automatically preserve the Multi-Extension Fits (MEF) structure needed by the package. The fitsutil package provides tasks that can be used to manipulate MEF files
- Masks generated by cosmic ray detection algorithms can be passed to nsprepare using the "bpm" parameter, causing them to be written into the prepared file's DQ array
- The affected pixels can later be masked using nscombine's "masktype" and "maskvalue" parameters
- When run with fl_nonlinear+ and fl_sat+ (the default), nsprepare will add most of the affected pixels to the DQ array in any case
- Setting the fl_cravg flag in nsprepare causes the task to attempt to identify radiation events in each file
- These are added to the data quality array and can be removed later in the data reduction
- Pixel rejection algorithms can be employed when combining files
- In some circumstances the radiation events can simply be ignored
- For instance, affected pixels in arc spectra may have little effect on the data reduction, depending on which columns are used for the wavelength calibration
- The user could identify and interpolate over spikes in the extracted, 1D spectra
For the calibration data we will use option (4). The same could also be tried with the science data. However with this particular data set we only have two files at each nod position, so the data aren't well-suited to the use of sigma-clipping algorithms. Some experimentation shows that (3) doesn't give good results for this data set, so we will instead use a version of option (1) later in the reduction.
Preparing the data reduction environment
Before starting to reduce the data we need to load the necessary IRAF packages, define various files and make some data lists. First, we load the gemini and gnirs packages and make sure the right defaults are set. If using IRAF:
ecl> gemini ecl> gnirs
If using PyRAF:
--> from pyraf.iraf import gemini --> from pyraf.iraf import gnirs
ecl> unlearn gemini ecl> unlearn gemtools ecl> unlearn gnirs
Optionally, we can define a database directory and log file to be used for this specific pass through this particular data set. If these are not set, the default is to use a "database" subdirectory in the working directory and to write the task output to a file named "gnirs.log".
ecl> gnirs.logfile = "Q126.log" ecl> gnirs.database = "Q126_database"
If desired, separate paths to the raw and calibration data can also be defined (see e.g. gnirsexamples GN-XD-SCI for more information). For this reduction, however, we will simply do everything in the current working directory.
Before we create the data lists, a word on the XD flatfields. For reasons that are explained below, two sets of nighttime flats are taken using different lamps. The flats taken during the day are generally pinhole flats. These flats need to be processed separately, so we need to find out which belong to which set:
ecl> hselect N20110516*[0] field=$I,GCALLAMP,SLIT expr='OBSTYPE=="FLAT"' N20110516S0162.fits[0] IRhigh 0.68arcsec_G5530 N20110516S0163.fits[0] IRhigh 0.68arcsec_G5530 N20110516S0164.fits[0] IRhigh 0.68arcsec_G5530 N20110516S0165.fits[0] IRhigh 0.68arcsec_G5530 N20110516S0166.fits[0] IRhigh 0.68arcsec_G5530 N20110516S0167.fits[0] IRhigh 0.68arcsec_G5530 N20110516S0168.fits[0] QH 0.68arcsec_G5530 N20110516S0169.fits[0] QH 0.68arcsec_G5530 N20110516S0170.fits[0] QH 0.68arcsec_G5530 N20110516S0171.fits[0] QH 0.68arcsec_G5530 N20110516S0172.fits[0] QH 0.68arcsec_G5530 N20110516S0173.fits[0] QH 0.68arcsec_G5530 N20110516S0174.fits[0] QH 0.68arcsec_G5530 N20110516S0175.fits[0] QH 0.68arcsec_G5530 N20110516S0176.fits[0] QH 0.68arcsec_G5530 N20110516S0177.fits[0] QH 0.68arcsec_G5530 N20110516S0379.fits[0] QH LgPinholes_G5530 N20110516S0380.fits[0] QH LgPinholes_G5530 N20110516S0381.fits[0] QH LgPinholes_G5530 N20110516S0382.fits[0] QH LgPinholes_G5530 N20110516S0383.fits[0] QH LgPinholes_G5530
So, we have six flats taken with the IR lamp, 10 with the QH lamp, and five daytime pinhole flats. We can now delete any existing list files and construct lists containing the various kinds of data. As we already know (from inspecting the OT and observing log, above) that some of the standard star spectra were saturated, we only include the good data in telluric.lis (we can also check the observer's judgment using the nsprepare task, later).
ecl> delete *.lis ver- >& dev$null ecl> gemlist N20110516S 155-157,159 > obj.lis ecl> gemlist N20110516S 160-161 > arcs.lis ecl> gemlist N20110516S 162-167 > IRflats.lis ecl> gemlist N20110516S 168-177 > QHflats.lis ecl> gemlist N20110516S 186-189 > telluric.lis ecl> gemlist N20110516S 379-383 > pinholes.lis ecl> concat arcs.lis,QHflats.lis,IRflats.lis,pinholes.lis > cals.lis ecl> concat obj.lis,telluric.lis,cals.lis > all.lis
This is also a good time to measure some statistics on the files, record them in the log file and check for obviously deviant files that may have slipped past our earlier visual inspection and need to be excluded from the reduction:
ecl> printlog "--------" Q126.log verbose+ ecl> delete tmpfiles verify- >& dev$null ecl> gemextn @all.lis process="expand" index="1" > tmpfiles ecl> printlog "Image statistics" Q126.log ver+ ecl> imstatistic @tmpfiles | tee (gnirs.log, append+) ecl> delete tmpfiles
Finally, we use the nsheaders command to set the header keywords to be used by subsequent tasks:
ecl> nsheaders gnirs
The call to nsheaders must be repeated each time IRAF/PyRAF is restarted and the gnirs package loaded. If this is not done, each task will give the following kind of prompt:
ecl> nsprepare Input GNIRS image(s): Name of science extension: Name of variance extension: Name of data quality extension: Header keyword for digital averages: Header keyword for number of co-adds:
Preparing the data
At this point we can start preparing the data for further reduction. The nsprepare task (type "help nsprepare") can perform various operations such as adding variance and data quality extensions and attaching the mask definition file (MDF) to the data. The MDF gives the location of each order on the detector, so that the orders can eventually be "cut" and written into separate file extensions. The MDFs were defined during commissioning and are supplied with the Gemini IRAF package (in the gnirs$data directory). However, the exact location of the orders can change from observation to observation because of, for example, the inexact repeatability of the prism turret, deliberate recalibrations of the prism turret, or flexure. By setting shiftx=INDEF, shifty=INDEF and obstype=FLAT, we make the nsprepare task use the first flatfield in the input list to measure the location of the orders with respect to the pre-defined MDF. With the default parameter settings, the task will also check and attempt to correct the world coordinate system, flag saturated pixels and add variance and data quality extensions. At the time of writing we do not recommend using the nonlinearity correction provided by nsprepare on data taken with GNIRS at Gemini North, so we disable the fl_correct flag. A table in the gnirs$data directory, "array.fits" is used by nsprepare to obtain information about saturation levels etc.
ecl> imdelete email@example.com verify- >& dev$null ecl> nsprepare @all.lis shiftx=INDEF shifty=INDEF obstype=FLAT fl_correct- arraytable="gnirs$data/array.fits" . . NSPREPARE: Will measure MDF offset using N20110516S0162 NSOFFSET: Integer offset for gnirs$data/gnirsn-sxd-short-32-mdf is 36. NSOFFSET: Final offset for gnirs$data/gnirsn-sxd-short-32-mdf is 36.0. NSOFFSET: Shifting gnirsn-sxd-short-32-mdf-1508_12.fits[1] in X by 36.0 pixels. . .
The files output by nsprepare look the same as the original files but now include extensions containing the MDF, science data, and variance and data quality arrays. The gemextn or fxhead tasks can be used to compare the structure of the files before and after running nsprepare:
ecl> fxhead N20110516S0168 EXT# EXTTYPE EXTNAME EXTVE DIMENS BITPI INH OBJECT 0 N20110516S0168.fits 16 GCALflat 1 IMAGE -1 1024x1022 -32 ecl> fxhead nN20110516S0168 EXT# EXTTYPE EXTNAME EXTVE DIMENS BITPI INH OBJECT 0 nN20110516S0168.fit 16 GCALflat 1 BINTABLE MDF 72x6 8 2 IMAGE SCI 1 1024x1022 -32 F GCALflat 3 IMAGE VAR 1 1024x1022 -32 F GCALflat 4 IMAGE DQ 1 1024x1022 16 F GCALflat
It can be useful to look at the DQ extensions of the files. In the figure below, we can see that nsprepare has identified some of the pixels in the galaxy spectrum in orders 3 and 4 in file 159 as nonlinear. This is quite correct; as the clouds cleared during the observation, the bright galaxy rose above the nonlinear limit of approx. 5500ADU. This nonlinear "limit" is well below the actual saturation level of ~7500 ADU and has been set conservatively based on the properties of the detector's odd-even effect, to ensure that that effect can be removed during the data reduction. As the counts in the galaxy only slightly exceed that limit, we will not exclude that file from this training data set.
A number of pixels corresponding to radiation events have also been flagged in the DQ array (see #2 above), as have the known bad pixel patches.
Making the flatfield
Before creating the master flatfield we need to "cut" the individual flat files so that each order is written into a separate extension, as described in the previous section. We will also cut the arcs and pinholes for use later in the reduction. We use the nsreduce task for this (nscut could also be used; type "help nsreduce" or "help nscut"). Setting section="" in the call to nsreduce makes the task cut the data according to the sections defined in the MDF.
ecl> imdelete firstname.lastname@example.com verify- >& dev$null ecl> nsreduce firstname.lastname@example.com fl_sky- fl_cut+ section="" fl_flat- fl_dark- fl_nsappwave- fl_corner+
The cut data have the following file format, with the science data for order 3 in extension [SCI,1], order 4 in [SCI,2], etc. Again, gemextn or fxhead can be used to see the file structure:
ecl> gemextn rnN20110516S0168 rnN20110516S0168[0] rnN20110516S0168[1][MDF] rnN20110516S0168[2][SCI,1] rnN20110516S0168[3][VAR,1] rnN20110516S0168[4][DQ,1] rnN20110516S0168[5][SCI,2] rnN20110516S0168[6][VAR,2] rnN20110516S0168[7][DQ,2] rnN20110516S0168[8][SCI,3] rnN20110516S0168[9][VAR,3] rnN20110516S0168[10][DQ,3] rnN20110516S0168[11][SCI,4] rnN20110516S0168[12][VAR,4] rnN20110516S0168[13][DQ,4] rnN20110516S0168[14][SCI,5] rnN20110516S0168[15][VAR,5] rnN20110516S0168[16][DQ,5] rnN20110516S0168[17][SCI,6] rnN20110516S0168[18][VAR,6] rnN20110516S0168[19][DQ,6]
At this stage it is a good idea to check that the orders have been properly cut. This can be done using a single call to the nxdisplay task, or just by displaying each science extension in turn:
ecl> nxdisplay rnN20110516S0168 fr=1 ecl> display rnN20110516S0168[SCI,1] fr=1 ecl> display rnN20110516S0168[SCI,2] fr=1
...etc. The image below shows order 5 (extension SCI,3) in one of the QH flats cut using the shifted MDF obtained above (left) and the original, unshifted MDF (right). As in the left-hand image, the whole length of the slit (approx 47 pix for the 0.15 arcsec/pixel camera) should be visible and only one order included in the cut data. If the image looked more like the one on the right, we would start troubleshooting by checking the settings in nsprepare and inspecting the flat used for the cross-correlation.
Before making the flat, it can be useful to examine the image statistics for the individual flatfield exposures to look for abnormal count levels or unusually high standard deviations that may indicate data that should be excluded from the final flat. For example, these commands run imstat on some orders of the reduced flats and print the results to the logfile we defined earlier:
ecl> printlog "--------" Q126.log verbose+ ecl> delete tmpflat ecl> gemextn email@example.com process="expand" extname="SCI" extver="1" > tmpflat ecl> printlog "IR order 3 Flats" Q126.log verbose+ ecl> imstatistic @tmpflat | tee (gnirs.log, append+) ecl> delete tmpflat ecl> gemextn email@example.com process="expand" extname="SCI" extver="2" > tmpflat ecl> printlog "QH order 4 Flats" Q126.log verbose+ ecl> imstatistic @tmpflat | tee (gnirs.log, append+) ecl> delete tmpflat
... and similarly for the other orders. As explained below, only order 3 (extension [SCI,1]) of the IR flats and orders 4-8 ([SCI,2] - [SCI,6]) of the QH flats are relevant.
We now use the nsflat task (type "help nsflat") to construct two sets of flats. The IR flats are used for order 3, and the QH flats for the higher orders. This is because the QH lamp contains a strong spectral feature in the K band which can only be fit by a spline of very high order. If for some reason IR flats are not available or the user does not wish to use them, the QH lamp can be used with a low-order fit but the flatfielded spectra will contain a prominent artefact in order 3 until divided by the (flatfielded) telluric standard. Both lamps have other spectral features but they are weaker and can be fit by a lower-order spline and/or can be ignored.
The short exposure times used for the flats (typically just a few seconds at low-moderate spectral resolution) mean that they are affected by few radiation events. By default nsflat applies a pixel rejection algorithm which can be tuned to screen out such deviant pixels (see the "rejtype" and associated parameters). Alternatively, images in which radiation events are identified in the DQ array added by nsprepare can be excluded from the files used to create the flat. For this example, it is not necessary to reject any pixels/files because of radiation events.
It is not usually necessary to run nsflat interactively on the IR flats (although it never hurts to do so, at least initially), but it can be a good idea to check the fitting of the QH flats interactively. As the IR flat is only used for order 3 there is little signal in the higher orders, and the warnings given by nsflat about those orders can be ignored.
ecl> imdelete IRflat,IRflat_bpm.pl verify- >& dev$null ecl> nsflat firstname.lastname@example.com flatfile="IRflat.fits" fl_corner+ process="fit" order=10 lthresh=100. thr_flo=0.35 thr_fup=1.5 ecl> imdelete QHflat,QHflat_bpm.pl verify- >& dev$null ecl> nsflat email@example.com flatfile="QHflat.fits" fl_corner+ process="fit" order=5 lthresh=50. thr_flo=0.35 thr_fup=4.0 fl_inter+
When run interactively, nsflat should show a fairly smooth and well-fit curve for each of orders 4 - 8 of the QH flat (below). The higher orders only have signal over a portion of the array, and order 3 can be ignored as it is not used in the final flatfield (just hit "q" to continue to the next order). The fit order can be adjusted by typing ":order 8" (for example) in the plot window, and then "f" to redo the fit; hit "?" on the plot window for more options. The "fuzz" in the fitted data is due to the "odd-even effect". This is present in all data from GNIRS at Gemini North and will have divided out by the end of the reduction.
We now need to combine order 3 of the IR flat with orders 4-8 of the QH flat. For this to work as shown below, the data format must be as shown above (this should come automatically out of the above reduction steps). To combine the normalised IR and QH flats into a single master flat:
ecl> imdelete final_flat.fits verify- >& dev$null ecl> fxcopy IRflat.fits final_flat.fits "0-3" new_file+ ecl> fxinsert QHflat.fits final_flat.fits[3] groups="4-18"
The final flat from this process is shown below, using nxdisplay. Some features are visible, such as the dark "scratches" at the top of order 5. These are genuine features of the detector and have been there since the array was received. A vertical cut through a portion of the flat shows it to be well-normalised, and the "odd-even effect" is present at about the 10% level.
Reducing the science data
We start by cleaning the science data of radiation events. As discussed above, if we had several images per offset position we could construct median images to detect and replace the events, or take advantage of one of the pixel rejection algorithms in nscombine or nsstack (below). With just two images at each offset position, though, we will try the following:
Create a relatively clean comparison frame using the minimum of the two images at each position:
ecl> imdel min155,min156 ecl> gemcombine nN20110516S0155,nN20110516S0159 output=min155 combine=median reject=minmax nhigh=1 nlow=0 ecl> gemcombine nN20110516S0156,nN20110516S0157 output=min156 combine=median reject=minmax nhigh=1 nlow=0
Estimate the noise at that pixel using the RDNOISE and GAIN header keywords (written into the headers by nsprepare), and identify pixels deviating by some amount above the noise in the minimum frame. These spectra were taken through variable cloud cover and therefore have rather different flux levels, so the thresholds used in imexpr are not the same for all files. Some experimentation was needed to find thresholds that effectively identified radiation events with few or no false positives at the location of the galaxy spectrum or at the edges of the spectral orders:
ecl> hselect firstname.lastname@example.com field=$I,RDNOISE,GAIN expr=yes nN20110516S0155 6.19 13.50 ... ecl> imdel mask15?.pl ecl> imexpr expr= "(a-b)>30*sqrt(6.19**2+2*b/13.50) ? 1 : 0" output=mask155.pl a=nN20110516S0155.fits[sci] b=min155.fits[sci] ecl> imexpr expr= "(a-b)>100*sqrt(6.19**2+2*b/13.50) ? 1 : 0" output=mask159.pl a=nN20110516S0159.fits[sci] b=min155.fits[sci] ecl> imexpr expr= "(a-b)>20*sqrt(6.19**2+2*b/13.50) ? 1 : 0" output=mask156.pl a=nN20110516S0156.fits[sci] b=min156.fits[sci] ecl> imexpr expr= "(a-b)>20*sqrt(6.19**2+2*b/13.50) ? 1 : 0" output=mask157.pl a=nN20110516S0157.fits[sci] b=min156.fits[sci]
"Grow" the masked areas to cover the halos as well as the bright central pixels:
ecl> delete masks.lis >& dev$null ecl> files mask15?.pl > masks.lis ecl> imdel firstname.lastname@example.com ecl> crgrow @masks.lis firstname.lastname@example.com rad=1.5
Use the proto.fixpix task to interpolate over the masked pixels:
ecl> imdel firstname.lastname@example.com verify- >& dev$null ecl> copy nN20110516S0155.fits clnN20110516S0155.fits ecl> copy nN20110516S0156.fits clnN20110516S0156.fits ecl> copy nN20110516S0157.fits clnN20110516S0157.fits ecl> copy nN20110516S0159.fits clnN20110516S0159.fits ecl> proto.fixpix clnN20110516S0155[sci,1] mask=gmask155.pl ecl> proto.fixpix clnN20110516S0156[sci,1] mask=gmask156.pl ecl> proto.fixpix clnN20110516S0157[sci,1] mask=gmask157.pl ecl> proto.fixpix clnN20110516S0159[sci,1] mask=gmask159.pl
Other ways of accomplishing effectively the same thing are possible. For example, as the cores of the radiation events are usually flagged as nonlinear or saturated in the DQ array created by nsprepare, the DQ array could be used to make the mask (substituting nN20110516S0155[dq,1] into the above call to crgrow, for example). Rather than using fixpix, the masked values could be replaced with unaffected values from the "minimum" image, e.g.:
ecl> imdel email@example.com ecl> copy nN20110516S0155.fits clnN20110516S0155.fits ecl> copy nN20110516S0156.fits clnN20110516S0156.fits ecl> copy nN20110516S0157.fits clnN20110516S0157.fits ecl> copy nN20110516S0159.fits clnN20110516S0159.fits ecl> imexpr "c=1 ? b : a " output=clnN20110516S0155.fits[sci,overwrite] a=nN20110516S0155.fits[sci] b=min155.fits[sci] c=gmask155.pl ecl> imexpr "c=1 ? b : a " output=clnN20110516S0159.fits[sci,overwrite] a=nN20110516S0159.fits[sci] b=min155.fits[sci] c=gmask159.pl ecl> imexpr "c=1 ? b : a " output=clnN20110516S0156.fits[sci,overwrite] a=nN20110516S0156.fits[sci] b=min156.fits[sci] c=gmask156.pl ecl> imexpr "c=1 ? b : a " output=clnN20110516S0157.fits[sci,overwrite] a=nN20110516S0157.fits[sci] b=min156.fits[sci] c=gmask157.pl
"Before" and "after" images are shown below; the mask images can also be inspected to ensure that the right pixels have been identified as radiation events. In general, dealing with the radiation events is more effective when more individual exposures are available. Although the short exposure times for the standard star mean that many fewer pixels are affected, the same steps can also be carried out on those spectra.
The next step is to cut, flatfield and sky-subtract the cleaned galaxy data using nsreduce:
ecl> imdelete email@example.com verify- >& dev$null ecl> nsreduce firstname.lastname@example.com fl_nsappwave- fl_sky+ skyrange=INDEF fl_flat+ flatimage="final_flat.fits" ... ------------------------------------------------------------------------------ NSREDUCE: Generating the sky frame(s) using the other nod positions (separations greater than 1.5 arcsec) from neighbouring exposures. WARNING - NSSKY: Will take sky from input images NSSKY: Obs time for clnN20110516S0155-67773_1409.fits[0]: 10:02:46.4 NSSKY: Obs time for clnN20110516S0156-67773_1410.fits[0]: 10:08:26.9 0:05:40.5 NSSKY: Obs time for clnN20110516S0157-67773_1411.fits[0]: 10:14:03.9 0:05:37.0 NSSKY: Obs time for clnN20110516S0159-67773_1412.fits[0]: 10:22:53.9 0:08:50.0 NSSKY: Min/max: 0:05:37.0/ 0:08:50.0 NSSKY: Using observations within 530.0s as sky. NSSKY: Grouping images (please wait). NSSKY exit status: good. NSREDUCE: Processing 24 extension(s) from 4 file(s). NSREDUCE: slit: 0.68arcsec_G5530 NSREDUCE: grism: XD_G0526 n input --> output sky image dark flat scale 1 clnN20110516S0155 --> rclnN20110516S0155 clnN20110516S0156-67773_1410 none final_flat 1.0000 2 clnN20110516S0156 --> rclnN20110516S0156 clnN20110516S0155-67773_1409 none final_flat 1.0000 3 clnN20110516S0157 --> rclnN20110516S0157 clnN20110516S0159-67773_1412 none final_flat 1.0000 4 clnN20110516S0159 --> rclnN20110516S0159 clnN20110516S0157-67773_1411 none final_flat 1.0000 NSREDUCE exit status: good. ------------------------------------------------------------------------------
With skyrange set to "INDEF", nodsize=3 arcsec (the default) and no sky images explicitly defined, the task attempted to find sky images in the correct nod position and within a reasonable length of time of the on-source images. The output and logfile show that the correct sky frames were indeed identified (this information is also added to the file headers via the "SKYIMAGE" keyword). See the nsreduce help and gemini.gnirs.gnirsinfo files for more sky subtraction options.
The same procedure is applied to the prepared telluric standard spectra, cleaned in the same way as the galaxy data:
ecl> imdelete firstname.lastname@example.com verify- >& dev$null ecl> nsreduce email@example.com fl_nsappwave- fl_sky+ skyrange=INDEF fl_flat+ flatimage="final_flat.fits"
At this stage the sky emission should have subtracted out and the spectral orders correctly cut (as discussed above). The figure below shows how a raw and reduced galaxy (upper panels) and standard star file appear at this point (displayed using the display and nxdisplay commands)
We now have a couple of sky-subtracted, flatfielded galaxy and standard star spectra at each nod position. These individual spectra need to be combined. For the galaxy, we have two on-object spectra at the same nod position, and two blank sky spectra. We will use nscombine to simply average the two sky-subtracted, on-source files. For the telluric standard we will use nscombine to shift and average the nod beams. Because we have already cleaned the files of radiation events, we won't attempt any pixel rejection in nscombine or nsstack. If that had not been done, we could investigate using the "rejtype" and associated parameters to reject affected pixels.
ecl> imdelete rclnN20110516S0155_comb verify- >& dev$null ecl> nscombine rclnN20110516S0155,rclnN20110516S0159 rejtype=none masktype=none ecl> imdelete rclnN20110516S0186_comb verify- >& dev$null ecl> nscombine firstname.lastname@example.com rejtype=none masktype=none
The overall appearance of the galaxy data changes little during this procedure, but each order of the standard star (or a science target that didn't nod off the slit) should now have a single, central positive spectrum and two flanking negative spectra.
S-distortion correction and wavelength calibration
As the spectral orders are tilted and curved, the next step in the reduction is to rectify them. We also measure and apply the wavelength calibration at this stage.
The nssdist task is used to measure the spectral distortion, which it does by tracing the pinhole flatfield spectra across the array (a standard star stepped along the slit could also be used). The user needs to use the coordlist parameter to specify the file containing the pinhole coordinates. These files reside in the gnirs$data directory; in this case the user should pick the pinholes-short-dense-north.lis file, signifying the short (0.15"/pix") camera and GNIRS at Gemini North.
ecl> nssdist rnN20110516S0379 coordlist=gnirs$data/pinholes-short-dense-north.lis function="legendre" order=5 minsep=5 thresh=1000 nlost=0 fl_inter+
When run interactively, nssdist presents a cross-section of the pinholes for each order. Use the "m" key to mark each pinhole (followed by <Enter>), ignoring any faint ones that may be vignetted by the decker (the mechanism that defines the length of the slits). The first two of the three numbers that appear in the irafterm window are the pixel position of the selected peak. The third number in the parentheses is the expected peak position from the file given by the coordlist parameter. The actual and expected numbers don't have to match exactly, but the difference between each measured peak and the expected peak given by the configuration file should be approximately the same in each order. Type "q" when finished to move to the next order. The task will give warnings about losing the trace in the higher orders; this is simply because there is little signal at the short wavelength ends of these orders.
We now run nswavelength on the arc(s) to establish the pixel-wavelength relation. Only one arc spectrum is required, but it is also possible to combine several arcs first to improve the S/N. In this user's experience nswavelength works reliably on arcs taken in this configuration. However it is a good idea to run the task interactively, at least initially, to check the results:
ecl> imdelete arc_comb verify- >& dev$null ecl> nscombine firstname.lastname@example.com output="arc_comb" ecl> imdelete warc_comb verify- >& dev$null ecl> nswavelength arc_comb coordlist="gnirs$data/lowresargon.dat" fl_median+ threshold=300. nlost=10 fwidth=5. fl_inter+
After applying an approximate wavelength solution based on information in the file headers and the gnirs$data/nsappwave.fits file, nswavelength asks the user whether they want examine line identifications interactively. Answering "yes" brings up the plot shown below. Hitting "f" shows the fit to the arc lines and allows the user to exclude lines by pressing "d" on any of the points. The "q" key returns to the initial plot (use "?" to see all keystroke options). Using "m" to mark a line will bring up its pixel position, fitted wavelength and the wavelength expected from the line list, information that can serve as a possible extra check of whether the line identification and fitting if working well. Arc line plots are available on the GNIRS (at R~5000) and UKIRT (at lower resolution) web pages and can serve as a useful sanity check at this stage. If the line wavelengths are acceptable, hit "q" to quit.
Nswavelength determines a 2D wavelength solution by stepping along the spatial axis and fitting the arc lines, creating a 2D map of the wavelengths along the whole slit. When nswavelength calls the reidentify task to identify the arc lines up and down the slit and asks "Fit dispersion function interactively?", it should not be necessary to examine the lines (answer "NO"). This process is repeated for each of the 6 orders.
The above call to nswavelength uses fl_median+. This is appropriate for data in which the arc lines are horizontal. GNIRS' detector is slightly tilted, so the arc lines are not exactly horizontal. Using fl_median+ appears to give acceptable results nonetheless, but users interested in precise wavelength calibration may be interested in setting fl_median- and supplying a pinhole file via the sdist parameter, in which case nswavelength calls nssdist and rectifies the arc lines. See the nswavelength help for more information.
To actually apply the distortion correction and wavelength calibration to the data, it is necessary to run the galaxy and standard star files through nsfitcoords and nstransform. Nsfitcoords creates database files containing information that nstransform applies to the data; nsfitcoords does not actually alter the data itself. Normally, nsfitcoords must be run interactively:
ecl> imdelete frclnN20110516S0155_comb,frclnN20110516S0186_comb verify- >& dev$null ecl> nsfitcoords rclnN20110516S0155_comb lamptrans="warc_comb" sdisttrans="rnN20110516S0379" fl_inter+ lxorder=1 lyorder=3 sxorder=4 syorder=4 ecl> nsfitcoords rclnN20110516S0186_comb lamptrans="warc_comb" sdisttrans="rnN20110516S0379" fl_inter+ lxorder=1 lyorder=3 sxorder=4 syorder=4
For each order, nsfitcoords presents arc lamp and pinhole plots. Probably the most useful sequence of keystrokes to use on the plots is "xxyyr". This brings up a plot of x pixel vs y pixel, and the title of the plot (containing "lamp" or "sdist") shows whether the wavelength or s-distortion solution is the one being checked. The lower orders are quite well-behaved, but it is usually necessary to delete points from the s-dist plots for the higher orders. For example, the figure below shows the initial s-dist plot, the plot shown after typing "xxyyr", and a close-up of points deleted from the fit (using the "d" and "y" keys), for order 5. It is important that the same s-distortion and wavelength solutions be applied to the science and standard star data. This means that any points that are deleted in one call to nsfitcoords should also be deleted in the other.
We now run nstransform on both data sets:
ecl> imdelete tfrclnN20110516S0155_comb,tfrclnN20110516S0186_comb verify- >& dev$null ecl> nstransform frclnN20110516S0155_comb,frclnN20110516S0186_comb
By this stage in the reduction we have a single straightened, wavelength-calibrated file for the galaxy and the same for the telluric standard. After running nstransform on the data, the wavelength scale is inverted compared to the raw files. To check that the wavelength calibration is acceptable we could, for example, run nsfitcoords and nstransform on the arc itself, use nsextract or imcopy and splot to extract and plot a spectrum, and compare the line wavelengths against a reference spectrum such as those on the web pages mentioned above. As a rough check of the rectification of the spectra, we could use imexam's "j" command to fit Gaussians at various points and check that the fitted centre does not change appreciably along the spectrum.
Extracting spectra
The spectra are now ready to be extracted. The nsextract task has many options, and the most suitable ones will depend on the characteristics of the data set and the purpose(s) the spectra are to be used for. The spectra should be very close to vertical after the rectification performed above, so one possibility is to simply extract and sum a few columns. For bright objects like this galaxy and standard star, nsextract can automatically locate the peak of the spectrum and the task could be run non-interactively.
ecl> imdelete vtfrclnN20110516S0155_comb,vtfrclnN20110516S0186_comb verify- >& dev$null ecl> nsextract tfrclnN20110516S0155_comb up=6 low=-6 ylevel=INDEF fl_apall- fl_project+ background=none outprefix=v ecl> nsextract tfrclnN20110516S0186_comb up=6 low=-6 ylevel=INDEF fl_apall- fl_project+ background=none outprefix=v
We could also extract the data using apall. For XD spectra extracted using apall within nsextract, various default extraction parameters (upper and lower aperture limits, etc.) are specified order-by-order in the gnirs$data/apertures.fits table. If these values do not suit the user's needs, several options are available:
- Setting fl_usetabap- on the command line causes the aperture values in the aperture table to be ignored in favour of the user's upper and lower aperture limits, as in the example below.
- Many parameters can be changed interactively while running nsextract
- The user can create a copy of the gnirs$data/apertures.fits file and edit it to contain values optimised for their particular data set. This table is passed to nsextract using the "aptable" parameter
See the nsextract help for more information on these options.
Using apall's tracing functionality on the standard star data allows us to verify that the spectra were indeed straightened correctly in previous steps, and to correct for any small deviations if desired. We can then extract the galaxy spectra using the trace measured for the standard star. Because the galaxy fills the slit, we will disable background subtraction when extracting its spectra.
ecl> imdelete xtfrclnN20110516S0186_comb verify- >& dev$null ecl> nsextract tfrclnN20110516S0186_comb fl_project- fl_apall+ fl_trace+ fl_inter+ ecl> imdelete xtfrclnN20110516S0155_comb verify- >& dev$null ecl> nsextract tfrclnN20110516S0155_comb up=6 low=-6 fl_usetabap- fl_project- fl_apall+ background="none" fl_addvar- fl_trace- trace=tfrclnN20110516S0186_comb fl_inter+
When extracting the galaxy in this way, we say "no" when asked if we want to resize the aperture and then use the "s" key to shift the aperture so that it is properly centred on the emission peak.
The extracted galaxy and standard star spectra are shown below.
Telluric line cancellation
Several options are available at this stage. The nstelluric task can be used to shift and scale the standard star for (in theory) the best telluric line cancellation. Use of nstelluric is somewhat involved; the "msabsflux" section of this web page gives some hints that are also applicable to nstelluric. Alternatively, the native IRAF telluric and calibrate tasks can be run on each extension to shift, scale and ratio the spectra and apply a spectrophotometric calibration to the data. Users familiar with the Starlink software could instead use Figaro's scross, ishift and irflux tasks on each galaxy extension. Users familiar with Spextool and/or IDL may be interested in using the xtellcor package.
For this example, we will simply divide the galaxy by the standard star and then multiply by a blackbody of appropriate temperature. (To improve the telluric cancellation, the fxcor and imshift tasks in the noao.rv and images.imgeom packages could be used on each extension to cross-correlate and shift the spectra before dividing.) The blackbody spectra will need to span the same range of wavelengths as the real data. This can be determined using the hselect command to show the starting wavelength and wavelength increment, or by writing the spectra into text files and examining the start and end wavelengths in a text editor:
hselect vtfrclnN20110516S0155_comb[sci,1] field=$I,CRVAL1,CD1_1 expr="yes" #vtfrclnN20110516S0155_comb[sci,1] 18938.51171875 6.43956995010377 onedspec delete temp* wspectext vtfrclnN20110516S0155_comb[sci,1] temp1 header- #Starting wavelength = 18939 Angstroms, ending wavelength = 25513 Angstroms
We also need to know the spectral type and temperature of the standard star. The spectral type can be found using SIMBAD, for example, and this web page is a useful source of stellar temperatures. This particular standard star, HIP 65159, is of spectral type F8V with a temperature of approximately 6100 K. Depending on the spectral type of the standard star, it may be desirable to model out lines originating in the standard star itself during this process.
So, to conclude the reduction, we perform something like this set of steps on each extension of the extracted galaxy file:
delete N4736_3.fits verify- >& dev$null imarith vtfrclnN20110516S0155_comb[sci,1] / vtfrclnN20110516S0186_comb[SCI,1] result=N4736_3 imdel order3_6100K verify- >& dev$null mk1dspec order3_6100K ncols=1022 wstart=18939 wend=25513 temperature=6100 imdel N4736_3_bb verify- >& dev$null imarith N4736_3 * order3_6100K result=N4736_3_bb delete bb_orders.txt verify- >& dev$null files N4736_*bb.fits > bb_orders.txt delete txt*bb.fits verify- >& dev$null wspectext @bb_orders.txt txt@bb_orders.txt header=no
The resulting galaxy spectrum is shown below with the orders merged together and the flux normalised around 1 micron. Given the narrow slit and non-photometric conditions under which these observations were obtained, no flux calibration was attempted during this reduction. This could be accomplished by scaling the spectrum to existing photometry of the galaxy, if data in a similar aperture is available. The grey bars show some regions of strong atmospheric absorption (see e.g. these sky transmission spectra). Some of the "noise" and features in the spectrum, especially in orders 3 and 4, are probably in fact real, distinct absorption features in cool stars in the target galaxy itself.


text:
Malaysian Plane's Disappearance Still a Mystery — Here's What We Know (So Far)
On early Saturday morning, Malaysian Airlines flight 370 vanished from the skies (and radar). Three days later, authorities are no closer to figuring out what happened to it, leaving the fate of the 239 passengers (including three Americans) and crewmembers unknown.
Some big questions about this story right now: Why is this still a mystery? How does no one know what happened? Is it possible a plane could just disappear without a trace?
The answer to the last question is no; it seems likely that the plane fell into the ocean somewhere off the coast of Vietnam (though exactly where is impossible to know, for now). But whatever caused it to fall is what investigators would like to know most. It may have been something non-human-related, like mechanical failure, but with the announcement that two passengers got onboard using stolen passports, there is the possibility that this could be a terrorist incident.
Which leaves the first two questions. The flight was headed to Beijing from Kuala Lumpur, but exactly when and where it disappeared remains uncertain. And every potential lead authorities have uncovered has come up cold:
A suspected life raft bobbing in the Gulf of Thailand turned out to be the lid of a large box, Vietnamese authorities said. An oil slick in Malaysian waters was found not to contain jet fuel. And what was initially thought to be an aircraft tail floating in the Gulf of Thailand was actually "logs tied together," according to a Malaysian official.
This has left spokespeople from all countries involved (and the airline) at a loss to explain things to desperate family members and a mystified global audience. According to the BBC, "There are now 40 ships and 34 aircraft from nine different nations taking part in the search in the seas off Vietnam and Malaysia," making this a massive search project.
Here is a list of passengers by nationality on the plane, provided by the airline:
- 153 Chinese, including one child
- 38 Malaysians
- 7 Indonesians
- 6 Australians
- 5 Indians
- 4 French
- 3 Americans, including one child
- 2 each from New Zealand, Ukraine and Canada
- One each from Russia, Taiwan, Italy, Netherlands and Austria (although both Italy and Austria deny any of their nationals were onboard)
[BBC, CNN, N.Y. Times]

subset: commoncrawl


text:
New, improved embed code
We're constantly working behind the scenes to improve performance across our font network. Most of these changes are, by design, invisible to you or your visitors. But today we're releasing some small but meaningful changes to our recommended embed code that will make font serving even better.
Update: We've since made asynchronous loading a default setting for all new kits. Details are in this blog post.
To benefit from these improvements, you need only update your sites to use the new embed code. Note that doing so is completely optional: all sites using the prior embed code will continue to work. But the new embed code offers a few performance improvements which we think you'll appreciate.
Protocol relative URLs
Without further ado, here's what the new embed code looks like:
//use.typekit.net/xxxxxx.js try{Typekit.load();}catch(e){}
The first change you'll notice is that we're now recommending "protocol-relative" URLs for our JavaScript link. Previously this was an absolute link, including the protocol ("http" or "https"); this caused headaches for sites with both secure and insecure sections.
New domain
The second change is that we've made all kits available at use.typekit.net in addition to use.typekit.com. These hostnames run on the same infrastructure and behave identically. The only difference is that the new domain does not have any cookies set on it, as recommended by both Google and Yahoo performance best practices.
Our font network has never set cookies or relied on cookies. However, use.typekit.com shares a domain name with our blog and website, both of which use cookies for functionality and analytics. If someone has recently visited typekit.com, and then visits a site with an embed code pointing to use.typekit.com, then extra cookies would be sent with any requests for fonts. By offering our fonts on a second domain name, we can avoid this unnecessary data being sent.
Official asynchronous embed code
Previously on this blog, Sean discussed a variety of approaches to loading Typekit fonts asynchronously. The upside of asynchronous loading is that, if a request for a kit is slow for any reason, it won't block the rendering of the rest of the page. The downside is that it requires writing custom CSS to hide the flash of unstyled text that can occur while fonts are loading. That said, these patterns have been working very well for sites that need this capability, so we're now including an option to generate the asynchronous embed code directly in the kit editor.
Using the new embed code
You can find the new recommended embed code in the Kit Editor. There is no need to republish your kits to use the new embed code; simply copy and paste the new embed code into your sites.
As always, if you have any questions about this, please reach out to firstname.lastname@example.com and we'll get back to you right away.
10 Responses
Thanks Typekit!
Love the async code. Thank you!
This is great, I'll be very glad to use the new async-embed and reap the performance benefits! Thanks!
The asynchronous embed was causing issues on modernizr.com, having the font events trigger too slow and, as a result, browsers would start to render something only to then undo it.
If you aren't trying to have no FOUT, the async is great, but if you *are* trying to hide text until the fonts have loaded, I recommend not using async. Fast machines + fast browsers will be too fast for your code. 🙂
That said, modernizr.com is now using the new embed code. Hooray! (it also got some other much-needed improvements.)
Update on this: I think the slowdown is exacerbated when using YepNope, as I see a much more significant flash/delay when doing so. Using Typekit's own native embed code works a lot better. Since this was not a reduced test case, I can't quite be conclusive either way. However, I am posting this here to correct my earlier statement—it was *not* the asynchronous loading (alone?) that caused the problem.
Hey Sean, it seems the issue was caused by YepNope's async loading. When I switched to the Typekit async code (and moved it way up to right after Modernizr), it no longer experienced a FOUT.
Excited to implement the asynchronous code on the blog. No flashy text!
There is still room for optimization. I would appreciate to help you with further improvements.
Comments are closed.


text:
Rare protest by family of tortured child puts spotlight on abuse of Christian working poor.
LAHORE, Pakistan, January 28 (Compass Direct News) — A daring protest and a high-profile funeral here on Monday (Jan. 25) for a 12-year-old Christian girl who died from torture and malnourishment has cast a rare spotlight on abuse of the Christian poor in Pakistan.
In an uncommon challenge in the predominantly Muslim nation, the Christian parents of Shazia Bashir Masih protested police unresponsiveness to the alleged violence against their daughter by Muslim attorney Chaudhary Muhammad Naeem and his family and his attempt to buy their silence after her death. The house servant died on Friday (Jan. 22) after working eight months in Naeem's house.
An initial medical report indicated she died gradually from blows from a blunt instrument, wounds from a sharp-edged weapon, misuse of medicines and malnourishment. Key media highlighted the case on Pakistan's airwaves, and minority rights groups along with high-ranking Christian politicians have swooped in to help.
Initially police were unresponsive to the family's efforts to file charges against Muslim attorney Naeem, and on Saturday (Jan. 23) they staged a protest in front of the Punjab Assembly. The power of Naeem, a former president of the Lahore Bar Association, was such that officers at Litton Road police station refused to listen to Shazia's relatives when they tried to file a complaint to retrieve her three months ago, telling the girl's relatives, "a case against a lawyer cannot be registered," her uncle Rafiq Masih told Compass.
Her mother, Nasreen Bibi, told Compass Naeem came to their home on the day Shazia died and offered 30,000 rupees (US$350) to keep the death secret and to pay for burial expenses.
"I refused to accept their offer, and they went they went away hurling death threats," she said.
Bibi, a widow who subsequently married a 70-year-old blind man, told Compass that hunger and poverty had forced her to send her daughter to work at Naeem's house for 1,000 rupees per month (US$12) — the family's only source of income. Two older daughters are married, and she still cares for a 10-year-old daughter and 8-year-old son living at home.
Rafiq Masih said Naeem illegally kept Shazia at his house, forced her to work long hours and summarily refused family requests to see her. Three months ago, Masih said, Naeem allowed him and Shazia's mother to see her for five minutes, and the girl complained that Naeem and his son were raping her. Shazia also told them that Naeem, his wife and sister-in-law were beating her and threatening to harm her if she tried to escape.
Enraged, Naeem promptly asked him and Shazia's mother to leave, Masih said.
"We tried to bring Shazia with us back home," he said, "but Naeem flatly refused to let Shazia go, and he cruelly and inhumanely grabbed her hair and dragged her inside the house. He returned to threaten us with dire consequences if we tried to file a case against him for keeping Shazia at his home as a bonded laborer."
Masih and Bibi then went to the Litton Road police station to try to get Naeem to release Shazia, and it was then that duty officers deliberately offered the misinformation that a case could not be made against a lawyer, they said.
A Muslim neighbor of Naeem, Shaukat Ali Agha, told Compass that Naeem tortured Shazia.
"Often that little girl's cries for mercy could be heard from the residence of the lawyer during the dead of night," Agha said. "And whenever Shazia requested some food, she got thrashed badly by his wife, son and sister-in-law. One day Shazia was viciously beaten when, forced by starvation, she could not resist picking up a small piece of sugar cane from the lawn of Naeem's residence to chew."
As Shazia's condition deteriorated, Naeem released her to the family and they took her to Jinnah Hospital Lahore on Jan. 19. After fighting for her life there for three days, she succumbed to her injuries and critically malnourished condition, her mother said.
Doctors at the hospital told Compass they found 18 wounds on her body: 13 from a blunt instrument, and five from a "sharp-edged weapon."
A high-ranking investigating official told Compass that Naeem had given contrary statements under questioning. The police official said that Naeem initially stated that Shazia had fallen down some stairs and died. The police official, who spoke on condition of anonymity, said Naeem quickly changed his statement, saying she had stolen food from the refrigerator and therefore was beaten. The official added that Naeem also said Shazia was insane, disobedient and stubborn, and "therefore she had gotten thrashed and died."
Doctors at Mayo Hospital Morgue have taken blood and tissue samples from Shazia's liver, stomach and kidneys and sent them to the Chief Chemical Examiner's Forensic Lab in Islamabad to determine the official causes of death, officials said.
Family Beaten in Court
On Saturday (Jan. 23) Shazia's family, along with many other Christians and Muslims, protested outside the Punjab Assembly for three hours, according to rights groups. Key television channels covered police inaction in the face of the violent death, and several high-profile politicians pledged their support, including Pakistani President Asif Ali Zardari. He promised to give the family 500,000 rupees (US$5,835) after Pakistani Minister of Minorities Affairs Shahbaz Bhatti announced a gift of the same amount to compensate the family.
Only after this public pressure did police file a First Information Report, and Naeem and six others, including family members, were arrested earlier this week. Chief Minister of Punjab Shahbaz Sharif reportedly visited the family, promising justice.
The Lahore High Court took up the case on Tuesday (Jan. 26) and ordered police to conclude investigations within 14 days, but none of the high-level action seemed to matter at a hearing that day at District and Sessions Court Lahore, at which Naeem and his accusers were present. As routinely happens in cases where Christians in Pakistan accuse Muslims of wrongdoing, Compass observed as Naeem's lawyers chanted slogans against Shazia's family, threatened them and beat them — including Bibi and her blind husband — driving them from the courtroom.
Compass witnessed the Muslim attorneys yelling chants against local media and Christianity, as well. Naeem was neither handcuffed nor escorted by Defense A-Division Police, though he has been charged with murder.
At Shazia's funeral on Monday at Sacred Heart Cathedral Church, Bishop of Lahore Diocese the Rt. Rev. Alexander John Malik officiated as eminent Christian politicians, human rights activists, Christian clergymen and many others gathered to pay their respects amid heavy police contingents.
After the funeral, her body was taken to her home in the Sammanabad slum of Arriya Nagar, where a throng of neighbors and Christian mourners gathered, chanting for justice. Shazia's coffin was then taken to Miani Sahib Christian Cemetery, where she was buried amid cries and tears.
Present at the burial ceremonies were Provincial Minister of Punjab for Minorities Affairs Kamran Michael, Federal Minister for Minorities Affairs Bhatti, Christian members of Punjab Parliament Tahir Naveed Chaudhary and Khalil Tahir Sindhu, Bishop Albert Javed, Bishop Samuel Azariah, National Director of the Center for Legal Aid Assistance and Settlement Joseph Francis and other Christian leaders.
In a joint statement issued that day in Lahore, Catholic Archbishop Lawrence John Saldanha and Peter Jacob, executive secretary of the National Council for Justice and Peace, said that Shazia's death was not an isolated incident, but that violence against the more than 10 million child laborers in the country is commonplace.


text:
For eons in New England, a First Sign of Spring has been sap oozing from a maple tree. In northwestern Montana, officials atGlacier National Park report that a long understood First Sign of Spring is the appearance of a bear — emerging from hibernation. In other parts of the country, the telltale signs have long been natural recurrences, such as the appearance of crocuses, sandhill cranes, great blue herons and stinging nettles.
But the world is changing and maybe it's time to reconsider and draw up a new list. Where do we look in 2014 for that initial hint of spring – the season's on-button?
Time was, the arrival of robins used to herald the oncoming of spring in Washington. But these days, lots of robins spend the whole winter rocking the Mid-Atlantic and, according to Robert K. Musil, president of the , the robins that do migrate "are showing up about three weeks earlier than they did in Thoreau's day, according to his notes."
The Rachel Carson Council is a nonprofit group, based in the Washington suburbs, that carries on the environmental monitoring and education begun by Rachel Carson, author of Silent Spring.
It seems, Robert says, "we need a new harbinger of spring in these days of a warming world and wildly varying and disrupted climate patterns."
Robert suggests that the best New First Sign of Spring might be the Black Vulture. "These used to be purely southern birds and they are not noted — except rarely-- in the careful notes and observations of Washington nature writers and observers from the past ."
He is talking about John Burroughs in the 1860s, Elliott Coues in the 1880s, Florence Merriam Bailey 1890s, Theodore Roosevelt in the early 1900s and Louis Halle, Rachel Carson and Roger Tory Peterson in the1940s and 1950s.
Today, Black Vultures have moved northward, Robert says, and now are resident around the National Zoo, the C&O Canal and other Washington spots. "If you look up," he says, "you may see one hovering over you... We've moved, thanks to climate change, from the cheery robin to the scary circling of the Black Vulture."
Traditionally for baseball fans, the First Sign of Spring was the day that pitchers and catchers reported to spring training.
Sportswriter Thomas Boswell of The Washington Post says that has shifted. The best professional baseball players, especially the team leaders, no longer report on the day they are supposed to, Boz says. "They report when, as adults, they think they should."
So spring this year, Boz says, began when Washington Nationals shortstop Ian Desmond reported to spring training in Viera, Fla. — a week before the mid-February date on which pitchers and catchers reported "and almost two weeks before regulars like him are supposed to report."
Desmond showed up early, Boz says, "so he can work on fielding mechanics and learn the new manager's ideas on advanced-metrics defensive positioning. He's been doing drills by throwing to first base from his knees and studying spray charts of opposing hitters to use new defensive shifts."
The New First Sign of Spring, when it comes to baseball, has changed in recent years, Boz says, because "players are much more serious now. Those $50-to-$250-million contracts get your attention. And Desmond, for example, may get a $75 million to $125 million deal within two years --from the Nats or somebody else."
So greed has reset spring's alarm clock? "It's not just greed," Boz says. "It's professionalism."
And Beyond
Khaki shorts. Spring dresses. Seersucker suits. Clothes have long proved to be sure First Signs of Spring.
In 19th century Chicago there was a man named Popcorn John who sold bags of popcorn year round. "He never wears a coat," according to a Chicago Tribune reporter in 1896, "except during the coldest days of winter." And then when he put the coat away, "the sleeves of his clean white shirt flap in the wind ... and the flutter of those same sleeves is the first sign of spring."
Fashions change, of course, so according to Glamour, New Signs of Spring 2014 include wide-leg trousers and tea-length skirts.
But in some places in America, the First Signs of Spring pretty much stay the same year after year. At least that's true at one naturist resort. "I don't think nudists are much different than in the past regarding the seasonal change to spring," says Don Kiester of Nature's Hideaway Nudist Resort in Osage, Oklahoma. "As the weather warms, we take advantage of the weather by enjoying the sunshine, while working around the resort in the nude."
Have the First Signs of Spring changed where you live?
The Protojournalist is an experiment in reporting. Abstract. Concrete. @NPRtpj
Copyright 2021 NPR. To see more, visit https://www.npr.org.


text:
Got it!
I like both versions, but the softer dough is a little harder to work with. Experiment and see which you prefer.
As always, I urge you to seek out organic and local ingredients. They really do make a difference.
Still hungry? You'll find links to all of my sweet and savory Less Fuss, More Flavor recipes in the Farmgirl Fare Recipe Index.


text:
Oct 04, 2013 | Carpet One Floor & Home
Cooler air, changing leaves – all signs of fall. What better way to celebrate the crisp weather than with some cozy fireplace inspiration. From traditional to modern, gas to wood-burning, a fireplace can add a serious cozy factor to your room. Just imagine snuggling up to a warm fire on a chilly night.
If you've already got a fireplace, there are many ways you can give it an update to change your look. Repainting the mantle or changing out the accessories and art above it can update your space with little effort. Get cozy and enjoy these 12 beautiful fireplaces!
Marble and built-ins offer plenty of options for making this fireplace your own. Photo: Jared Rohrer Design
This modern fireplace adds warmth you can enjoy from every angle. Photo: Ave Designs
Dress up a neutral mantel with a bright, colorful painting. Photo: Solus Decor
You won't have to worry about tripping on this fireplace that fits seamlessly in the wall. Photo: Home Designing
Talk about beautiful storage! These built-ins surround a gorgeous tile fireplace. The dark hardwood floors also add some coziness to this space. Photo: Carpet One Floor & Home
Don't worry if you don't have a fireplace and don't want to build a chimney. You can benefit from a warm cozy fireplace too. The flame seen here is actually from a gel fuel that doesn't give off smoke, odor or ash! Photo: Ventless Fireplace
A simple stone fireplace adds natural beauty to your home. Photo: Majestic
Large-scale stone and a log shaped mantel create a rustic warmth you can't ignore. Photo: I Love Cob
Branch inspired art makes a great accent for this natural stone fireplace. Photo: Home Designing
Floor pillows are a great accessory to have near a cozy fireplace. Photo: Gel Fireplaces
A simple, sleek wood mantel caps off this beautiful stone fireplace. Photo: Best Furniture
Clean and bright. This fireplace fits snugly in with built-in shelving. Photo: Sphinx by Oriental Weavers
Looking for more fireplace inspiration? Check out our Pinterest Board Cozy Fireplaces


text: We use cookies to ensure that we give you the best experience on our website. If you continue without changing your settings, we will assume that you are happy to receive all cookies on the Business Car website. However, if you would like to, you can change your cookies at any time


text:
Saturdays in late February are about evaluations for pending bracket picks:
Big 12 is interesting: Texas A&M beats Baylor by 10, Kansas thumps Iowa State by 37, Texas beats Oklahoma (Durant: 32), Texas Tech beats Okla St, Kansas State hits 20 wins: Wow, the Big 12 Tournament will be fierce among the teams at the top (but watch out for the challenges from the teams on the bubble).
Air Force loses to TCU (11-15) by 5: And that would officially (and finally) end any interest I had in backing AFA as this year's George Mason.
Sunday's Best:
UNC at
RIP Damien Nash, Broncos RB.


text:
Free workshop for members
CVs/Résumés/Career Summaries - How to make an impact in writing
The date and time: June 28, 10.30am to 4.30pm
The venue
Bristol Old Vic
King Street
The ability to produce a CV/Career Summary/Résumé in a way that makes you stand out from the crowd is a must. It should be clear, straightforward and deliver an immediate and accessible snapshot of why people should hire you. This workshop will help you make a high impact in writing.
Workshop Content
This workshop aims to give you the tools to assess each opportunity and how best to construct and tailor your CV to get yourself noticed. It includes:
- Initial review of each other's CVs/career summaries
- Analysing the function and purpose of these key documents: what you want your CV/career summary to do for you?
- How that knowledge can help to produce a new document, tailored to specific clients and markets
- Specific fundamentals of effective CV/career summary writing
- Assessment/review of 'mock' CVs / career summaries
- Identifying key achievements and vital experiences that should be highlighted in your CV/career summary
- Re-designing your CV /career summary foundation document
- Next steps to re-working your CV/career summary.
The workshop includes a number of practical exercises in which you will get the chance to work individually and in pairs. You will need to bring a hard copy of you CV/Résumé/Career Summary.
Who should attend?
This course is relevant to anyone who wants to improve the way they present themselves in writing with the aim of getting a specific interview or audition.
Learning outcomes
By the end of the workshop, participants will:
- Have a clear idea of what an effective CV/career summary looks like
- Have made the first steps to update their own
- Have a greater understanding of how to create individual selling documents with maximum impact
- Know how to produce a selling document that will support them in trying to secure interviews and/or to open up other work opportunities.
Apply online by June 19
To apply for a place on this free, one-day workshop, fill in the short application form by June 19. You will need to register if you have not done so already.
All workshops have been over-subscribed to date so successful applicants will be chosen randomly after the cut-off date. We will let you know if your application has been successful by June 21.
Tutors: Sue Walker and Muriel McClymont
Further enquiries
e: email@example.com
t: 07710 240585


text:
People have often talked about "the cult of Apple", and if a recent BBC TV documentary is to be believed, there could be something in it.
The program, Secrets of the Superbrands, looks at why technology megabrands such as Apple, Facebook and Twitter have become so popular and such a big part of many people's lives.
In the first episode, presenter Alex Riley decided to take a look at Apple. He wanted to discover what it is about the company that makes people so emotional. Footage of the opening of the Cupertino company's Covent Garden store in central London last year showed hordes of Apple devotees lining up outside overnight, while the staff whipped up customers (and themselves) into something of an evangelical frenzy. This religious-like fervor got Riley thinking – he decided to take a closer look at the inside of the head of an Apple fanatic to see what on earth was going on in there.
Riley contacted the editor of World of Apple, Alex Brooks, an Apple worshipper who claims to think about Apple 24 hours a day, which is possibly 23 hours too many for most regular people. A team of neuroscientists studied Brooks' brain while undergoing an MRI scan, to see how it reacted to images of Apple products and (heaven forbid) non-Apple products.
According to the neuroscientists, the scan revealed that there were marked differences in Brooks' reactions to the different products. Previously, the scientists had studied the brains of those of religious faith, and they found that, as Riley puts it: "The Apple products are triggering the same bits of [Brooks'] brain as religious imagery triggers in a person of faith."
"This suggests that the big tech brands have harnessed, or exploit, the brain areas that have evolved to process religion," one of the scientists says. A meeting with the Bishop of Buckingham, who reads the Bible using his Apple iPad, appeared to back up this assertion. He pointed out how the Apple store in, for example, Covent Garden has a lot of religious imagery built into it, with its stone floors, abundance of arches, and little altars (on which the products are displayed). And of course, the documentary doesn't fail to give Steve Jobs a mention, calling him "the Messiah".
Secrets of the Superbrands also looks at the likes of Facebook, which has enjoyed phenomenal success in just a few years. "Like Apple, mobile phones and social networks offer an opportunity for us to express our basic human need to communicate. And it's by tapping into our basic needs, like gossip, religion or sex that these brands are taking over our world at such lightning speed," Riley says. He concludes: "That's not to say that clever marketing and brilliant technical innovation aren't also crucial, but it seems that if you're not providing a service which is of potential interest to every one of the 6.9 billion human beings on the planet, the chances are you're never going to become a technology superbrand."
Editors' Recommendations
- Apple says it made 'AI for the rest of us' — and it's right
- Even Intel's best chips won't catch up with Apple, TSMC CEO says
- Intel chips held back the 15-inch MacBook Air, Apple says
- Apple boss says AR 'may be even better than just the real world'
- Apple's security trumps Microsoft and Twitter's, say feds


text:
CIA Site Redirect
CIA.gov has changed its Web address . . .
CIA.gov is now encrypted, except for our Electronic Reading Room, to assure visitor confidentiality. As a result, the Web address for pages and documents in our site has changed from http:// to https://. In addition, CIA Careers has moved to a new location within the Web site
Please use the links or the search form below to find the information you seek.
Contact Us (by postal mail, by fax, by phone, or via our e-mail form)
CIA Careers (find a job and submit a resume)
The World Factbook (our premier country reference)
- World Leaders (formerly listed as Chiefs of State)
Site Map (links to major sections of the Web site)
Thank you for visiting
The CIA Web Team
Error Code: 301 - Moved Permanently
Posted: May 09, 2007 06:55 AM
Last Updated: Nov 30, 2010 01:54 PM


text:
As President Hollande's government tries to make some impression on the Syrian problem, they're also dealing with unrest at home. The city of Marseille has been rocked by violence recently. Twenty people have died in gang shoot-outs since the beginning of the year - many of the people killed with AK-47s. The violence seems to be fueled by drugs and turf wars in the city's housing projects. This week, the French government held a crisis meeting on the situation. NPR's Eleanor Beardsley joins us from the old port of Marseille. Eleanor, thanks for being with us.
ELEANOR BEARDSLEY, BYLINE: Well, it's great to be with you, Scott.
SIMON: And describe to us what's going on there.
BEARDSLEY: There's been 20 people killed, like you said, with AK-47s. There's a huge juvenile delinquency problem here. This is the capital of chain and purse snatchings. And I've actually seen horrible surveillance video of just young kids that look to be 14 years old just beating up old people and snatching their gold chains. And somebody told me, you know, they're dealers at 16 and they're in gun battles by the age of 20.
But behind all this are social issues. You know, this is France's second-largest city, but it's France's poorest city. Fifty percent of the people here live under the poverty level. Unemployment is high. The dropout rate, you know, in schools is very high. It's an immigrant city - it's always been an immigrant city - but they keep coming. The city is divided between the rich and the poor. And so, you know, you have all these social tensions. And the killings are going on in the north of the city where you have these housing projects all over the place. And a lot of them have become no-go areas for the police. And, of course, there aren't enough police and the police are underfunded. So, these are some of the problems behind what's going on.
SIMON: I know you've been out talking to a number of the people who live in those areas where the violence is worst. What are they telling you?
BEARDSLEY: Well, it's funny because Marseille residents are distressed. I mean, like, something's got to be done; this town wasn't like this. But some people just shrug and they say, you know, we've always lived with it. Because this is a working-class town, it's a port town, it's a gritty, tough place. So, they say, you know, we'll live with it. And I've talked to Mohammed Zianni(ph). He opened a business in one of the tough neighborhoods, and this is what he says about it.
MOHAMMED ZIANNI: Right now in Marseille, it's like Chicago in 1930 - gangs, violence, drugs. And you can find the Kalashnikov for 500 euros. It's crazy.
SIMON: How do they get AK-47s and other weaponry into Marseille, the port?
BEARDSLEY: Well, someone told me today they're flowing in from the former Yugoslavia. That's where most of them are coming from, and from Russia. And so I think they're coming in through land even, not by sea.
SIMON: Eleanor, what's it like to be there?
BEARDSLEY: Right now, I'm looking at the yachts in the harbor. It's also a working port. The mountains, the Mediterranean arid mountains, rise up behind it; the capital of European culture for 2013. So it's a very cultural city with beautiful buildings and, you know, opera. And they're going to have the biggest pedestrian area in Europe in 2013. But then you have this ugly underbelly, this dark side of lawlessness, going on behind all this. So, it's really kind of a complicated, divided place.
SIMON: French central government says they're going to deploy a couple hundred more police officers to Marseille. What kind of difference might that make according to the feeling there?
BEARDSLEY: Some people said, you know, what are a couple of drops of water in the ocean? They say it'll do nothing. And we've talked to some policemen and they say, you know, kids drive without licenses, they ride their motorcycles without helmets. These are small crimes but one policeman told me, he said, you know what? We need to have zero tolerance 'cause these small delinquencies are leading to the bigger crimes. There's not enough police to crack down on what's happening here. And so they're happy that the government is at least addressing the problem.
SIMON: Eleanor, how important a story is this, urgent an issue is this, in France? President Hollande, Socialist, came to office with an economic agenda. Is this an issue that's on the front burner?
BEARDSLEY: Oh, yes. It absolutely was given the government's top attention because they had a huge crisis meeting on it this week. A Socialist senator called for the army to be sent into Marseille, and that just shocked people because that would be not something that a Socialist would usually say. So, it's absolutely been a very big news story.
SIMON: NPR's Eleanor Beardsley in Marseille. Thanks so much.
BEARDSLEY: You're welcome, Scott.
SIMON: You're listening to WEEKEND EDITION from NPR News. Transcript provided by NPR, Copyright NPR.


text:
Showing 1-13 of 13 modular sofas
Room for one more?
Handmade in Blighty, our sofas are the comfiest, snuggliest in town. We've got stacks of sofas styles to choose from including traditional and retro as well as some contemporary takes on the classic chesterfield.
All of our sofas are available in bundles of gorgeous fabrics ranging from brushed cottons to clever velvets and our wonderfully weathered and beaten leathers. And we have oodles of different sizes too! Plump for a snug small 2-seater, a cosy medium 3-seater or size up to a large 4-seater, chaise or corner sofa.
Come and have a play in our slowrooms where our lovely Loafers are on hand to help. And if you decide you're not 100% happy, we'll be sad, but we'll refund you in full and take back the sofa for free as long as you let us know within the first 14 days. Easy.


text:
Universal's Lucy exceeded expectations this weekend with a strong first place start of $43.89 million. The modestly budgeted sci-fi action film starring Scarlett Johansson was no doubt helped out greatly by Johansson's rising drawing power on the heels of Captain America: The Winter Soldier earlier this year. In addition to Johansson's presence, Lucy was also likely helped out by being a non-sequel in a summer full of sequels, by the relatively soft overall box office thus far in July and by moviegoers potentially rushing out to see the film before Disney's Guardians of the Galaxy arrives in theatres this coming Friday. Lucy debuted 22 percent stronger than the $36.01 million debut of Salt back in July of 2010.
Lucy debuted with $17.09 million on Friday (which included an estimated $2.75 million from evening shows on Thursday), decreased 12 percent on Saturday to take in $15.02 million and fell 22 percent on Sunday to gross $11.79 million. That placed the film's opening weekend to Friday ratio at 2.57 to 1. The audience breakdown for Lucy was evenly split between genders and skewed towards moviegoers 25 years and older (65 percent). One potentially troubling sign for Lucy going forward is that the film received a disappointing C+ rating on CinemaScore. With that said, holding power won't be as important for the film going forward after such a strong opening weekend performance.
Hercules also exceeded expectations this weekend with a respectable second place take of $29.80 million. The Dwayne Johnson led 3D action-adventure film from Paramount and MGM had been expected to open in the range of $20 million to $25 million. In addition to Johnson's presence, Hercules was likely also aided by serving as a PG-13 alternative to the R rated Lucy and by the mentioned relatively soft overall box office thus far in July. Hercules opened 11 percent below the $33.46 million start of 2012's Wrath of the Titans.
Hercules grossed $11.06 million on Friday (which included an estimated $2.1 million from evening shows on Thursday), fell 7.5 percent on Saturday to take in $10.23 million and fell just 17 percent on Sunday to gross $8.52 million. That placed the film's opening weekend to Friday ratio at 2.69 to 1. The film received a solid B+ rating on CinemaScore. But much like Lucy, Hercules could potentially experience a sharp decline next weekend when the highly anticipated Guardians of the Galaxy arrives in the marketplace.
Hercules grossed an estimated $4.0 million from IMAX locations, which represented 13.4 percent of the film's overall gross this weekend.
With the stronger than expected debuts of Lucy and Hercules, Fox's Dawn of the Planet of the Apes took a sharper than expected fall this weekend with a third place take of $16.77 million. The critically acclaimed 3D sci-fi action sequel was down 54 percent from last weekend. Despite this weekend's hold, Dawn of the Planet of the Apes continues to exceed expectations with a 17-day gross of $172.46 million. That places the film an impressive 29 percent ahead of the $133.58 million 17-day take of 2011's Rise of the Planet of the Apes (which fell 42 percent in its third weekend to gross $16.12 million).
Universal's The Purge: Anarchy fell a sharp 65 percent in its second weekend to land in fourth with $10.48 million. On the positive side of things, the horror sequel held up better in its second weekend than last year's The Purge did when it declined a harsh 76 percent in its second weekend to gross $8.32 million. With a healthy ten-day take of $51.86 million, The Purge: Anarchy is now running essentially on par with the $51.96 million ten-day take of The Purge.
Planes: Fire and Rescue rounded out the weekend's top five with $9.53 million. The modestly budgeted computer animated sequel from Disney was down a significant 46 percent from last weekend. Planes: Fire and Rescue has grossed $35.35 million in ten days. That places the film 22 percent behind the $45.34 million ten-day take of last year's Planes (which fell 40 percent in its second weekend to gross $13.39 million).
And So It Goes debuted in eighth place with $4.64 million. The Clarius Entertainment release starring Michael Douglas and Diane Keaton opened in line with its modest pre-release expectations. The opening weekend figure for And So It Goes was in the same ballpark as the $3.75 million debut of Clarius' Legends of Oz: Dorothy's Return back in May. And So It Goes took in $1.36 million on Friday, increased 39 percent on Saturday to take in $1.89 million and decline 26.5 percent on Sunday to gross $1.39 million. That gave the film an impressive opening weekend to Friday ratio of 3.41 to 1. And So It Goes received a B+ rating on CinemaScore.
On the limited front, Roadside's A Most Wanted Man debuted in tenth place with $2.69 million. The critically acclaimed thriller starring the late Philip Seymour Hoffman earned a healthy per-location average of $7,442 from 361 locations for the frame.
Meanwhile, Open Road's The Fluffy Movie was off to a lackluster start with $1.31 million from 432 locations. That gave the comedy concert film starring Gabriel Iglesias a modest per-location average of $3,036 for the frame.


text:
PIR Wall Lights
Edit Coastal Stage Outdoor Wall Light with PIR Sensor - Galvanised Steel
15% OffSpecial Price £36.54 £30.45 Regular Price £42.99
Security lights with passive infrared motion senor detectors comes in all shapes and sizes, and often utilise any of the three more popular lighting technologies: halogen, LED, or energy-saving fluorescent. Usually you'll be able to pre-set the duration of light output and sometimes a 'dusk to dawn' photocell is also present, so you can set the lamp to only be triggered when ambient light falls below a certain level.
Lyco's range of security lights includes anything from a coach lantern - ideal for residential use - to more workmanlike floodlights or bulkheads. In addition to being effective security lights these fittings are ideal in areas of a workplace where illumination isn't required non-stop. A powerful halogen floodlight, for instance, which will guzzle power if left on permanently, might be a more viable proposition if it can switch on and off automatically.
Initial investment, running costs
Halogen lamps are often very affordable up-front, and they produce an extremely high quality light with peerless incandescent colour accuracy. The downside is always their relatively poor level of energy-efficiency and consequent high running costs by comparison to CFL lights or LED. Halogen lamps are also much shorter lived - typically 2,000 hours as opposed to 15,000 hours in many fluorescent lamps and up to 50,000 hours in LED lamps.
Solar-powered LED Lights
LED technology is continually under development, particularly in areas such as lumens per watt performance. Already in recent years it has come a long way, and the coupling of LED with solar panels is a particularly exciting development. With LED lights being so low-powered, a solar panel can easily gather enough power by day to run an LED light fitting all night. Thus it is that we now have a choice of solar-powered LED security lights, outdoor spotlights, porch lights and garden lights.


text:
Table Markup
To create a table, start and end a line using the table marker "||". Between those start and end markers, you can create any number of cells by separating them with "||". To get a centered cell that spans several columns, you start that cell with more than one cell marker. Adjacent lines of the same indent level containing table markup are combined into one table.
For more information on the possible markup, see Help On Editing.
Table Attributes
Apart from the option to repeat cell markers to get columns spanning several other columns, you can directly set many HTML table attributes. Any attributes have to be placed between angle brackets <...> directly after the cell marker.
The wiki-like markup has the following options:
<50%>: cell width
<-2>: colspan
<|2>: rowspan
<(>: left aligned
<:>: centered
<)>: right aligned
<^>: aligned to top
<v>: aligned to bottom
<#XXXXXX>: background color
If you use several conflicting options like <(:)>, the last option wins. There is no explicit option for vertical centering (middle), since that is always the default.
In addition to these, you can add some of the traditional, more long-winded HTML attributes (note that only certain HTML attributes are allowed). By specifying attributes this way, it is also possible to set properties of the table rows and of the table itself, especially you can set the table width using ||<tablewidth="100%">...|| in the very first row of your table, and the color of a full row by ||<rowbgcolor="#FFFFE0">...|| in the first cell of a row. As you can see, you have to prefix the name of the HTML attribute with table or row.
General table layout and HTML like options:: ||||||<tablewidth="80%">'''Heading'''|| ||cell 1||cell2||cell 3|| ||<rowspan=2> spanning rows||||<bgcolor='#E0E0FF'> spanning 2 columns|| ||<rowbgcolor="#FFFFE0">cell2||cell 3|| Cell width:: || narrow ||<:99%> wide || Spanning rows and columns:: ||<|2> 2 rows || row 1 || || row 2 || ||<-2> row 3 over 2 columns || Alignment:: ||<(> left ||<^|3> top ||<v|3> bottom || ||<:> centered || ||<)> right || Colors:: ||<#FF8080> red ||<#80FF80> green ||<#8080FF> blue ||
- General table layout and HTML like options
Heading cell 1 cell2 cell 3 spanning rows spanning 2 columns cell2 cell 3 - Cell width
narrow wide - Spanning rows and columns
2 rows row 1 row 2 row 3 over 2 columns - Alignment
left top bottom centered right - Colors
red green blue


text:
I've tried several medications for Mrs. Hedhurtz, including Fukitol, Painbegone, Nomigraine, Acefalgia, Gonehert, and Nopayn, all without success.
I've done MRI's, MRA's, and a spinal tap on her. I sent her to an ophthalmologist.
I was frustrated. She was more frustrated. I wasn't having a lot of success helping her. And she seems like a nice lady.
So, since you advertise yourself as a neurologist who specializes in treating difficult headaches, and cite your 2 years of headache subspecialty fellowship training, I decided to refer her to you. You opened up shop near me last month, so I thought I'd give you a chance to earn my referral business. Your marketing person dropped off some cards here 2 weeks ago.
And yesterday I got your faxed note about her.
At the beginning of your note it says that "I've reviewed Dr. Grumpee's notes and tests in detail." That was your second lie (your first lie is in calling yourself a headache specialist, or even a doctor). I also loved the fact that you spelled my name wrong.
Your note ends with the following, which I've paraphrased.
"Impression: Mrs. Hedhurtz suffers from chronic headaches. She's previously failed trials of Fukitol, Painbegone, Nomigraine, Acefalgia, Gonehert, and Nopayn. I suggest she be referred to an ophthalmologist. A spinal tap should also be considered.
For future treatment, I suggest she be started on a medication that she hasn't previously tried before. I've referred her back to Dr. Grumpee's care to follow my recommendations.
Yours truly,
I. M. Worthless, M.D."
Thank you SO fucking much for your helpful advice. I'd normally say "thanks for nothing", but what you've done doesn't even amount to that much.
As my late grandfather would have said, "this is the second time I've sent you a patient. First and last."
Ibee Grumpy, M.D.


text:
OUR DOCUMENTARY FILMS SERVICE in {{mpg_city}}, Los Angeles
Documentary films are the backbone of our industry.
In today's ever changing world, branding your company means telling an authentic story about your brand.
It's not just about the services you provide, but also the values your company brings to your customers in {{mpg_city}}, Los Angeles, and the world. In a noisy marketplace, a meaningful story will make your company stand out from the rest.
We've been producing videos in {{mpg_city}}, Los Angeles since 2002, and we know what it takes to create an engaging story that will make your business stand out. Whether it's an ad campaign for your business or a documentary about your life in {{mpg_city}}, Los Angeles, we have the expertise to make it happen.
Our team of filmmakers in {{mpg_city}}, Los Angeles is committed to telling stories that are authentic and meaningful. We want to give our clients in {{mpg_city}}, Los Angeles the best possible experience with their videos so they have something they can be proud of for years to come. That's why we go above and beyond for every project – no matter how big or small it may be. You deserve nothing less than the best!
We want to be more than just another vendor on your list – we want to become part of your family in {{mpg_city}}, Los Angeles. That means going above and beyond for our clients, providing them with top-quality documentary films that they can rely on time after time. And when you need us most, we'll be there for you every step of the way.
Below are samples of short corporate and non-profit documentaries we produced that our clients love.


text:
Click the (+) and (-) buttons to zoom in and zoom out
Click on the name of any part to see details and important notes
Sold By: EA
This part is no longer available.
This washer fits M-25XPB, M-35B, & M-40B engines manufactured March 1998 and after
This part is replaced with part number 036819
This part is replaced with part number 036493
Sold By: KT
The part has successfully been added to your cart.
Adding the part to your cart.
There was an error adding to cart.


text:
Post Order Updates
Your order with us gets processed through following steps:
Step 1 : Order Placement (1 working day):
Once you place the order, please give it up to 24 hours for the next process to start. This is due to time difference around the globe. We might will see your order after 12 hours of order placement before starting the next process.
Step-2 : Cutting & Stitching (4 to 5 working days):
This step is sub divided into further steps, details are given below.
- Patron & Leather Cutting: We believe in providing personal attention to each and every order we stitch. We cut patron of your ordered jacket or trouser according to your size provided on hard board and then fresh high grade leather gets cut according to that patron. you might feel some smell because of fresh leather, which goes away in next two to three days
- Stitching: Once leather pieces are cut, next comes the stitching process. Your jacket or trouser gets stitched on machine by trained leather stitchers with personal attention to details. Lining, zippers, buttons are also attached to jacket during this phase.
- Quality Check: Once your jacket or trouser is ready it gets inspected by our Quality Checking staff for any flaws in leather, stitching and sizing etc before it gets shipped.
Step-3 : Shipping ( 4 to 6 working days):
Your order gets dispatched through best available courier service for your country (Skynet, DHL, FedEx)
Step-4 : Delivery (1 working day):
Finally your order gets delivered to you. Please do provide your contact number (landline or mobile) while placing order. It's required by courier service company. They need it in case you are not present at your address at time of delivery.
We do our best to handle our customers' concerns on priority basis, and try to resolve any issue(s) if occur with no delay. You can buy jackets confidently as we accept returns. All Jackets are insured by Leather Jacket Master and we do not charge extra amount from buyers for Insurance. For any further questions, please don't hesitate to contact us at firstname.lastname@example.com . If you are unsure of your correct size and would like some additional assistance, please send us an email at email@example.com with your measurements and the jacket(s) of interest.