コード例 #1
0
def main(args):
    global main_path, tiles_margin, cardinal_RTemp, RT_PYTHON_number, MAX_PYTHON_process_number, TIME_SLICE
    RT_PYTHON_number = args.rt_process
    MAX_PYTHON_process_number = args.max_process
    TIME_SLICE = args.time_slice
    main_path = args.main_path
    tiles_margin = scan_dish_margin(main_path)
    cardinal_mem = pd.read_csv(os.path.join(main_path, 'Cardinal.csv'),
                               header=0,
                               index_col=0)
    cardinal_mem = cardinal_mem.applymap(lambda x: int(x))
    # !!! warning source
    cardinal_RTemp = cardinal_mem.loc[
        (cardinal_mem['experiment_complete'] == 0)
        & (cardinal_mem['scheduling_method'] == 2) &
        (cardinal_mem['analysis_complete'] == 0)]
    while True:
        time_start = time.time()
        # for rt_scheduling
        for this_F_index, this_F_row in cardinal_RTemp.iterrows(
        ):  # only one experiment in iterrows()
            if cardinal_RTemp.loc[this_F_index, 'experiment_complete'] == 0:
                this_cfs = CurrentFolderStructs(this_F_index)
                cardinal_RTemp.loc[
                    this_F_index,
                    ['exp_B', 'exp_T', 'exp_S', 'exp_Z', 'exp_C', 'exp_M']] = [
                        this_cfs.current_B, this_cfs.current_T,
                        this_cfs.current_S, this_cfs.current_Z,
                        this_cfs.current_C, this_cfs.current_M
                    ]
            if os.path.exists(
                    os.path.join(this_F_index, 'ExperimentComplete.txt')):
                with open(os.path.join(this_F_index, 'ExperimentComplete.txt'),
                          'r') as fin:
                    ec_str = fin.read()
                os.remove(os.path.join(this_F_index, 'ExperimentComplete.txt'))
                cardinal_RTemp.loc[this_F_index, 'experiment_complete'] = 1
            rt_scheduling(this_F_index, args.B, args.T, args.S, args.Z, args.C,
                          args.M)
            temp_p_number = get_cpu_python_process()
            print('$$$---Python Number: ', temp_p_number, '---$$$')
            if temp_p_number > MAX_PYTHON_process_number:
                print('!@#$%^&*(NOW sleep!)*&^%$#@!')
                time.sleep(2)
                while True:
                    if get_cpu_python_process() >= MAX_PYTHON_process_number:
                        time.sleep(2)
                    else:
                        break
        if cardinal_RTemp.loc[
                this_F_index,
                'experiment_complete'] == 1 and cardinal_RTemp.loc[
                    this_F_index, 'analysis_complete'] == 1:
            break
        time_duration = time.time() - time_start
        if cardinal_RTemp.loc[
                this_F_index,
                'analysis_complete'] == 1 and time_duration < TIME_SLICE:
            time.sleep(TIME_SLICE)
    print('Real Time Mission Complete!!!')
コード例 #2
0
def main(args):
    global main_path, tiles_margin, cardinal_mem, MAX_PYTHON_process_number, TIME_SLICE
    main_path = args.main_path
    tiles_margin = scan_dish_margin(main_path)
    cardinal_mem = pd.read_csv(os.path.join(main_path, 'Cardinal.csv'),
                               header=0,
                               index_col=0)
    cardinal_mem = cardinal_mem.applymap(lambda x: int(x))
    MAX_PYTHON_process_number = args.max_process
    TIME_SLICE = args.time_slice

    for this_index, this_row in cardinal_mem.iterrows():
        if this_row['scheduling_method'] == 2 and this_row[
                'experiment_complete'] == 1 and this_row[
                    'analysis_complete'] == 1:
            print(this_index, 'Analysis Complete!!!')
            next
        elif this_row['scheduling_method'] == 2 and this_row[
                'experiment_complete'] == 1 and this_row[
                    'analysis_complete'] == 0:
            print(this_index, 'Catching up Analysising!!!')
            m3_scheduling(this_index, args.B, args.T, args.S, args.Z, args.C,
                          args.M)

        elif this_row['scheduling_method'] == 2 and this_row[
                'experiment_complete'] == 0:
            print(this_index, 'Real Time Analysising!!!')
            m3_rt(this_index, args.B, args.T, args.S, args.Z, args.C, args.M)
            # print('Mission Complete!!!')
            # return True
        elif this_row['scheduling_method'] == 0 and this_row[
                'experiment_complete'] == 1 and this_row[
                    'analysis_complete'] == 0:
            print(this_index, 'Waiting to Catching up!!!')
            cardinal_mem.loc[this_index, 'scheduling_method'] = 2
            cardinal_mem.to_csv(
                path_or_buf=os.path.join(main_path, 'Cardinal.csv'))
            m3_scheduling(this_index, args.B, args.T, args.S, args.Z, args.C,
                          args.M)

        elif this_row['scheduling_method'] == 0 and this_row[
                'experiment_complete'] == 0 and this_row[
                    'analysis_complete'] == 0:
            print(this_index, 'Waiting to real time Analysising!!!')
            cardinal_mem.loc[this_index, 'scheduling_method'] = 2
            cardinal_mem.to_csv(
                path_or_buf=os.path.join(main_path, 'Cardinal.csv'))
            m3_rt(this_index, args.B, args.T, args.S, args.Z, args.C, args.M)
            # print('Mission Complete!!!')
            # return True
        else:
            print('Method 3 ERROR! Wrong using method 3!')
            exit('Method 3 ERROR! Wrong using method 3!')

    print('Mission Complete!!!')
