process.py does not attempt to process the files, if calibration has not
been solved yet. Only if test.fits is available, the processing will
start. This makes process.py, just wait for new files, to try the
calibrate on. This is handy if you started process.py, while the sky is
still bright or clouded.
About 2x faster on a 2-core system, and 3-4x faster on an 8-core system
A balance between regular user feedback and maximum usage of CPUs results
in less-than-fastest possible performance.
For fastest performance, increase chunk size to a value larger than cpu_count.
(Perhaps make this a parameter?)
process.py
- Implements a multiprocess worker pool of size os.cpu_count()
- Batches processes in size os.cpu_count()
- Creates pixel_catalog file using source FITS filename, instead of "test.cat" - Forces single-threaded astropy IERS table update, if needed
- Receives all file and screen output from children, so that it can be output
in the order of the files processed
- Changes display order of FITS file being processed (first) followed by
SATIDs within
- Adds temporary notice of empty input queue
- Adds description of screen color codes
astrometry.py
- Adds fall-back method of shutil.copyfile if PermissionError from copy2
extract.py
- Removes terminal output, and instead returns results to calling processes
- Tightens up file/io loops
satellite.py
- Saves hough3dlines output to unique tmp file instead of /tmp/hough.dat
- Removes temp file after processing
- Adds FIXME note to review for unnecessary code
stars.py
- Generates star catalog directly to destination file
- Updates sextractor call to reference destination instead of tmp file