亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Python 編程語(yǔ)言在“工程測(cè)量實(shí)習(xí)”課程數(shù)據(jù)處理中的應(yīng)用*

        2023-07-25 05:18:20陳學(xué)永王澤誠(chéng)楊水泉李冬濤
        科技與創(chuàng)新 2023年11期
        關(guān)鍵詞:數(shù)據(jù)處理程序測(cè)量

        張 波,陳學(xué)永,王澤誠(chéng),楊水泉,李冬濤

        (廣州華立學(xué)院,廣東 廣州 529100)

        1 研究背景

        在“工程測(cè)量實(shí)習(xí)”課程的教學(xué)過(guò)程中,數(shù)據(jù)處理是課程重點(diǎn)內(nèi)容之一。工程測(cè)量實(shí)習(xí)完成以后,學(xué)生需要花費(fèi)大量的時(shí)間進(jìn)行測(cè)量數(shù)據(jù)的處理,教師在收到學(xué)生提交的測(cè)量實(shí)習(xí)報(bào)告后,也需要花費(fèi)大量時(shí)間校核學(xué)生的測(cè)量數(shù)據(jù)的可靠性。

        Python 語(yǔ)言是一個(gè)語(yǔ)法簡(jiǎn)潔、可跨平臺(tái)、可擴(kuò)展的開(kāi)源通用腳本語(yǔ)言,Python 語(yǔ)言在數(shù)據(jù)分析、工程計(jì)算等方面優(yōu)勢(shì)突出[1-4]。

        在“工程測(cè)量實(shí)習(xí)”課程中,一般會(huì)進(jìn)行水準(zhǔn)測(cè)量、角度測(cè)量、導(dǎo)線測(cè)量等實(shí)習(xí)內(nèi)容,為了提高工程測(cè)量實(shí)習(xí)的效率,本文利用Python 編程語(yǔ)言開(kāi)發(fā)了一套工程測(cè)量數(shù)據(jù)處理系統(tǒng),通過(guò)使用該軟件系統(tǒng)處理數(shù)據(jù),極大地提高了“工程測(cè)量實(shí)習(xí)”課程測(cè)量數(shù)據(jù)的處理速度,提高了學(xué)生的學(xué)習(xí)效率,減輕了教師核查學(xué)生測(cè)量實(shí)習(xí)數(shù)據(jù)的工作量[5-6]。

        2 數(shù)據(jù)處理軟件主界面及數(shù)據(jù)輸入流程設(shè)計(jì)

        為了方便用戶使用軟件,需編寫(xiě)可視化界面,本文采用Python 程序的tkinter 庫(kù)編寫(xiě)可視化界面[7],框架結(jié)構(gòu)如圖1 所示。

        圖1 “工程測(cè)量實(shí)習(xí)”數(shù)據(jù)處理程序主界面菜單

        對(duì)于高程測(cè)量,程序需要從原始數(shù)據(jù)文件中提取相關(guān)信息,獲取各站的高差、視距差、累計(jì)視距差和累計(jì)高差信息,形成高差文件。同時(shí)程序必需核查數(shù)據(jù)是否符合要求,如果數(shù)據(jù)符合要求,程序按設(shè)定格式生成包含控制點(diǎn)高差、水準(zhǔn)路線長(zhǎng)度等信息的表格文件,為下一步高程控制網(wǎng)平差做準(zhǔn)備。

        核查數(shù)據(jù)程序代碼如下所示:

        df1=df1[df1.apply(lambda x:x.str.contains("|".join(key word)),axis=1)]#遍歷所有列搜索

        df1=df1.dropna(how="all").dropna(axis=1,how="all")#清空全行或全列為NAN 的元素

        df=df[df1.keys()]#選中所在列

        df=df[df.index>df1.index[(df1.shape[0]-1)]].dropna(thresh=2)#篩選,并清空無(wú)關(guān)數(shù)據(jù)

        df=df[df.applymap(lambdax:type(x)!=str)].dropna(how="all")

        if df.shape[0]%2==1 and df.shape[0]>0:df=df[:-1]

        dict_names=dict(zip(df.keys(),keyword))

        df=df.rename(columns=dict_names)#重命名#搜索結(jié)束

        if df.empty==True:#為空

        state=-1

        return(state,"")

        n=int(df.shape[0]/2)

        high=df['后視']-df['前視']#高差

        high_half=high/2.0#高差中數(shù)

        h_add=high_half.sum()#高差中數(shù)和

        h_add=round(h_add,limit)#保留5 位小數(shù)

        h_permit=round(idea(n),limit)

        if abs(h_add*1000)<h_permit:

        state=1

        return (state,"高差中數(shù):"+str(h_add)+"m,"+"容許值:"+str(h_permit)+"mm")

        except(Exception)as e:

        state=-2

        return(state,"出錯(cuò)信息:"+str(e))對(duì)于角度測(cè)量,由于數(shù)據(jù)較多且比較煩瑣,考慮采用先在Excel 軟件中輸入數(shù)據(jù),再以文件的形式導(dǎo)入程序中進(jìn)行數(shù)據(jù)處理[8],程序代碼如下所示:self.root.title("「工程測(cè)量數(shù)據(jù)處理工具」")

        self.root.geometry(str(w)+"x"+str(h))

        self.frame=tk.Frame(master=self.root)

        self.frame_1=tk.Frame(master=self.frame)

        self.data_label = tk.Label(master=self.frame_1,text="待處理文件")

        self.btn_choose=tk.Button(self.frame_1,text="選擇文件(可多選)",command=self.choose_file)

        self.btn_data_clear=tk.Button(self.frame_1,text="清空",command=self.data_Text_clear)

        self.data_Text = tk.Text(master=self.frame_1)#文件輸入框

        利用Python 程序編程也可以準(zhǔn)確地校核測(cè)量數(shù)據(jù)是否準(zhǔn)確有效,程序代碼如下所示:

        def permit_error(df):#最大允許誤差

        state=0#判斷情況

        limit=5#精度,保留5 位小數(shù)

        keyword=["后視","前視"]#關(guān)鍵詞

        idea=lambda n:pow(n,0.5)*10#最大允許誤差計(jì)算公式

        3 水準(zhǔn)測(cè)量實(shí)習(xí)數(shù)據(jù)分析及相應(yīng)代碼

        水準(zhǔn)測(cè)量實(shí)習(xí)一般以閉合水準(zhǔn)測(cè)量實(shí)習(xí)為主,本文以閉合水準(zhǔn)測(cè)量數(shù)據(jù)處理展開(kāi)討論。水準(zhǔn)測(cè)量是利用一條水平視線,并借助水準(zhǔn)尺,來(lái)確定地面兩點(diǎn)之間的高差,然后由已知點(diǎn)的高程推算出未知點(diǎn)位高程的測(cè)量方法。

        閉合水準(zhǔn)測(cè)量是由一已知水準(zhǔn)點(diǎn)出發(fā),沿環(huán)線待測(cè)高程點(diǎn)1、2、3、4 進(jìn)行水準(zhǔn)測(cè)量,最后回到原水準(zhǔn)點(diǎn)的測(cè)量方法,其線路上各點(diǎn)之間高差的代數(shù)和理論值應(yīng)等于零。由于誤差的存在,實(shí)際測(cè)量值代數(shù)和只是接近于零,但不能超出設(shè)定的誤差范圍,否則測(cè)量數(shù)據(jù)就不符合要求,須進(jìn)行重測(cè),由此編寫(xiě)的Python程序核心代碼如下:

        def check_data(df,limit=(0,0)):

        df,read,num=HoriAngle.read_data(df)

        judge=HoriAngle.check_is_ok(read,num)

        if not judge or not num:'''獲取到數(shù)據(jù)'''

        return(-1,"獲取不到測(cè)回?cái)?shù)")if not limit:

        '''無(wú)誤差判斷條件'''

        return(-1,'無(wú)誤差判斷條件')try:

        num=int(num)

        half=HoriAngle.calcu_half(read)

        one=HoriAngle.calcu_one(half)

        permit1=HoriAngle.calcu_perimit(half,int(limit[0]))

        if num==1:

        '''測(cè)回?cái)?shù)為1 時(shí)'''

        if len(permit1)>0:

        '''數(shù)據(jù)不合理'''

        return (0,"第"+",".join(permit1)+"行的數(shù)據(jù)誤差過(guò)大")#誤差過(guò)大

        else:

        '''數(shù)據(jù)合理'''

        return(1,"半測(cè)回角值之差均<="+str(limit[0])+"″")

        else:

        '''測(cè)回?cái)?shù)大于1 時(shí)'''

        #aver=HoriAngle.calcu_aver(one,num)

        permit2=HoriAngle.calcu_perimit(on e,int(limit[1]))

        if len(permit1)>0 or len(permit2):

        '''數(shù)據(jù)不合理'''

        info=permit1|permit2

        return(0,"第"+",".join(info)+"行的數(shù)據(jù)誤差過(guò)大")#誤差過(guò)大

        else:

        return (1," 半測(cè)回角值之差均<="+str(limit[0])+" ″ ,"+" 各 測(cè) 回 角 值 均<="+str(limit[1])+"″")#數(shù)據(jù)合理

        return(-2,"未知")except(Exception)as e:

        print(e)

        return(-2,e)

        4 角度測(cè)量實(shí)習(xí)數(shù)據(jù)分析及相應(yīng)代碼

        角度測(cè)量是“工程測(cè)量實(shí)習(xí)”課程的基本內(nèi)容,是確定地面點(diǎn)位的基本測(cè)量工作之一。角度測(cè)量分為水平角測(cè)量和豎直角測(cè)量,“工程測(cè)量實(shí)習(xí)”課程一般會(huì)要求學(xué)生用測(cè)回法測(cè)量水平角,本文以測(cè)回法測(cè)量水平角數(shù)據(jù)處理展開(kāi)討論。

        測(cè)回法要求在測(cè)點(diǎn)A安置儀器,在盤(pán)左位置用照準(zhǔn)部瞄準(zhǔn)目標(biāo)B,讀取水平盤(pán)度數(shù),再松開(kāi)水平制動(dòng)螺旋,順時(shí)針?lè)较蜣D(zhuǎn)動(dòng)照準(zhǔn)部,瞄準(zhǔn)目標(biāo)C,讀取水平盤(pán)度數(shù),以上稱為上半測(cè)回。

        再縱轉(zhuǎn)望遠(yuǎn)鏡成盤(pán)右位置,瞄準(zhǔn)目標(biāo)C,讀取水平盤(pán)度數(shù),松開(kāi)水平制動(dòng)螺旋,逆時(shí)針?lè)较蜣D(zhuǎn)動(dòng)照準(zhǔn)部,瞄準(zhǔn)目標(biāo)B,讀取水平盤(pán)度數(shù),以上稱為下半測(cè)回,即完成水平角測(cè)回法測(cè)量工作。

        由此編寫(xiě)的Python 程序代碼如下:

        def calcu_half(ser):

        '''計(jì)算半測(cè)回角值'''

        sec=HoriAngle.to_second(ser)

        ser1,ser2=HoriAngle.split_l_r(sec,2)

        result=ser2-ser1

        result=HoriAngle.to_recover(result)

        return result def calcu_one(ser):

        '''計(jì)算一測(cè)回角值'''

        sec=HoriAngle.to_second(ser)

        ser1,ser2=HoriAngle.split_l_r(sec,2)

        result=ser1+(ser2-ser1)/2

        result=result.round(0)

        result=result.astype(int)

        result=HoriAngle.to_recover(result)

        return result

        def calcu_aver(ser,n):

        '''計(jì)算各測(cè)(平均)回角值'''

        n=int(n)

        if n==1:#如果n==1 直接返回

        return ser

        sec=HoriAngle.to_second(ser)

        ser1,ser2=HoriAngle.split_l_r(sec,2)sec=(ser1+ser2)/n

        result=sec.astype(int)

        result=HoriAngle.to_recover(result)

        return result def calcu_perimit(ser,limit):

        '''計(jì)算是否超過(guò)允許值,返回判斷結(jié)果'''

        info=set()

        sec=HoriAngle.to_second(ser)

        ser1,ser2=HoriAngle.split_l_r(sec,2)

        sec=ser2-ser1

        sec=sec.abs()

        #print(sec)

        result=sec[sec.apply(lambda x:x>limit)]

        #print(result)

        lst_idx=result.index.to_list()

        if not sec.empty and result.empty:

        lst=result.to_list()

        for i in lst_idx:

        info.add(str(i))return info

        5 結(jié)束語(yǔ)

        使用Python 編程語(yǔ)言編寫(xiě)的工程測(cè)量數(shù)據(jù)軟件,能夠極大地提高工程測(cè)量數(shù)據(jù)處理速度,減輕教師和學(xué)生在“工程測(cè)量實(shí)習(xí)”課程中的數(shù)據(jù)計(jì)算負(fù)擔(dān)。在廣州華立學(xué)院的“工程測(cè)量實(shí)習(xí)”課程教學(xué)中證明,該軟件不但能夠幫助教師提升教學(xué)效果,也能幫助更多學(xué)生提升學(xué)習(xí)效率和學(xué)習(xí)成績(jī)。

        猜你喜歡
        數(shù)據(jù)處理程序測(cè)量
        認(rèn)知診斷缺失數(shù)據(jù)處理方法的比較:零替換、多重插補(bǔ)與極大似然估計(jì)法*
        ILWT-EEMD數(shù)據(jù)處理的ELM滾動(dòng)軸承故障診斷
        把握四個(gè)“三” 測(cè)量變簡(jiǎn)單
        試論我國(guó)未決羈押程序的立法完善
        滑動(dòng)摩擦力的測(cè)量和計(jì)算
        滑動(dòng)摩擦力的測(cè)量與計(jì)算
        “程序猿”的生活什么樣
        英國(guó)與歐盟正式啟動(dòng)“離婚”程序程序
        測(cè)量
        基于希爾伯特- 黃變換的去噪法在外測(cè)數(shù)據(jù)處理中的應(yīng)用
        无人区一码二码三码四码区| 粉嫩小泬无遮挡久久久久久| 日韩精品一区二区三区免费观影| 国产精品狼人久久影院软件介绍 | 国产精品9999久久久久| 五月天婷婷综合网| 午夜香蕉av一区二区三区| 免费黄片小视频在线播放| 欧美私人情侣网站| h在线国产| 一本色道亚州综合久久精品| 一本久久精品久久综合桃色| 国产亚洲中文字幕一区| 久久久久人妻一区二区三区| 越南女子杂交内射bbwxz| 久久99精品久久久久久久清纯| 久久精品女人天堂AV一个| 免费一区二区在线观看视频在线| 公和我做好爽添厨房中文字幕 | 国产精品女丝袜白丝袜美腿| 国产亚洲精品久久久久久国模美| 亚洲综合精品成人| 成人综合久久精品色婷婷| 日韩美女人妻一区二区三区| 一区二区三区国产免费视频 | 亚洲线精品一区二区三区| 亚洲精品无码成人片久久不卡| 成人无码a级毛片免费| av在线入口一区二区| 大屁股人妻女教师撅着屁股 | 精品视频在线观看一区二区三区| 日韩人妻久久中文字幕| 亚洲av永久无码精品网址| 欧美a视频在线观看| 青青草视频在线观看视频免费| 亚洲日韩小电影在线观看| 欧美午夜刺激影院| 一级做a爰片久久毛片| 国产少妇露脸精品自拍网站| 帅小伙自慰videogay男男| 男女扒开双腿猛进入免费看污|