コード例 #3
0
def main(args):
    global main_path, tiles_margin, cardinal_mem, ONCE_PYTHON_number, MAX_PYTHON_process_number
    ONCE_PYTHON_number = args.once_process
    MAX_PYTHON_process_number = args.max_process
    RT_Scheduling = False
    main_path = args.main_path
    tiles_margin = scan_dish_margin(main_path)
    cardinal_mem = pd.read_csv(os.path.join(main_path, 'Cardinal.csv'),
                               header=0,
                               index_col=0)
    cardinal_mem = cardinal_mem.applymap(lambda x: int(x))
    for this_RT_index, this_RT_row in cardinal_mem.loc[
        (cardinal_mem['experiment_complete'] == 0)
            & (cardinal_mem['scheduling_method'] == 2) &
        (cardinal_mem['analysis_complete'] == 0)].iterrows():
        call_RT_Scheduling(main_path, args.B, args.T, args.S, args.Z, args.C,
                           args.M, args.rt_process, args.max_process,
                           args.time_slice)
        RT_Scheduling = True
    rt_count = 0
    while True:
        time_start = time.time()
        # for row_scheduling
        for this_F_index, this_F_row in cardinal_mem.loc[
            (cardinal_mem['experiment_complete'] == 1)
                & (cardinal_mem['scheduling_method'] == 1) &
            (cardinal_mem['analysis_complete'] == 0)].iterrows():
            row_scheduling(this_F_index, this_F_row, args.B, args.T, args.S,
                           args.Z, args.C, args.M)
            temp_p_number = get_cpu_python_process()
            print('$$$---Python Number: ', temp_p_number, '---$$$')
            if temp_p_number > MAX_PYTHON_process_number:
                print('!@#$%^&*(NOW sleep!)*&^%$#@!')
                time.sleep(2)
                while True:
                    if get_cpu_python_process() >= MAX_PYTHON_process_number:
                        time.sleep(2)
                    else:
                        break
        # for col_scheduling
        for this_F_index, this_F_row in cardinal_mem.loc[
            (cardinal_mem['experiment_complete'] == 1)
                & (cardinal_mem['scheduling_method'] == 2) &
            (cardinal_mem['analysis_complete'] == 0)].iterrows():
            col_scheduling(this_F_index, this_F_row, args.B, args.T, args.S,
                           args.Z, args.C, args.M)
            temp_p_number = get_cpu_python_process()
            print('$$$---Python Number: ', temp_p_number, '---$$$')
            if temp_p_number > MAX_PYTHON_process_number:
                print('!@#$%^&*(NOW sleep!)*&^%$#@!')
                time.sleep(2)
                while True:
                    if get_cpu_python_process() >= MAX_PYTHON_process_number:
                        time.sleep(2)
                    else:
                        break
        # # for RT_scheduling
        # time_duration = time.time() - time_start
        # if RT_Scheduling:
        #     if cardinal_mem['analysis_complete'].sum() == cardinal_mem['analysis_complete'].size - 1:
        #         if time_duration < 15:
        #             time.sleep(15 - time_duration)
        #     else:
        #         rt_count += 1
        #         if rt_count == 3:
        #             rt_count = 0
        #         else:
        #             next
        #     if os.path.exists(os.path.join(main_path, 'Cardinal_RTemp.csv')):
        #         cardinal_RTemp = pd.read_csv(os.path.join(main_path, 'Cardinal_RTemp.csv'), header=0,
        #                                      index_col=0)
        #         cardinal_mem.loc[this_RT_index] = cardinal_RTemp.loc[this_RT_index]
        #         cardinal_mem.to_csv(path_or_buf=os.path.join(main_path, 'Cardinal.csv'))
        #         print('collection complete!')
        #         if cardinal_RTemp.loc[this_RT_index, 'experiment_complete'] == 1 and cardinal_RTemp.loc[
        #             this_RT_index, 'analysis_complete'] == 1:
        #             RT_Scheduling = False
        if cardinal_mem['analysis_complete'].sum(
        ) == cardinal_mem['experiment_complete'].sum():
            break
    print('Mission Complete!!!')
