Skip to content

Instantly share code, notes, and snippets.

@Abhinay1997
Created August 13, 2019 09:31
Show Gist options
  • Save Abhinay1997/147f29b4882a578217ebe5c5bbc05305 to your computer and use it in GitHub Desktop.
Save Abhinay1997/147f29b4882a578217ebe5c5bbc05305 to your computer and use it in GitHub Desktop.
A complete pipeline test of the timelapse generator. Contrast stretching and other image processing to be added. The plan is to not distribute this as a package installable from pip but as a simple git clone and run.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"from panoptes_timegen import time_gen as tg"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Testing the system to generate a simple timelapse\n",
"\n",
"* Get fits list\n",
"* Debayer and save\n",
"* Generate video"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Number of fits files found: 60\n"
]
}
],
"source": [
"fits_list = tg.get_file_list(r'F:/panoptes-dftg/20190727T102325/',['fits','fz'])\n",
"print(f'Number of fits files found: {len(fits_list)}')"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"temp_timelapse\\20190727T102619.jpg 20190727T102619.jpg\n",
"temp_timelapse\\20190727T102911.jpg 20190727T102911.jpg\n",
"temp_timelapse\\20190727T103215.jpg 20190727T103215.jpg\n",
"temp_timelapse\\20190727T103516.jpg 20190727T103516.jpg\n",
"temp_timelapse\\20190727T103815.jpg 20190727T103815.jpg\n",
"temp_timelapse\\20190727T104114.jpg 20190727T104114.jpg\n",
"temp_timelapse\\20190727T104412.jpg 20190727T104412.jpg\n",
"temp_timelapse\\20190727T104708.jpg 20190727T104708.jpg\n",
"temp_timelapse\\20190727T105003.jpg 20190727T105003.jpg\n",
"temp_timelapse\\20190727T105302.jpg 20190727T105302.jpg\n",
"temp_timelapse\\20190727T105555.jpg 20190727T105555.jpg\n",
"temp_timelapse\\20190727T105851.jpg 20190727T105851.jpg\n",
"temp_timelapse\\20190727T110149.jpg 20190727T110149.jpg\n",
"temp_timelapse\\20190727T110448.jpg 20190727T110448.jpg\n",
"temp_timelapse\\20190727T110744.jpg 20190727T110744.jpg\n",
"temp_timelapse\\20190727T111039.jpg 20190727T111039.jpg\n",
"temp_timelapse\\20190727T111338.jpg 20190727T111338.jpg\n",
"temp_timelapse\\20190727T111636.jpg 20190727T111636.jpg\n",
"temp_timelapse\\20190727T111932.jpg 20190727T111932.jpg\n",
"temp_timelapse\\20190727T112228.jpg 20190727T112228.jpg\n",
"temp_timelapse\\20190727T112525.jpg 20190727T112525.jpg\n",
"temp_timelapse\\20190727T112822.jpg 20190727T112822.jpg\n",
"temp_timelapse\\20190727T113117.jpg 20190727T113117.jpg\n",
"temp_timelapse\\20190727T113413.jpg 20190727T113413.jpg\n",
"temp_timelapse\\20190727T113716.jpg 20190727T113716.jpg\n",
"temp_timelapse\\20190727T114015.jpg 20190727T114015.jpg\n",
"temp_timelapse\\20190727T114310.jpg 20190727T114310.jpg\n",
"temp_timelapse\\20190727T114612.jpg 20190727T114612.jpg\n",
"temp_timelapse\\20190727T114916.jpg 20190727T114916.jpg\n",
"temp_timelapse\\20190727T115222.jpg 20190727T115222.jpg\n",
"temp_timelapse\\20190727T115517.jpg 20190727T115517.jpg\n",
"temp_timelapse\\20190727T115813.jpg 20190727T115813.jpg\n",
"temp_timelapse\\20190727T120111.jpg 20190727T120111.jpg\n",
"temp_timelapse\\20190727T120414.jpg 20190727T120414.jpg\n",
"temp_timelapse\\20190727T120709.jpg 20190727T120709.jpg\n",
"temp_timelapse\\20190727T121005.jpg 20190727T121005.jpg\n",
"temp_timelapse\\20190727T121301.jpg 20190727T121301.jpg\n",
"temp_timelapse\\20190727T121559.jpg 20190727T121559.jpg\n",
"temp_timelapse\\20190727T121901.jpg 20190727T121901.jpg\n",
"temp_timelapse\\20190727T122205.jpg 20190727T122205.jpg\n",
"temp_timelapse\\20190727T122511.jpg 20190727T122511.jpg\n",
"temp_timelapse\\20190727T122815.jpg 20190727T122815.jpg\n",
"temp_timelapse\\20190727T123111.jpg 20190727T123111.jpg\n",
"temp_timelapse\\20190727T123402.jpg 20190727T123402.jpg\n",
"temp_timelapse\\20190727T123702.jpg 20190727T123702.jpg\n",
"temp_timelapse\\20190727T124001.jpg 20190727T124001.jpg\n",
"temp_timelapse\\20190727T124257.jpg 20190727T124257.jpg\n",
"temp_timelapse\\20190727T124554.jpg 20190727T124554.jpg\n",
"temp_timelapse\\20190727T124850.jpg 20190727T124850.jpg\n",
"temp_timelapse\\20190727T125148.jpg 20190727T125148.jpg\n",
"temp_timelapse\\20190727T125444.jpg 20190727T125444.jpg\n",
"temp_timelapse\\20190727T125739.jpg 20190727T125739.jpg\n",
"temp_timelapse\\20190727T130044.jpg 20190727T130044.jpg\n",
"temp_timelapse\\20190727T130349.jpg 20190727T130349.jpg\n",
"temp_timelapse\\20190727T130643.jpg 20190727T130643.jpg\n",
"temp_timelapse\\20190727T130951.jpg 20190727T130951.jpg\n",
"temp_timelapse\\20190727T131252.jpg 20190727T131252.jpg\n",
"temp_timelapse\\20190727T131558.jpg 20190727T131558.jpg\n",
"temp_timelapse\\20190727T131849.jpg 20190727T131849.jpg\n",
"temp_timelapse\\20190727T132140.jpg 20190727T132140.jpg\n"
]
}
],
"source": [
"for file in fits_list:\n",
" # Read FITS\n",
" fits_data = tg.fits.getdata(file)\n",
" # Flip up down \n",
" flipped_data = tg.np.flipud(fits_data)\n",
" # Debayer with 'RGGB'\n",
" rgb_data = tg.debayer_image_array(flipped_data,pattern='RGGB')\n",
" # Additional processing\n",
" rgb_data = rgb_data/2**14 * 255\n",
" rgb_data = rgb_data.astype(tg.np.uint8)\n",
" bgr_data = tg.cv2.cvtColor(rgb_data,tg.cv2.COLOR_RGB2BGR)\n",
" # split image \n",
" interested_data = tg.get_sub_image(bgr_data,1,2,0,1)\n",
" \n",
" # save processed image to temp_dir\n",
" tg.save_image(interested_data,tg.os.path.split(file)[-1].split('.')[0])\n",
" "
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Generate video from images\n",
"tg.generate_timelapse_from_images('temp_timelapse','t')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "pan-tg",
"language": "python",
"name": "pan-tg"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.6"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
@Abhinay1997
Copy link
Author

See generated video at: https://youtu.be/MIvDywCjXnk.
interested_data = tg.get_sub_image(bgr_data,1,2,0,1)
In the above snippet. 1,2 imply that treat image as a 1 row, 2 column grid. 0 and 1 tell it to get the grid cell from 0th row and 1st column. Useful for extracting specific parts from image to make timelapse

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment