#!/bin/bash



# SELECT HERE WHICH OPERATIONS THE SCRIPT SHOULD PERFORM

CLEAR="no"               # CLEAR ALL FILES (to start from scratch)

SELECT_CR2_FILES="no"   # SELECT RAW FRAMES, CREATE SYMBOLIC LINKS TO SELECTED FRAME
MAKEJPEG="no"           # TRANSFORM RAW FRAMES INTO JPEGs
JPEGtoJPEG2="yes"	 # PROCESS JPEGs

JPEG2toMOV="yes"         # TRANSFORM SERIES OF JPEGs INTO MOVIE(S)
MOV1920x1280="yes"       # CREATE 1920x1280 PIXELS MOVIE
MOV1920x1280C="yes"	# CREATE HIGHLY COMPRESSED 1920x1280 PIXELS MOVIE
MOV720x480="yes"	 # CREATE 720x480 PIXELS MOVIE
MOV720x480C="yes"	# CREATE HIGHLY COMPRESSED 720x480 PIXELS MOVIE






#-------------------------------------------------------------------------------------------------------------------------
# CLEAR
#-------------------------------------------------------------------------------------------------------------------------

if [ "$CLEAR" = "yes" ]; then
	echo "CLEARING..."
	rm -f CR2/*
	rm -f FITS/*
	rm -f JPEG/*
	rm -f JPEG2/*
	rm -f imgstats.txt
	rm -f imrtot.fits
	rm -f imgtot.fits
	rm -f imbtot.fits
fi


#-------------------------------------------------------------------------------------------------------------------------
# SELECT RAW FILES AND CREATE SYMBOLIC LINKS TO THEM IN ./RAW/ DIRECTORY
#-------------------------------------------------------------------------------------------------------------------------

if [ "$SELECT_CR2_FILES" = "yes" ]; then
	if [ ! -d CR2 ]; then
		mkdir ./CR2/
	fi
	echo SELECTING CR2 FILES ...
	cd ./CR2
	rm *
	# SELECT RAW FILES - EDIT AS NEEDED
	seq -w 9999| awk '{if (($1>=41)&&($1<=587)) print "IMG_"$1".CR2"}' | xargs -I {} cp -s /media/astro00/2010-12-06/raw450/{} .
	# INDIVIDUAL FILES MAY BE REMOVED AT THIS POINT
	# rm IMG_0403.CR2
	cd ..
fi




#-------------------------------------------------------------------------------------------------------------------------
# MAKE JPEGs
#-------------------------------------------------------------------------------------------------------------------------

# CR2 files in ./CR2 are converted into FITS files in ./FITS
# CR2 to FITS CONVERSION WILL NOT RECREATE EXISTING FITS FILES -> WILL ONLY RUN ONCE UNLESS FITS FILES REMOVED BY CLEAR COMMAND
# FITS files in ./FITS are processed and put into ./JPEG

if [ "$MAKEJPEG" = "yes" ]; then
	if [ ! -d FITS ]; then
		mkdir ./FITS/
	fi
	if [ ! -d JPEG ]; then
		mkdir ./JPEG/
	fi
	echo CONVERTING CR2 to JPEG SERIES ...
	# COMMENT THIS LINE IF JPEGs FROM PREVIOUS RUN KEPT
#	rm JPEG/*
	# FILES WILL BE RENUMBERED WITH NEW CONSECUTIVE INDEXES FROM 0
	# FOR QUICK TRY, RUN cr2tojpeg WITH SKIP PARAMETER > 0
	# SKIP PARAM #1 IS FOR CR2 -> FITS CONVERSION
	# SKIP PARAM #2 IS FOR FITS -> JPEG CONVERSION
	./cr2tojpeg 0 0	
fi




#-------------------------------------------------------------------------------------------------------------------------
# CREATE MOVIE
#-------------------------------------------------------------------------------------------------------------------------

if [ "$MOV1920x1280" = "yes" ]; then
	# process JPEG -> JPEG2 - High Definition 1920x1080
	if [ "$JPEGtoJPEG2" = "yes" ]; then
		echo CONVERTING JPEGs, High definition 1920x1080 pix ...
			if [ ! -d JPEG2 ]; then
			mkdir ./JPEG2/
		fi
		rm JPEG2/*
		cd JPEG
		for f in *jpg ; do echo converting file $f ;convert -quality 90 -resize 1930x1280 -crop 1920x1280 $f imtmp.jpg; rm imtmp-1.jpg; mv imtmp-0.jpg ../JPEG2/$f; done
		cd ..
	fi	

	# make movie from JPEG files - High Definition 1920x1080

	if [ "$JPEG2toMOV" = "yes" ]; then
		ls ./JPEG2/im*.jpg | jpeg2yuv -f 30 -I p| yuv2lav -f a -b 10000 -q 90 -o mov.avi
		mv mov.avi mov_1920x1280.avi
	fi	
fi

if [ "$MOV1920x1280C" = "yes" ]; then
	# PRODUCE A HIGHLY COMPRESSED AVI FILE WITH MPEG4
	mencoder mov_1920x1280.avi -o mov_1920x1280C.avi -ovc lavc -lavcopts vbitrate=6000
fi



if [ "$MOV720x480" = "yes" ]; then
	# process JPEG -> JPEG2 - 720x480

	if [ "$JPEGtoJPEG2" = "yes" ]; then
		echo CONVERTING JPEGs, 720x480 pix ...		
		if [ ! -d JPEG2 ]; then
			mkdir ./JPEG2/
		fi
		rm JPEG2/*
		cd JPEG
		# FOR EOS450D, USE FOLLOWING LINE
		for f in *jpg ; do echo converting file $f ;convert -quality 95 -resize 721x480 -crop 720x480 $f imtmp.jpg; rm imtmp-1.jpg; mv imtmp-0.jpg ../JPEG2/$f; done
		# FOR EOS500D, USE FOLLOWING LINE
		#for f in *jpg ; do echo converting file $f ;convert -quality 95 -resize 720x480 $f imtmp.jpg; mv imtmp.jpg ../JPEG2/$f; done
		cd ..
	fi

	# make movie from JPEG files - High Definition 720x480

	if [ "$JPEG2toMOV" = "yes" ]; then
		ls ./JPEG2/im*.jpg | jpeg2yuv -f 20 -I p| yuv2lav -f a -b 10000 -q 75 -o mov.avi
		mv mov.avi mov_720x480.avi
	fi
fi

if [ "$MOV720x480C" = "yes" ]; then
	# PRODUCE A HIGHLY COMPRESSED AVI FILE WITH MPEG4
	mencoder mov_720x480.avi -o mov_720x480C.avi -ovc lavc -lavcopts vbitrate=800
fi