コード例 #4
0
ファイル: Cardinal.py プロジェクト: sukiyakitty/NGC7293
def main(args):
    # time.sleep(30)
    print('Cardinal Version: 1.0')
    # ---the pandas display settings---
    pd.set_option('display.max_columns', None)
    pd.set_option('display.max_rows', None)
    pd.set_option('max_colwidth', 100)
    pd.set_option('display.width', None)
    np.set_printoptions(threshold=None)

    # ---the main data structures---
    args_path = ''
    cardinal_mem = pd.DataFrame(columns=[
        'scheduling_method', 'experiment_complete', 'exp_B', 'exp_T', 'exp_S',
        'exp_Z', 'exp_C', 'exp_M', 'analysis_complete', 'ana_B', 'ana_T',
        'ana_S', 'ana_Z', 'ana_C', 'ana_M'
    ])
    # index is path_date_name
    # 'scheduling_method': 0 no processing
    # 'scheduling_method': 1 row_method
    # 'scheduling_method': 2 col_method
    analysis_data_mem = pd.DataFrame(columns=[
        'batch', 'date', 'name', 'index_B', 'index_T', 'index_S', 'index_Z',
        'index_C', 'index_M', 'is_benchmark', 'is_discard', 'analysis_method',
        'density', 'features', 'pca'
    ])
    # index is path_date_name_BTSZCM_image
    # all_features = pd.DataFrame(columns=['f' + str(col) for col in range(1, 257)])
    # index is path_date_name_BTSZCM_image
    # pca_coordinate = pd.DataFrame(columns=['pca' + str(col) for col in range(1, 3 + 1)])
    # index is path_date_name_BTSZCM_image

    # --- other vars ---
    MAX_PYTHON_PROCESS = args.max_process
    TIME_SLICE = args.time_slice
    args_path = args.path
    zoom = args.zoom
    pca_sleep = 0

    # ---the args.path IS existed? ---
    print(
        'Hello! Now this Program will do some Analysis of the Image that CD7 producing...'
    )
    if os.path.exists(args.path):
        print('The Main Folder Path: ', args.path)
    else:
        exit('INPUT Folder Path does not existing!')
        return False

    # ---IS the experiment finished? ---
    if args.name == '':
        experiment_finished = True
    else:
        experiment_finished = False

    # ---the path_date_name structures---
    print('ALL the image files are here:')
    path_date_name = scan_main_path(
        args.path)  # notice that the scan_main_path can disappear
    this_number = 0
    for this_name in path_date_name:
        this_number += 1
        print('>>>NO.', this_number, '>>>', this_name)
        this_BTSCZM = CurrentFolderStructs(this_name)
        dog = True
        while dog:
            this_BTSCZM.re_init_structs()
            if this_BTSCZM.is_available:
                print('B=', this_BTSCZM.current_B, 'T=', this_BTSCZM.current_T,
                      'S=', this_BTSCZM.current_S, 'Z=', this_BTSCZM.current_Z,
                      'C=', this_BTSCZM.current_C, 'M=', this_BTSCZM.current_M)
                cardinal_mem.loc[this_name] = {
                    'scheduling_method': 0,
                    'experiment_complete': 0,
                    'exp_B': this_BTSCZM.current_B,
                    'exp_T': this_BTSCZM.current_T,
                    'exp_S': this_BTSCZM.current_S,
                    'exp_Z': this_BTSCZM.current_Z,
                    'exp_C': this_BTSCZM.current_C,
                    'exp_M': this_BTSCZM.current_M,
                    'analysis_complete': 0,
                    'ana_B': 0,
                    'ana_T': 0,
                    'ana_S': 0,
                    'ana_Z': 0,
                    'ana_C': 0,
                    'ana_M': 0
                }
                dog = False
            else:
                time.sleep(0.1)

    # ---the cardinal.csv IS existed? it's structures? ---
    cardinal_old_csv = pd.DataFrame()
    if os.path.exists(os.path.join(args.path, 'Cardinal.csv')):
        cardinal_old_csv = pd.read_csv(os.path.join(args.path, 'Cardinal.csv'),
                                       header=0,
                                       index_col=0)
        cardinal_old_csv = cardinal_old_csv.fillna(0)
        cardinal_old_csv = cardinal_old_csv.applymap(lambda x: int(x))
    if cardinal_old_csv.empty:
        print('The First time to processing this Experiment!')
    else:
        print('Last time the processing STOP at here:')
        print(cardinal_old_csv)
        cardinal_mem[[
            'scheduling_method', 'experiment_complete', 'analysis_complete',
            'ana_B', 'ana_T', 'ana_S', 'ana_Z', 'ana_C', 'ana_M'
        ]] += cardinal_old_csv[[
            'scheduling_method', 'experiment_complete', 'analysis_complete',
            'ana_B', 'ana_T', 'ana_S', 'ana_Z', 'ana_C', 'ana_M'
        ]]
        cardinal_mem = cardinal_mem.fillna(0)
        cardinal_mem = cardinal_mem.applymap(lambda x: int(x))

    # ---IS the experiment finished? ---
    if experiment_finished:
        print('The experiment complete! NOT real-time Processing...')
        cardinal_mem['experiment_complete'] = 1
    else:
        this_F_index = os.path.join(args.path, args.date, args.name)
        print('The experiment is processing! Real-time Processing!!!')
        cardinal_mem['experiment_complete'] = 1
        cardinal_mem.loc[this_F_index, 'experiment_complete'] = 0
    cardinal_mem = cardinal_mem.fillna(0)
    cardinal_mem = cardinal_mem.applymap(lambda x: int(x))

    # ---copy last Cardinal_RTemp.csv to cardinal_mem---
    if os.path.exists(os.path.join(args.path, 'Cardinal_RTemp.csv')):
        cardinal_RTemp = pd.read_csv(os.path.join(args.path,
                                                  'Cardinal_RTemp.csv'),
                                     header=0,
                                     index_col=0)
        this_F_index = cardinal_RTemp.iloc[0].name
        cardinal_mem.loc[
            this_F_index,
            ['ana_B', 'ana_T', 'ana_S', 'ana_Z', 'ana_C', 'ana_M'
             ]] = cardinal_RTemp.loc[
                 this_F_index,
                 ['ana_B', 'ana_T', 'ana_S', 'ana_Z', 'ana_C', 'ana_M']]
        os.remove(os.path.join(args.path, 'Cardinal_RTemp.csv'))

    # ---cardinal_mem write to cardinal.csv ---
    cardinal_mem.to_csv(path_or_buf=os.path.join(args.path, 'Cardinal.csv'))
    print('The new structures is: ')
    print(cardinal_mem)

    # ---scheduling_method distribute ---
    # 'args.method': 0: Not do Features analysis!
    # 'args.method': 1: completed experiment using row method! (parallel execution)
    # 'args.method': 3: always col (parallel execution)
    # 'args.method': 4: always using col method and Sequential execution!
    # 'args.method': 5: simple Sequential execution!
    # 'scheduling_method': 0: no processing
    # 'scheduling_method': 1: row_method
    # 'scheduling_method': 2: col_method
    if args.method == 1:
        cardinal_mem.loc[(cardinal_mem['scheduling_method'] == 0) &
                         (cardinal_mem['experiment_complete'] == 1),
                         'scheduling_method'] = 1
        cardinal_mem.loc[(cardinal_mem['scheduling_method'] == 0) &
                         (cardinal_mem['experiment_complete'] == 0),
                         'scheduling_method'] = 2
    elif (args.method == 3) | (args.method == 4):
        finished_exp_count = \
            cardinal_mem.loc[(cardinal_mem['scheduling_method'] == 2) & (cardinal_mem['analysis_complete'] == 1)].shape[
                0]
        processing_exp_count = \
            cardinal_mem.loc[(cardinal_mem['scheduling_method'] == 2) & (cardinal_mem['analysis_complete'] == 0)].shape[
                0]
        unstart_exp_count = \
            cardinal_mem.loc[(cardinal_mem['scheduling_method'] == 0) & (cardinal_mem['analysis_complete'] == 0)].shape[
                0]
        error_exp_count = cardinal_mem.loc[cardinal_mem['scheduling_method'] ==
                                           1].shape[0]
        print('method 3/4 finished_exp_count:', finished_exp_count)
        print('method 3/4 processing_exp_count:', processing_exp_count)
        print('method 3/4 unstart_exp_count:', unstart_exp_count)
        print('method 3/4 error_exp_count:', error_exp_count)
        if processing_exp_count > 1 or error_exp_count > 0:
            print('Method 3/4 ERROR! Wrong using method 3/4!')
            exit('Method 3/4 ERROR! Wrong using method 3/4!')
            return False

    # ---the Analysis_Data.csv IS existed? or create it ---
    if os.path.exists(os.path.join(args.path, 'Analysis_Data.csv')):
        # analysis_data_mem = pd.read_csv(os.path.join(args.path, 'Analysis_Data.csv'), header=0, index_col=0)
        print('The Analysis_Data.csv is existed!')
    else:
        print('The Analysis_Data.csv does NOT existed!')
        analysis_data_mem.to_csv(
            path_or_buf=os.path.join(args.path, 'Analysis_Data.csv'))

    # # --- the Features.csv IS existed? or create it ---
    # if os.path.exists(os.path.join(args.path, 'Features.csv')):
    #     # all_features = pd.read_csv(os.path.join(args.path, 'Features.csv'), header=0, index_col=0)
    #     print('The Features.csv is existed!')
    # else:
    #     print('The Features.csv does NOT existed!')
    #     all_features.to_csv(path_or_buf=os.path.join(args.path, 'Features.csv'))

    # --- the PCA.csv IS existed? or create it ---
    # if os.path.exists(os.path.join(args.path, 'PCA.csv')):
    #     # pca_coordinate = pd.read_csv(os.path.join(args.path, 'PCA.csv'), header=0, index_col=0)
    #     pca_sleep = 0
    #     print('The PCA.csv is existed!')
    # else:
    #     pca_sleep = 30
    #     print('The PCA.csv does NOT existed!')
    #     pca_coordinate.to_csv(path_or_buf=os.path.join(args.path, 'PCA.csv'))
    #     # # do some PCA analysis

    # ---the AVG_Density.csv IS existed? or create it ---
    # if os.path.exists(os.path.join(args.path, 'AVG_Density.csv')):
    #     print('The AVG_Density.csv is existed!')
    #     # avg_density_mem = pd.read_csv(os.path.join(args.path, 'AVG_Density.csv'), header=0, index_col=0)
    # else:
    #     print('The AVG_Density.csv does NOT existed!')
    #     avg_density_mem = pd.DataFrame(columns=['S' + str(col) for col in range(1, args.S + 1)])
    #     avg_density_mem.to_csv(path_or_buf=os.path.join(args.path, 'AVG_Density.csv'))

    # ---the experiment plan Experiment_Plan.csv IS existed? (including the IPS_density, CHIR and time)---
    experiment_plan_csv = pd.DataFrame()
    if os.path.exists(os.path.join(args.path, 'Experiment_Plan.csv')):
        experiment_plan_csv = pd.read_csv(os.path.join(args.path,
                                                       'Experiment_Plan.csv'),
                                          header=0,
                                          index_col=0)
    if experiment_plan_csv.empty:
        print('The Experiment Plan is EMPTY!!!')
    else:
        print('The Experiment Plan is:')
        print(experiment_plan_csv)

    # ---the saved Benchmark IS existed? ---
    benchmark = pd.DataFrame()
    if os.path.exists(os.path.join(args.path, 'Benchmark.csv')):
        benchmark = pd.read_csv(os.path.join(args.path, 'Benchmark.csv'),
                                header=0,
                                index_col=0)
    if benchmark.empty:
        print('NO Benchmark file!!! De Novo Developmental Trajectory')
    else:
        print('the Benchmark Developmental Trajectory: ')
        # do some Benchmark PCA

    # ---this processing experiment ---
    if not experiment_finished:
        print('The experiment design :::')
        print('total           Block ::: ', args.B)
        print('total            Time ::: ', args.T)
        print('total           Scene ::: ', args.S)
        print('total     Z-direction ::: ', args.Z)
        print('total         Channel ::: ', args.C)
        print('total    Mosaic tiles ::: ', args.M)

    # --- What is the edge of the disc? ---
    tiles_margin = scan_dish_margin(args.path)
    print('The photograph\'s edge is :', tiles_margin)

    # --- make dir: figure to save PCA figures ---
    # if not os.path.exists(os.path.join(args.path, 'Figure')):
    #     os.makedirs(os.path.join(args.path, 'Figure'))
    # print('All the figures result is in : ', os.path.join(args.path, 'Figure'))

    # --- make dir: all the stitching images S01-S96 ---
    zoom_str = "%.0f%%" % (args.zoom * 100)
    # if not os.path.exists(os.path.join(args.path, 'SSS_' + zoom_str)):  # SSS stand for Sequential Stitching Scene
    #     os.makedirs(os.path.join(args.path, 'SSS_' + zoom_str))
    # for i in range(1, args.S + 1):
    #     if not os.path.exists(os.path.join(args.path, 'SSS_' + zoom_str, 'S' + str(i))):
    #         os.makedirs(os.path.join(args.path, 'SSS_' + zoom_str, 'S' + str(i)))
    print('Stitching Scene zoom is: ', zoom_str)
    print('Sequential Stitching Scene is in : ',
          os.path.join(args.path, 'SSS_' + zoom_str))

    # --- make dir: useful stitching images S01-S96 ---
    # if not os.path.exists(
    #         os.path.join(args.path, 'SSSS_' + zoom_str)):  # SSSS stand for Square Sequential Stitching Scene
    #     os.makedirs(os.path.join(args.path, 'SSSS_' + zoom_str))
    # for i in range(1, args.S + 1):
    #     if not os.path.exists(os.path.join(args.path, 'SSSS_' + zoom_str, 'S' + str(i))):
    #         os.makedirs(os.path.join(args.path, 'SSSS_' + zoom_str, 'S' + str(i)))
    print('Stitching Scene zoom is: ', zoom_str)
    print('Square Sequential Stitching Scene is in : ',
          os.path.join(args.path, 'SSSS_' + zoom_str))

    # ------ Initialization finished ------
    print('Initialization finished!',
          'Now you are past the point of no return!')
    print('\n---------------------------------\n')

    # ------------ begin ------------
    # 'args.method': 0: Not do Features analysis!
    # 'args.method': 1: completed experiment using row method! (parallel execution)
    # 'args.method': 3: always col (parallel execution)
    # 'args.method': 4: always using col method and Sequential execution!
    # 'args.method': 5: simple Sequential execution!
    # col means: finish an experiment.czexp one by one, once it handel only one czexp
    # row means: do several experiment.czexp at one time, so once it handel several czexps
    if args.method == 0:
        print('Not do Features analysis!')
        print('Exit Features analysis ... ')
    elif args.method == 1:
        print(
            'method 1 : completed experiment using row method! (parallel execution)'
        )
        os.system(
            "start /min python Scheduling_2Directions.py --main_path {} --B {} --T {} --S {} --Z {} --C {} --M {} --rt_process {} --once_process {} --max_process {} --time_slice {}"
            .format(args.path, args.B, args.T, args.S, args.Z, args.C, args.M,
                    int(2 * MAX_PYTHON_PROCESS / 3),
                    int(MAX_PYTHON_PROCESS / 3),
                    int(2 * MAX_PYTHON_PROCESS / 3), TIME_SLICE))
    elif args.method == 2:
        print('method 2 : Nothing!')
    elif args.method == 3:
        print('method 3 : always using col method! (parallel execution) ')
        os.system(
            "start /min python Scheduling_Column.py --main_path {} --B {} --T {} --S {} --Z {} --C {} --M {} --max_process {} --time_slice {}"
            .format(args.path, args.B, args.T, args.S, args.Z, args.C, args.M,
                    MAX_PYTHON_PROCESS, TIME_SLICE))
    elif args.method == 4:
        print('method 4 : always using col method and Sequential execution!')
        os.system(
            "start /min python Scheduling_Sequential.py --main_path {} --B {} --T {} --S {} --Z {} --C {} --M {} --max_process {} --time_slice {} --zoom {} --overlap {} --silly {}"
            .format(args.path, args.B, args.T, args.S, args.Z, args.C, args.M,
                    MAX_PYTHON_PROCESS, TIME_SLICE, zoom, args.overlap,
                    args.missing))
    elif args.method == 5:
        print('method 5 : simple Sequential execution!')
        os.system(
            "start /min python Scheduling_x.py --main_path {} --B {} --T {} --S {} --Z {} --C {} --M {} --max_process {} --time_slice {} --zoom {} --overlap {} --analysis {}"
            .format(args.path, args.B, args.T, args.S, args.Z, args.C, args.M,
                    MAX_PYTHON_PROCESS, TIME_SLICE, zoom, args.overlap,
                    args.analysis))
    else:
        print('key method should be: 1:row Catching up or 3:always col!')
        print('Exit...')

    # ------ begin pca analysis ------
    if args.pca == 0:
        print('Not do PCA analysis!')
        print('Exit PCA analysis ...')
    elif args.pca == 1:
        print('PCA method 1 : Always analysis the last!')
        time.sleep(pca_sleep)
        watchdog_pca = True
        while watchdog_pca:
            print(cacu_draw_save_pca(args.path))
            time.sleep(15)
    elif args.pca == 2:
        print('PCA method 2 : Catching up way!')
        os.system(
            "start python Task_Draw_PCA.py --main_path {} --exp_finished {} --step {}"
            .format(args.path, experiment_finished, 10))
    else:
        print(
            'Whether do pca analysis? 0:Not; 1:Always analysis the last; 2: Catching up way'
        )
        print('Exit...')

    # ------ begin others analysis ------
    time.sleep(30)
