From 65ef2f568507608879842e6f935c356e45abf76a Mon Sep 17 00:00:00 2001 From: facat Date: Tue, 4 Feb 2020 22:18:42 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BA=86file=5Fobject.py?= =?UTF-8?q?=E7=9A=84=E4=B8=80=E4=B8=AAbug=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- file_object.py | 4 +++- generate_ta_from_csv.py | 24 +++++++++++------------- main.py | 17 +++++++++-------- survey.py | 3 ++- 4 files changed, 25 insertions(+), 23 deletions(-) diff --git a/file_object.py b/file_object.py index ef19f86..1f12623 100644 --- a/file_object.py +++ b/file_object.py @@ -176,7 +176,7 @@ class TaFileObject: s_as_single.update_height(result, new_tower_height) # 将S文件中的塔高同步到TA文件中。 - def sync_tower_height_from_S(self): + def sync_all_tower_height_from_S(self): enter_string = input( "Will synchronize height in S to Ta. Enter S2T to proceed.\n" ) @@ -191,6 +191,8 @@ class TaFileObject: continue tower_number = s_entry[0] tower_height = s_entry[7] + if tower_number in s_tower_height_dic: + continue# 只取第一次出现的。避免耐张段末端和首端不一致的问题。 s_tower_height_dic[tower_number] = tower_height ta_content = self._read(self._file_path) new_ta_content = list(ta_content) diff --git a/generate_ta_from_csv.py b/generate_ta_from_csv.py index 9a68199..d8ec234 100644 --- a/generate_ta_from_csv.py +++ b/generate_ta_from_csv.py @@ -1,12 +1,12 @@ -from file_object import SFileObject,CordinationObject +from file_object import SFileObject, CordinationObject TA_ENTRY_TEMPLATE = "{tower_number},{suspend_or_tension},{mileage}, {conductor_suspension_poit},0.3212,0.000,{altitude},{pile_number},{tower_name}_{tower_height},{tower_height},{string_name},{string_length}, 0.000,0.1142,0.000000,0.000000,,15,15.500000,,{angel},2.5,15.5,2.500,3.000,1,610.4,2.000,0,2,0,2,{conductor_type},GJ-50,0,0,0,0.000,,0,0.000,9,750,1.000,,0,0.000,0,750,1.000,ZHCH_1,28,1.000,9.5,750,1.000,9.5,750,1.000,{string_name},1,{string_length},{string_name},1,{string_length},,0,0.000,,0,0.000,0,0,0.000, 0.000,0,0,0.000,0,0,4.000,0,1,1.000,,0,0.000,,0,0.000,,0,0.000,1,1,0.000,0,0,0.000, 0.000,0,0, 0.000,1.000,1.000,0.000,0.000,0.000,,0,\n" TA_NC_STRING_NAME = "750-NC" TA_NC_STRING_LENGTH = 14 -TA_NC_TOWER_NAME = 'WNSJ' +TA_NC_TOWER_NAME = "WNSJ" TA_XC_STRING_NAME = "750-FXBW" TA_XC_STRING_LENGTH = 9.5 -TA_XC_TOWER_NAME = 'WNSZ' +TA_XC_TOWER_NAME = "WNSZ" TA_CONDUCTOR_TYPE = "LGJ-400/50" S_NC_STRING_NAME = "2*42-50" # 通过串型来判别是不是耐张塔 @@ -17,9 +17,9 @@ def is_tension_tower_by_string(string_name): # SFiles中的文件应该是按顺序排列的` -def generate_ta(TA_file, SFiles,cordination_file_path): - visited_tower_number={}#记录访问过的塔号 - cord_file_object=CordinationObject(cordination_file_path) +def generate_ta(TA_file, SFiles, cordination_file_path): + visited_tower_number = {} # 记录访问过的塔号 + cord_file_object = CordinationObject(cordination_file_path) with open(TA_file, "w") as file: # 生成所有需要用到的数据 last_S_mileage = 0 @@ -31,7 +31,7 @@ def generate_ta(TA_file, SFiles,cordination_file_path): continue tower_number = S_entry[0] if tower_number not in visited_tower_number: - visited_tower_number[tower_number]=0 + visited_tower_number[tower_number] = 0 else: continue mileage = int(S_entry[1]) + last_S_mileage @@ -40,13 +40,13 @@ def generate_ta(TA_file, SFiles,cordination_file_path): string_name = S_entry[8] suspend_or_tension = is_tension_tower_by_string(string_name) conductor_type = TA_CONDUCTOR_TYPE - #1是悬垂 2是耐张 + # 1是悬垂 2是耐张 if suspend_or_tension == 1: string_length = TA_XC_STRING_LENGTH conductor_suspension_poit = tower_height - string_length pile_number = tower_number - ta_string_name=TA_XC_STRING_NAME - tower_name=TA_XC_TOWER_NAME + ta_string_name = TA_XC_STRING_NAME + tower_name = TA_XC_TOWER_NAME else: string_length = TA_NC_STRING_LENGTH conductor_suspension_poit = tower_height @@ -70,6 +70,4 @@ def generate_ta(TA_file, SFiles,cordination_file_path): conductor_type=conductor_type, ) ) - last_S_mileage = float(S_content[-1][1])+last_S_mileage - - + last_S_mileage = float(S_content[-1][1]) + last_S_mileage diff --git a/main.py b/main.py index b9a312d..e2f17f5 100644 --- a/main.py +++ b/main.py @@ -3,15 +3,16 @@ from file_object import TaFileObject if __name__ == "__main__": SFile = [ - r"d:\工程\灵州-青山\排位\0-21\S000.DAT", - # r"d:\工程\灵州-青山\排位\21-52\S021.DAT", - # r"d:\工程\灵州-青山\排位\52-68\S052.DAT", - # r"d:\工程\灵州-青山\排位\68-72\S068.DAT", - # r"d:\工程\灵州-青山\排位\72-169\S072.DAT", + r"d:\工程\灵州-青山\排位\0-20\S000.DAT", + r"d:\工程\灵州-青山\排位\20-72\S020.DAT", + r"d:\工程\灵州-青山\排位\72-BMX\S072.DAT", ] ta_object = TaFileObject(r"d:\工程\灵州-青山\排位\道亨\最终排位\最终排位.TA", SFile) - # ta_object.sync_tower_height_from_S() - # ta_object.start() - ta_object.sync_all_tower_height_from_TA_to_S() + ta_object.sync_all_tower_height_from_S() + ta_object.start() + # ta_object.sync_all_tower_height_from_TA_to_S() # generate_ta_from_csv.generate_ta(r"d:\工程\灵州-青山\排位\道亨\最终排位\最终排位.TA",SFile,r'd:\工程\灵州-青山\排位\道亨\成果表.csv') + # generate_ta_from_csv.generate_ta( + # r"d:\工程\灵州-青山\排位\道亨\最终排位\最终排位.TA", SFile, r"d:\工程\灵州-青山\排位\道亨\最终排位\成果表-0120.csv" + # ) print("Finished.") diff --git a/survey.py b/survey.py index 07bb8dc..77cc3f2 100644 --- a/survey.py +++ b/survey.py @@ -15,5 +15,6 @@ def output_pile(cordination_file, output_file): if __name__ == "__main__": - output_pile(r"d:\工程\灵州-青山\排位\道亨\成果表.csv", r"d:\工程\灵州-青山\排位\道亨\最终排位\org_append.TA") + # output_pile(r"d:\工程\灵州-青山\排位\道亨\成果表.csv", r"d:\工程\灵州-青山\排位\道亨\最终排位\org_append.TA") + output_pile(r"d:\工程\灵州-青山\排位\道亨\最终排位\成果表-0120.csv", r"d:\工程\灵州-青山\排位\道亨\最终排位\org_append.txt") print("survey. Finished.")