audrey06100 commited on
Commit
2f42d70
·
1 Parent(s): 5bd9951
Files changed (2) hide show
  1. app.py +14 -14
  2. app_utils.py +9 -9
app.py CHANGED
@@ -326,7 +326,7 @@ with gr.Blocks() as demo:
326
  "unassignedInputs" : None,
327
  "missingTemplates" : None,
328
  "batchNum" : None,
329
- "mappingData" : [
330
  {
331
  "newOrder" : None,
332
  "fillFlags" : None
@@ -487,8 +487,8 @@ with gr.Blocks() as demo:
487
  prev_target_idx = channel_info["templateDict"][prev_target_name]["index"]
488
  selected_idx = channel_info["inputDict"][selected_radio]["index"]
489
 
490
- stage1_info["mappingData"][0]["newOrder"][prev_target_idx] = [selected_idx]
491
- stage1_info["mappingData"][0]["fillFlags"][prev_target_idx] = False
492
  channel_info["templateDict"][prev_target_name]["matched"] = True
493
  channel_info["inputDict"][selected_radio]["assigned"] = True
494
  #print(prev_target_name, '<-', selected_radio)
@@ -563,10 +563,10 @@ with gr.Blocks() as demo:
563
  value of the data from the selected channels. (By default, the 4 nearest channels are pre-selected.)
564
  """
565
  # find the 4 nearest in_channels for each unmatched tpl_channels
566
- stage1_info["mappingData"][0]["newOrder"] = app_utils.find_neighbors(
567
  channel_info,
568
  stage1_info["missingTemplates"],
569
- stage1_info["mappingData"][0]["newOrder"])
570
  # initialize the progress indication label
571
  step3 = {
572
  "count" : 1,
@@ -576,7 +576,7 @@ with gr.Blocks() as demo:
576
  chkbox_label = '{} (1/{})'.format(target_name, step3["totalNum"])
577
 
578
  target_idx = channel_info["templateDict"][target_name]["index"]
579
- chkbox_value = stage1_info["mappingData"][0]["newOrder"][target_idx]
580
  chkbox_value = [channel_info["inputOrder"][i] for i in chkbox_value]
581
 
582
  stage1_info["step3"] = step3
@@ -607,7 +607,7 @@ with gr.Blocks() as demo:
607
  prev_target_name = stage1_info["missingTemplates"][step3["count"]-1]
608
  prev_target_idx = channel_info["templateDict"][prev_target_name]["index"]
609
  selected_indices = [channel_info["inputDict"][channel]["index"] for channel in selected_chkbox]
610
- stage1_info["mappingData"][0]["newOrder"][prev_target_idx] = selected_indices
611
  #print(f'{prev_target_name}({prev_target_idx}): {selected_indices}')
612
  # ----------------------------------------------------------------------------------
613
  md = """
@@ -686,8 +686,8 @@ with gr.Blocks() as demo:
686
  prev_target_idx = channel_info["templateDict"][prev_target_name]["index"]
687
  selected_idx = channel_info["inputDict"][selected]["index"]
688
 
689
- stage1_info["mappingData"][0]["newOrder"][prev_target_idx] = [selected_idx]
690
- stage1_info["mappingData"][0]["fillFlags"][prev_target_idx] = False
691
  channel_info["templateDict"][prev_target_name]["matched"] = True
692
  channel_info["inputDict"][selected]["assigned"] = True
693
  #print(prev_target_name, '<-', selected)
@@ -737,7 +737,7 @@ with gr.Blocks() as demo:
737
  prev_target_name = stage1_info["missingTemplates"][step3["count"]-1]
738
  prev_target_idx = channel_info["templateDict"][prev_target_name]["index"]
739
  selected_indices = [channel_info["inputDict"][channel]["index"] for channel in selected]
740
- stage1_info["mappingData"][0]["newOrder"][prev_target_idx] = selected_indices
741
  #print(f'{prev_target_name}({prev_target_idx}): {selected_indices}')
742
 
743
  # ------------------------update information for the new round--------------------------
@@ -747,7 +747,7 @@ with gr.Blocks() as demo:
747
  chkbox_label = '{} ({}/{})'.format(target_name, step3["count"], step3["totalNum"])
748
 
749
  target_idx = channel_info["templateDict"][target_name]["index"]
750
- chkbox_value = stage1_info["mappingData"][0]["newOrder"][target_idx]
751
  chkbox_value = [channel_info["inputOrder"][i] for i in chkbox_value]
752
 
753
  stage1_info["step3"] = step3
@@ -834,7 +834,7 @@ with gr.Blocks() as demo:
834
 
835
  def run_model(stage1_info, stage2_info, modelname):
836
  batch_num = stage1_info["batchNum"]
837
- mapping_data = stage1_info["mappingData"]
838
  samplerate = stage2_info["sampleRate"]
839
  filepath = stage2_info["filePath"]
840
  filename = stage2_info["fileNames"]["inputData"]
@@ -844,8 +844,8 @@ with gr.Blocks() as demo:
844
  for i in range(batch_num):
845
  yield {batch_md : gr.Markdown('Running model({}/{})...'.format(i+1, batch_num))}
846
 
847
- new_idx = mapping_data[i]["newOrder"]
848
- fill_flags = mapping_data[i]["fillFlags"]
849
  m_filename = 'mapped_{:02d}.csv'.format(i+1)
850
  d_filename = 'denoised_{:02d}.csv'.format(i+1)
851
  try:
 
326
  "unassignedInputs" : None,
327
  "missingTemplates" : None,
328
  "batchNum" : None,
329
+ "mappingResults" : [
330
  {
331
  "newOrder" : None,
332
  "fillFlags" : None
 
487
  prev_target_idx = channel_info["templateDict"][prev_target_name]["index"]
488
  selected_idx = channel_info["inputDict"][selected_radio]["index"]
489
 
490
+ stage1_info["mappingResults"][0]["newOrder"][prev_target_idx] = [selected_idx]
491
+ stage1_info["mappingResults"][0]["fillFlags"][prev_target_idx] = False
492
  channel_info["templateDict"][prev_target_name]["matched"] = True
493
  channel_info["inputDict"][selected_radio]["assigned"] = True
494
  #print(prev_target_name, '<-', selected_radio)
 
563
  value of the data from the selected channels. (By default, the 4 nearest channels are pre-selected.)
564
  """
565
  # find the 4 nearest in_channels for each unmatched tpl_channels
566
+ stage1_info["mappingResults"][0]["newOrder"] = app_utils.find_neighbors(
567
  channel_info,
568
  stage1_info["missingTemplates"],
569
+ stage1_info["mappingResults"][0]["newOrder"])
570
  # initialize the progress indication label
571
  step3 = {
572
  "count" : 1,
 
576
  chkbox_label = '{} (1/{})'.format(target_name, step3["totalNum"])
577
 
578
  target_idx = channel_info["templateDict"][target_name]["index"]
579
+ chkbox_value = stage1_info["mappingResults"][0]["newOrder"][target_idx]
580
  chkbox_value = [channel_info["inputOrder"][i] for i in chkbox_value]
581
 
582
  stage1_info["step3"] = step3
 
607
  prev_target_name = stage1_info["missingTemplates"][step3["count"]-1]
608
  prev_target_idx = channel_info["templateDict"][prev_target_name]["index"]
609
  selected_indices = [channel_info["inputDict"][channel]["index"] for channel in selected_chkbox]
610
+ stage1_info["mappingResults"][0]["newOrder"][prev_target_idx] = selected_indices
611
  #print(f'{prev_target_name}({prev_target_idx}): {selected_indices}')
612
  # ----------------------------------------------------------------------------------
613
  md = """
 
686
  prev_target_idx = channel_info["templateDict"][prev_target_name]["index"]
687
  selected_idx = channel_info["inputDict"][selected]["index"]
688
 
689
+ stage1_info["mappingResults"][0]["newOrder"][prev_target_idx] = [selected_idx]
690
+ stage1_info["mappingResults"][0]["fillFlags"][prev_target_idx] = False
691
  channel_info["templateDict"][prev_target_name]["matched"] = True
692
  channel_info["inputDict"][selected]["assigned"] = True
693
  #print(prev_target_name, '<-', selected)
 
737
  prev_target_name = stage1_info["missingTemplates"][step3["count"]-1]
738
  prev_target_idx = channel_info["templateDict"][prev_target_name]["index"]
739
  selected_indices = [channel_info["inputDict"][channel]["index"] for channel in selected]
740
+ stage1_info["mappingResults"][0]["newOrder"][prev_target_idx] = selected_indices
741
  #print(f'{prev_target_name}({prev_target_idx}): {selected_indices}')
742
 
743
  # ------------------------update information for the new round--------------------------
 
747
  chkbox_label = '{} ({}/{})'.format(target_name, step3["count"], step3["totalNum"])
748
 
749
  target_idx = channel_info["templateDict"][target_name]["index"]
750
+ chkbox_value = stage1_info["mappingResults"][0]["newOrder"][target_idx]
751
  chkbox_value = [channel_info["inputOrder"][i] for i in chkbox_value]
752
 
753
  stage1_info["step3"] = step3
 
834
 
835
  def run_model(stage1_info, stage2_info, modelname):
836
  batch_num = stage1_info["batchNum"]
837
+ mapping_results = stage1_info["mappingResults"]
838
  samplerate = stage2_info["sampleRate"]
839
  filepath = stage2_info["filePath"]
840
  filename = stage2_info["fileNames"]["inputData"]
 
844
  for i in range(batch_num):
845
  yield {batch_md : gr.Markdown('Running model({}/{})...'.format(i+1, batch_num))}
846
 
847
+ new_idx = mapping_results[i]["newOrder"]
848
+ fill_flags = mapping_results[i]["fillFlags"]
849
  m_filename = 'mapped_{:02d}.csv'.format(i+1)
850
  d_filename = 'denoised_{:02d}.csv'.format(i+1)
851
  try:
app_utils.py CHANGED
@@ -321,7 +321,7 @@ def optimal_mapping(channel_info):
321
  if missing_channels != []:
322
  new_idx = find_neighbors(channel_info, missing_channels, new_idx)
323
 
324
- mapping_data = {
325
  "newOrder" : new_idx,
326
  "fillFlags" : fill_flags
327
  }
@@ -329,31 +329,31 @@ def optimal_mapping(channel_info):
329
  "templateDict" : tpl_dict,
330
  "inputDict" : in_dict
331
  })
332
- return mapping_data, channel_info
333
 
334
  def mapping_result(stage1_info, channel_info, filename):
335
  unassigned_num = len(stage1_info["unassignedInputs"])
336
  batch_num = math.ceil(unassigned_num/30) + 1
337
 
338
  # map the remaining in_channels
339
- all_mapping_data = stage1_info["mappingData"]
340
  for i in range(1, batch_num):
341
  # optimally select 30 in_channels to map to the tpl_channels based on proximity
342
- new_data, channel_info = optimal_mapping(channel_info)
343
- all_mapping_data += [new_data]
344
 
345
- results = {
346
  #"templateOrder" : channel_info["templateOrder"],
347
  #"inputOrder" : channel_info["inputOrder"],
348
  "batchNum" : batch_num,
349
- "mappingData" : stage1_info["mappingData"]
350
  }
351
  with open(filename, 'w') as jsonfile:
352
- jsonfile.write(json.dumps(results))
353
 
354
  stage1_info.update({
355
  "batchNum" : batch_num,
356
- "mappingData" : all_mapping_data
357
  })
358
  return stage1_info, channel_info
359
 
 
321
  if missing_channels != []:
322
  new_idx = find_neighbors(channel_info, missing_channels, new_idx)
323
 
324
+ result = {
325
  "newOrder" : new_idx,
326
  "fillFlags" : fill_flags
327
  }
 
329
  "templateDict" : tpl_dict,
330
  "inputDict" : in_dict
331
  })
332
+ return result, channel_info
333
 
334
  def mapping_result(stage1_info, channel_info, filename):
335
  unassigned_num = len(stage1_info["unassignedInputs"])
336
  batch_num = math.ceil(unassigned_num/30) + 1
337
 
338
  # map the remaining in_channels
339
+ results = stage1_info["mappingResults"]
340
  for i in range(1, batch_num):
341
  # optimally select 30 in_channels to map to the tpl_channels based on proximity
342
+ result, channel_info = optimal_mapping(channel_info)
343
+ results += [result]
344
 
345
+ data = {
346
  #"templateOrder" : channel_info["templateOrder"],
347
  #"inputOrder" : channel_info["inputOrder"],
348
  "batchNum" : batch_num,
349
+ "mappingResults" : stage1_info["mappingResults"]
350
  }
351
  with open(filename, 'w') as jsonfile:
352
+ jsonfile.write(json.dumps(data))
353
 
354
  stage1_info.update({
355
  "batchNum" : batch_num,
356
+ "mappingResults" : results
357
  })
358
  return stage1_info, channel_info
359