コード例 #5
0
ファイル: Scheduling_x.py プロジェクト: sukiyakitty/NGC7293
def main(args):
    pd.set_option('display.max_columns', None)
    pd.set_option('display.max_rows', None)
    pd.set_option('max_colwidth', 100)
    pd.set_option('display.width', None)

    global main_path, tiles_margin, cardinal_mem, image_file_type, zoom, overlap, TIME_SLICE, do_analysis, MAX_PYTHON_process_number

    main_path = args.main_path
    tiles_margin = scan_dish_margin(main_path)
    image_file_type = ('.jpg', '.png', '.tif')
    # zomm = args.zoom
    zoom = [
        1
    ]  # be a float or a list, the first number is the processing pic zoom size,the rest is only store
    # square_side = 5
    overlap = args.overlap
    # Density_Alarm = 0
    MAX_PYTHON_process_number = args.max_process
    TIME_SLICE = args.time_slice
    do_analysis = args.analysis
    # matrix_list = return_96well_30_Tiles()

    cardinal_mem = pd.read_csv(os.path.join(main_path, 'Cardinal.csv'),
                               header=0,
                               index_col=0)
    cardinal_mem = cardinal_mem.fillna(0)
    cardinal_mem = cardinal_mem.applymap(lambda x: int(x))

    print('Hello I am the Scheduling_X.py program! Now I will sleep 5s!')
    time.sleep(5)
    print('Scheduling_Sequential.py is initialized! And the Cardinal.csv is:')
    print(cardinal_mem)

    for this_index, this_row in cardinal_mem.iterrows():
        if this_row['scheduling_method'] == 2 and this_row[
                'experiment_complete'] == 1 and this_row[
                    'analysis_complete'] == 1:
            print(this_index, 'Analysis Complete!!!')
            next
        elif this_row['scheduling_method'] == 2 and this_row[
                'experiment_complete'] == 1 and this_row[
                    'analysis_complete'] == 0:
            print(this_index, 'Catching up Analysising!!!')
            m3_scheduling(this_index, args.B, args.T, args.S, args.Z, args.C,
                          args.M)
        elif this_row['scheduling_method'] == 2 and this_row[
                'experiment_complete'] == 0:
            print(this_index, 'Real Time Analysising!!!')
            m3_rt(this_index, args.B, args.T, args.S, args.Z, args.C, args.M)
        elif this_row['scheduling_method'] == 0 and this_row[
                'experiment_complete'] == 1 and this_row[
                    'analysis_complete'] == 0:
            print(this_index, 'Waiting to Catching up!!!')
            cardinal_mem.loc[this_index, 'scheduling_method'] = 2
            cardinal_mem.to_csv(
                path_or_buf=os.path.join(main_path, 'Cardinal.csv'))
            m3_scheduling(this_index, args.B, args.T, args.S, args.Z, args.C,
                          args.M)
        elif this_row['scheduling_method'] == 0 and this_row[
                'experiment_complete'] == 0 and this_row[
                    'analysis_complete'] == 0:
            print(this_index, 'Waiting to real time Analysising!!!')
            cardinal_mem.loc[this_index, 'scheduling_method'] = 2
            cardinal_mem.to_csv(
                path_or_buf=os.path.join(main_path, 'Cardinal.csv'))
            m3_rt(this_index, args.B, args.T, args.S, args.Z, args.C, args.M)
        else:
            print('Method 5 ERROR! Wrong using method 5!')
            time.sleep(30)
            exit('Method 5 ERROR! Wrong using method 5!')

    print('Mission Complete!!! Now return in 30 seconds!')
    time.sleep(30)
コード例 #6
0
def main(args):
    pd.set_option('display.max_columns', None)
    pd.set_option('display.max_rows', None)
    pd.set_option('max_colwidth', 100)
    pd.set_option('display.width', None)

    print(
        'Hello I am the Scheduling_Sequential.py program! Now I will sleep 5s!'
    )
    time.sleep(5)

    global main_path, tiles_margin, cardinal_mem, MAX_PYTHON_process_number, TIME_SLICE, image_file_type, square_side, zoom, overlap, silly, Density_Alarm, density_avg_base_list
    main_path = args.main_path
    tiles_margin = scan_dish_margin(main_path)
    cardinal_mem = pd.read_csv(os.path.join(main_path, 'Cardinal.csv'),
                               header=0,
                               index_col=0)
    cardinal_mem = cardinal_mem.fillna(0)
    cardinal_mem = cardinal_mem.applymap(lambda x: int(x))
    # scene_density_mem = pd.read_csv(os.path.join(main_path, 'Scene_Density.csv'), header=0, index_col=0)
    MAX_PYTHON_process_number = args.max_process
    TIME_SLICE = args.time_slice
    image_file_type = ('.jpg', '.png', '.tif')
    square_side = 5
    zoom = [args.zoom, 0.3]
    # zoom can be a float or a list, the first number is the processing pic zoom size,the rest is only store
    overlap = args.overlap
    silly = args.silly
    Density_Alarm = 0
    density_avg_base_list = []

    print('Scheduling_Sequential.py is initialized! And the Cardinal.csv is:')
    print(cardinal_mem)

    for this_index, this_row in cardinal_mem.iterrows():
        if this_row['scheduling_method'] == 2 and this_row[
                'experiment_complete'] == 1 and this_row[
                    'analysis_complete'] == 1:
            print(this_index, 'Analysis Complete!!!')
            next
        elif this_row['scheduling_method'] == 2 and this_row[
                'experiment_complete'] == 1 and this_row[
                    'analysis_complete'] == 0:
            print(this_index, 'Catching up Analysising!!!')
            m3_scheduling(this_index, args.B, args.T, args.S, args.Z, args.C,
                          args.M)

        elif this_row['scheduling_method'] == 2 and this_row[
                'experiment_complete'] == 0:
            print(this_index, 'Real Time Analysising!!!')
            m3_rt(this_index, args.B, args.T, args.S, args.Z, args.C, args.M)
            # print('Mission Complete!!!')
            # return True
        elif this_row['scheduling_method'] == 0 and this_row[
                'experiment_complete'] == 1 and this_row[
                    'analysis_complete'] == 0:
            print(this_index, 'Waiting to Catching up!!!')
            cardinal_mem.loc[this_index, 'scheduling_method'] = 2
            cardinal_mem.to_csv(
                path_or_buf=os.path.join(main_path, 'Cardinal.csv'))
            m3_scheduling(this_index, args.B, args.T, args.S, args.Z, args.C,
                          args.M)

        elif this_row['scheduling_method'] == 0 and this_row[
                'experiment_complete'] == 0 and this_row[
                    'analysis_complete'] == 0:
            print(this_index, 'Waiting to real time Analysising!!!')
            cardinal_mem.loc[this_index, 'scheduling_method'] = 2
            cardinal_mem.to_csv(
                path_or_buf=os.path.join(main_path, 'Cardinal.csv'))
            m3_rt(this_index, args.B, args.T, args.S, args.Z, args.C, args.M)
            # print('Mission Complete!!!')
            # return True
        else:
            print('Method 4 ERROR! Wrong using method 4!')
            time.sleep(30)
            exit('Method 4 ERROR! Wrong using method 4!')

    print('Mission Complete!!!')
    time.sleep(30)