Hemisphere:  Northern  ·  Constellation: Cepheus (Cep)  ·  Contains:  IC 1396
Getting plate-solving status, please wait...
Elephant Trunk Nebula, 


            Jason Tackett
Elephant Trunk Nebula
Powered byPixInsight

Elephant Trunk Nebula

Acquisition details

Sept. 7, 2015 ·  Sept. 13, 2015 ·  Oct. 7, 2015
Hutech IDAS 2" LPS-D1: 34×360(3h 24′) ISO1600
Hutech IDAS 2" LPS-D1: 10×500(1h 23′ 20″) ISO1600
4h 47′ 20″
Avg. Moon age:
16.33 days
Avg. Moon phase:

Basic astrometry details

Astrometry.net job: 925287

RA center: 21h35m08s.2

DEC center: +57°3502

Pixel scale: 1.550 arcsec/pixel

Orientation: -92.968 degrees

Field radius: 0.738 degrees

Resolution: 620x868

File size: 542.6 KB

Locations: Home base, Yorktown, VA, United States


Here is the Elephant Trunk Nebula, captured last September and October from my yellow-zone home over the course of three nights. I am very pleased with how this turned out given that I originally planned on double the integration time. My IDAS filter performed admirably and I think the size of this object really worked in my favor considering it took up my entire field of view. That helped keep noise at scales much smaller than the large structures in the image (no pixel peeping, guys!) and also the stars don’t look overly large which happens when I crop very tightly. Hence, noise reduction was very effective and I didn’t bother trying to reduce the star sizes.

For pre-processing, I gave maximum weight to the 500 second subs since they contained the most object signal. Their weights were 1.38 (500s/360s). For the 360 second subs, I weighted each inversely proportional to the median value. I did this because over the course of each night, IC1396 would descend in the light pollution dome to my northwest, reducing contrast in the subframes. My weighting gave the largest weighting (1.00) to the sub with the lowest median value and smallest weighting to the sub with the highest median value (0.54, the ratio of lowest and highest median values). I discarded all subs within 30 degrees of the horizon. When I compared this weighting scheme to the default noise evaluation weighted integration, I found greater contrast between the emission nebula and background, brighter stars and a reduced light pollution gradient. Not by a lot, but noticeable, with a mild increase in noise relative to noise weighted evaluation.

In post-processing, I skipped DynamicBackgroundExtraction entirely. There is hardly any background to speak of and I didn’t want to risk wiping out any of that hard earned nebulosity so I didn’t mess with it in the non-linear phase. A gradient did appear after stretching along the left and right edges that had a blue color cast. This was caused by an issue with my flat frames that I still haven’t nailed down. I don’t think my light box is uniformly flat along the edges. Since I wanted to keep the entire field of view, I created a mask to select the gradient by extracting the blue channel which contained the gradient, some stars and only a hint of nebulosity. I blurred this image heavily and then used clone stamp to wipe out everything in the middle of the image and keep only the gradient on the edges. Using this mask, I used CurvesTransformation to reduce the blue color cast and then RGB/K to reduce the brightness. It is not perfect, but works pretty well.

Linear noise reduction followed David Ault’s recipe. Late in post-processing I threw in another dose of ACDNR to help with large scale noise artifacts (the orange peeling effect). I followed Emanuele Todini’s M42 tutorial on multiscale processing for the heavy lifting in stretching, contrast enhancement and color saturation. This technique works wonders. I was able to pull out a lot of detail in the nebulosity without pushing the stars too hard using his technique. The stars did end up with colorful halos, but I like the effect.


Processing Workflow (PixInsight)


1. Initial crop (Dynamic crop) .

2. Neutralize background (BackgroundNeutralization).

3. Set white balance (ColorCalibration).

4. Set luminance coefficients to 0.333333 for RGB channels (RGBWorkingSpace).

5. Reduce green (SCNR to green, amount: 0.8).

6. Non-linear noise reduction using David Aults’ recipe for mask generation and process parameters. I skipped chrominance noise reduction with MMT below.

6a. Reduce background noise (TGVDenoise with inverted luminance mask).

6b. Reduce background luminance noise (MultiscaleMedianTransform to Luminance)

7. Non-linear stretch (HistogramTransformation, lower midtones slider aggressively).

8. Lower blackpoint (HistogramTransformation, raise blackpoint slider).

9. Increase brightness, color saturation and contrast using Emanuele Todini’s multiscale processing technique (reference below)

10a. Duplicate image and extract small scale structures (ATrousWaveletTransform, 5 layers, deselect residual)

10b. Create new image of large scale structures by subtracting previous image from original image (PixelMath, deselect rescale).

10c. Stretch image of large scale structures (HistogramTransformation, lower midtone slider with white and black clipped luminance mask from original image)

10d. Increase color saturation of large scale structures (CurvesTransformation to saturation with previous mask).

10e. Merge images of large scale structures, small scale structures and original image together (PixelMath, rescale selected).

10f. Repeat steps 13a-e except using white and black clipped luminance mask from large scale structure image and additionally adding contrast curve.

10g. Repeat steps 13a-e except using star mask and LocalHistogramEqualization, kernal radius 200.

10h. Repeat steps 13a-e except using star mask and LocalHistogramEqualization, kernal radius 275.

11. Increase contrast with “S” curve (CurvesTransformation)

12. Lower black point of green channel to balance RGB of background (HistogramTransformation).

13. One more increase in contrast with “S” curve (CurvesTransformation)

14. Reduce dark pixel noise with Manfred Schwarz’s script (RemoveDarkPixel)

15. Remove blue cast to neutralize background, but have the curve increase slightly higher levels of blue to make the blue stars stand out (CurvesTransformation to blue channel)

16. Remove gradient with blue cast on left and right sides due to flat calibration mishap

16a. Create mask from blue channel with ChannelExtraction, Convolution (multiple passes) and CloneStamp.

16b. Remove blue cast from gradient (CurvesTransformation to blue channel with mask)

16c. Reduce brightness of gradient (CurvesTransformation to lightness with mask)

17. Noise reduction (ACDNR amount 0.60 with lightness mask).

18. Sharpen nebulosity (MultscaleMedianTransform to Luminance, add bias to layers 4 (+0.02) and 5 (+0.08) with luminance mask selecting nebula only).

19. Fast rotation 90 degrees.

20. Final crop (DynamicCrop)

21. Resample 60% to reduce size.

22. Set ICC profile to sRGB for web publishing (ICCProfileTransformation).


“M42 PixInsight Tutorial” by David Ault for linear noise reduction


“M42 & NGC1975 – Multilayer Processing (First Part)” Tutorial by Emanuele Todini


“M42 & NGC1975 – Multilayer Processing (Second Part)” Tutorial by Emanuele Todini


Manfred Schwarz’ galaxy tutorial:



Sky plot

Sky plot


Elephant Trunk Nebula, 


            Jason Tackett