Comet 2020 Neowise

Comet 2020 Neowise (aka C/2020 F3 NEOWISE) was easily visible in the evening in the Northern hemisphere during the July 19 week end. While the kids were doing a bonfire, I did some DSLR pictures, at 200mm of focal and f/2.8, without bothering with an equatorial mount (most of my time was spent supervising the bonfire and the kids). I had a timer taking one picture per second for 1 second of exposure, ISO 3200.

As usual, I resized the pictures in Python 3:

from PIL import Image
Image.MAX_IMAGE_PIXELS=None #for super large image, avoid decompression bomb error
import os

path =r"G:\Run1\\"
dirs = os.listdir( path )

def resize():
    for item in dirs:
        if os.path.isfile(path+item):
            im =
            f, e = os.path.splitext(path+item)
            imResize = im.resize((int(im.width * factor), int(im.height * factor)), Image.ANTIALIAS)
   + ' resized'+fs+'percent.jpg', 'JPEG', quality=90)
  ,str(i)+'.jpg'), 'JPEG', quality=90)


Then I interpolated some additional frames between the pictures using Optical Flow in gmic:

gmic -w -fade_files G:\resize\*.jpg,2,1,-1,1,G:\gmic\interp.jpg

And last combined the images as a movie. I used to create a movie from a list of images using PIPP, except… PIPP was not installed on my machine and I did not feel like installing yet another program. So I went to ffmpeg, which happened to be installed in one of the Python libraries:

ffmpeg -r 60 -pattern_type glob -i 'G:\gmic\*.jpg' -qscale 1 'G:\neowise2020.mp4'

…but got a message telling me that globbing was not supported in the windows version of ffmpeg (globbing is using pattern matching like * and ?, in case you wonder). Sometimes very simple things that should just be a few clicks get difficult…. But, not to surrender to frustration, I remembered I had a Python script doing the same thing in Open CV. The script of course worked flawlessly. It is also the method, I find, that allows most granularity in the setup:

import cv2 #install it with : conda install -c conda-forge opencv, if DLL error use: pip install opencv-contrib-python
import os

Creates a video from a directory of images

# Input folder with the images and output video name
image_folder = r'G:\R2'
video_name = r'G:\CometNeowise2020-2.avi'

#Frames per seconds
# Codec =-1 for pop up window, o for default
# Popular codecs ae H264, DIVX, MJPEG

# Read the images
images = [img for img in os.listdir(image_folder) if img.endswith(".jpg")]
frame = cv2.imread(os.path.join(image_folder, images[0]))
height, width, layers = frame.shape

#Build an OpenCV video object
video = cv2.VideoWriter(video_name, codec, framerate, (width,height))

# Encode the images in the video
for i,image in enumerate(images):
    if i%50 == 0:
        print("Progressed to image",image)
    video.write(cv2.imread(os.path.join(image_folder, image)))

# Release memory

Reflecting on the workflow, I think I should also do optical flow frame interpolation in Open CV, and have a pure Python workflow, from image resizing, to frame interpolation to movie combination. Next time maybe…

And what about the result? Well at f/2.8 focus is unforgiving, and since I was more occupied with the bonfire and the kids than the camera, focus is far from sharp. I had no intention to post any of it, but since A… asked for it, here we go anyways. My 7 years old took the first series, and my 5 years old the second one.

First run on 2020 Neowise from E-Tx
Second run, a bit later in the evening, till the comet went below the horizon.

What about naked eye observation? I could not see the comet with the naked eye from our location (and I have a pretty good night vision). My 7 years old said he could, and I believe he did. The 5 years old also said she could, but she was not looking in the right part of the sky.

Leave a Reply

%d bloggers like this: