diff --git a/sxccd/sxccd_image.py b/sxccd/sxccd_image.py index 5f7fa33..28959a1 100644 --- a/sxccd/sxccd_image.py +++ b/sxccd/sxccd_image.py @@ -1,10 +1,12 @@ import argparse -import sxccd -import h5py import time + +import h5py +import sxccd import numpy as np -def takeImage( exp_ms, delay=0, prefix="images", nExp = 1, singleImage=True, bin=1 ): + +def takeImage(exp_ms, delay=0, prefix="images", nExp=1, singleImage=True, bin=1): sx = sxccd.Camera() sx.model() @@ -13,10 +15,10 @@ def takeImage( exp_ms, delay=0, prefix="images", nExp = 1, singleImage=True, bin params = sx.parameters() width = params["width"] height = params["height"] - w = int( width / bin ) - h = int( height / bin ) + w = int(width / bin) + h = int(height / bin) - filename = prefix + "_" + str(exp_ms).zfill(6) + ".h5" + filename = f"{prefix}_{exp_ms:06d}.h5" f = h5py.File(filename, 'w') avg_set = f.create_dataset("avg", (h, w), dtype=np.float32) if singleImage: @@ -25,15 +27,13 @@ def takeImage( exp_ms, delay=0, prefix="images", nExp = 1, singleImage=True, bin img_avg = np.zeros( (h,w), dtype=np.uint32) - if delay>0: - print("=========== camera exposure starts in " - + str(delay) + " sec " - + "===========" ) + if delay > 0: + print(f"=========== camera exposure starts in {delay} sec ===========" ) time.sleep(delay) for t in range(nExp): t1 = time.time() - img = sx.readPixelsDelayed( exp_ms, width, height, x_bin=bin, y_bin=bin, + img = sx.readPixelsDelayed(exp_ms, width, height, x_bin=bin, y_bin=bin, x_offset=0, y_offset=0, verbose=False) img_avg += img @@ -41,13 +41,11 @@ def takeImage( exp_ms, delay=0, prefix="images", nExp = 1, singleImage=True, bin img_set[:,:,t] = img t2 = time.time() - print("image " + str(t+1) + " done in " + str(t2-t1) + " sec \a") + print(f"image {t+1} done in {t2-t1} sec \a") img_avg = img_avg.astype(np.float32) / nExp avg_set[:] = img_avg - - print("========== done " + str(nExp) + " images ========== \a\a\a") - + print(f"========== done {nExp} images ========== \a\a\a") f.close() @@ -74,5 +72,5 @@ def takeImage( exp_ms, delay=0, prefix="images", nExp = 1, singleImage=True, bin args = parser.parse_args() print(args) - takeImage( exp_ms=args.exp, delay=args.delay, prefix=args.prefix, - nExp = args.num, singleImage=args.single, bin=args.bin ) + takeImage(exp_ms=args.exp, delay=args.delay, prefix=args.prefix, + nExp = args.num, singleImage=args.single, bin=args.bin) diff --git a/sxccd/sxccd_utils.py b/sxccd/sxccd_utils.py index ec0d865..5af336f 100644 --- a/sxccd/sxccd_utils.py +++ b/sxccd/sxccd_utils.py @@ -1,15 +1,18 @@ import numpy as np -def decLH( LH ): + +def decLH(LH): return LH[0] + 256*LH[1] -def dec2bytes( num, lg=2 ): + +def dec2bytes(num, lg=2): return (num).to_bytes(lg, byteorder="little") -def dec2image( data, h, w ): + +def dec2image(data, h, w): img_sz = int(len(data)/2) - img = np.zeros( (img_sz,1), dtype=np.uint32) + img = np.zeros((img_sz,1), dtype=np.uint32) for i in range(img_sz): img[i] = decLH( data[2*i:(2*i+2)]) - img = np.reshape( img, (h, w) ) + img = np.reshape(img, (h, w)) return img