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

        ?

        基于Python的電子水準(zhǔn)數(shù)據(jù)處理程序的設(shè)計(jì)與實(shí)現(xiàn)*

        2021-09-27 10:20:30雪,彭
        地礦測繪 2021年3期
        關(guān)鍵詞:信息

        白 雪,彭 晨

        (云南省測繪工程院,云南 昆明 650033)

        0 引言

        天寶公司的DINI系列數(shù)字水準(zhǔn)儀具有精度高、讀數(shù)快、效率高等特點(diǎn),深受廣大測繪作業(yè)人員的青睞。采用DiNi03水準(zhǔn)儀可以實(shí)現(xiàn)自動(dòng)記錄、檢核數(shù)據(jù),有效的減少人工報(bào)讀數(shù)據(jù)、聽記數(shù)據(jù)以及現(xiàn)場計(jì)算的作業(yè)流程,避免因人工記錄錯(cuò)誤造成的重測情況。在提高工作效率的同時(shí),也達(dá)到了“少紙化”辦公,綠色作業(yè)的目標(biāo)。

        DiNi03電子水準(zhǔn)儀雖然有著諸多的優(yōu)點(diǎn),但是仍然存在和國家標(biāo)準(zhǔn)水準(zhǔn)測量通用格式不相同的地方,主要為隨機(jī)軟件下載的電子記錄水準(zhǔn)記錄數(shù)據(jù)和現(xiàn)行國家規(guī)范格式不同,并且沒有與Cosa(科傻)平差軟件對(duì)接的數(shù)據(jù)。綜上所述,筆者利用Python語言進(jìn)行程序設(shè)計(jì)[1],對(duì)天寶隨機(jī)數(shù)據(jù)軟件下載的數(shù)據(jù)進(jìn)行數(shù)據(jù)分離,轉(zhuǎn)換為武漢大學(xué)開發(fā)的Cosa(科傻)平差軟件通用數(shù)據(jù)格式并生成Excel標(biāo)準(zhǔn)水準(zhǔn)手簿格式。

        1 原始數(shù)據(jù)格式

        在天寶DiNi03電子水準(zhǔn)儀的儀器內(nèi)置程序中,有4種測量模式可供選擇[2],分別為:BF(后前)、BBFF(后后前前)、BFFB(后前前后)、FBBF(前后后前),其中在二等及其以上的水準(zhǔn)測量作業(yè)中,根據(jù)相關(guān)國家規(guī)范的要求,往測為后前前后,返測為前后后前,并奇偶站交替[3]。以二等水準(zhǔn)測量往測為例,數(shù)據(jù)記錄格式見圖1。

        由圖1可知:①框中所表示的為天寶電子水準(zhǔn)儀數(shù)據(jù)記錄的流水作業(yè)號(hào);②框中的信息反映了作業(yè)員在作業(yè)時(shí),所建立的工程文件信息;③框中所代表的信息為本條路線的起始;④框中為觀測的順序;⑤框中為點(diǎn)號(hào)信息;⑥框中為天寶電子水準(zhǔn)儀的編碼信息,該信息在作業(yè)中取決于作業(yè)員的作業(yè)習(xí)慣,為非必須;⑦框中記錄了作業(yè)時(shí)間(此時(shí)間為水準(zhǔn)儀中的系統(tǒng)時(shí)間);⑧框中為作業(yè)員在建立新的水準(zhǔn)路線時(shí),所取得的線路名稱;⑨框中的信息為當(dāng)前測站的記錄順序,可以從該信息中判斷出此測站為奇數(shù)站或是偶數(shù)站;⑩框中為尺子的讀數(shù);框中記錄的是水準(zhǔn)儀的視距信息。通過對(duì)原始數(shù)據(jù)的解析,進(jìn)一步實(shí)現(xiàn)程序相關(guān)功能。

        圖1 天寶DiNi03電子水準(zhǔn)儀原始數(shù)據(jù)格式Fig.1 Original data format of Trimble DiNi03 electronic level

        2 編程思路

        程序設(shè)計(jì)的基本思路,如圖2所示。

        圖2 程序設(shè)計(jì)流程圖Fig.2 Program design flow

        為達(dá)到行業(yè)規(guī)范,通過加載參數(shù)文件,將所測數(shù)據(jù)等級(jí)、測段信息、天氣、觀測者、觀測時(shí)間等信息展現(xiàn)在生成的標(biāo)準(zhǔn)電子手簿中,使用戶能夠在標(biāo)準(zhǔn)手簿中獲取所有測段相關(guān)信息。經(jīng)過實(shí)踐,發(fā)現(xiàn)生產(chǎn)中還需要對(duì)所測得的數(shù)據(jù)進(jìn)行嚴(yán)密平差處理。為了能夠?qū)y量數(shù)據(jù)進(jìn)行平差處理,本程序最終生成武漢大學(xué)研發(fā)的Cosa(科傻)平差系統(tǒng)能識(shí)別的“*.in1”平差文件。

        3 Python編程實(shí)現(xiàn)

        3.1 用戶界面的實(shí)現(xiàn)

        用戶界面主要用于實(shí)現(xiàn)原始數(shù)據(jù)文件和參數(shù)文件的選擇,并確定生成記錄數(shù)據(jù)文件的保存位置。

        原始數(shù)據(jù)文件以及參數(shù)文件的選擇通過讀取文件絕對(duì)路徑進(jìn)行,通過讀取用戶選擇的文件夾絕對(duì)路徑與程序自定義的文件名稱進(jìn)行字符串組合,得到生成記錄數(shù)據(jù)文件的保存位置。原始數(shù)據(jù)文件及參數(shù)文件選擇完成,并確定生成記錄數(shù)據(jù)文件的保存位置后,點(diǎn)擊“開始”按鈕,程序?qū)?duì)數(shù)據(jù)進(jìn)行解析轉(zhuǎn)存。

        3.2 參數(shù)文件處理

        參數(shù)文件由用戶按照模板記錄于“*.txt”文件中,根據(jù)用戶所選擇的參數(shù)文件所在的絕對(duì)位置,打開參數(shù)文件,以“,”為分隔符,對(duì)所記錄的參數(shù)字符串進(jìn)行分割,按照等級(jí),方向,儀器型號(hào),儀器編號(hào),天氣,風(fēng)向,風(fēng)力,土質(zhì),呈像,觀測者,測量單位的順序,讀取參數(shù)信息,并存儲(chǔ)于列表中,以便后續(xù)寫入相應(yīng)記錄文件中。實(shí)現(xiàn)代碼如下:

        pf=open(parafile)

        uline=pf.readlines()[1]

        para=list(uline.split(′,′))

        pf.close()

        3.3 原始數(shù)據(jù)處理

        3.3.1 原始數(shù)據(jù)讀取

        原始數(shù)據(jù)保存于“*.dat”文件中,通過用戶所選擇的原始數(shù)據(jù)文件絕對(duì)位置,打開原始數(shù)據(jù)文件,并按行讀取原始數(shù)據(jù),存儲(chǔ)于列表中,以便后續(xù)解析處理。實(shí)現(xiàn)代碼如下:

        of=open(odfile)

        datas=of.readlines()

        of.close()

        3.3.2 原始數(shù)據(jù)解析

        天寶電子水準(zhǔn)儀所記錄的數(shù)據(jù)中,根據(jù)不同數(shù)據(jù)特征可區(qū)分該行數(shù)據(jù)所記錄信息。主要的數(shù)據(jù)特征包括以下幾類:

        1)字符串含有“Start-Line”:開始一條水準(zhǔn)路線;

        2)字符串含有“End-Line”:結(jié)束一條水準(zhǔn)路線;

        3)字符串含有“Rb”:后視數(shù)據(jù);

        4)字符串含有“Rf”:前視數(shù)據(jù);

        5)字符串含有“#####”:重測記錄數(shù)據(jù);

        6)字符串含有點(diǎn)號(hào)信息,并且不具有以上5種特殊標(biāo)識(shí)符:移動(dòng)至新測站。

        讀取原始數(shù)據(jù)列表數(shù)據(jù)項(xiàng),根據(jù)以上特征判斷原始數(shù)據(jù)項(xiàng)含義,并獲取相應(yīng)記錄信息存儲(chǔ)于列表中。原始數(shù)據(jù)項(xiàng)含義對(duì)應(yīng)記錄信息,如表1所示。

        表1 原始數(shù)據(jù)項(xiàng)含義對(duì)應(yīng)記錄信息表

        其中,當(dāng)數(shù)據(jù)項(xiàng)表示為結(jié)束一條水準(zhǔn)路線時(shí),時(shí)間信息為使用程序的日期。實(shí)現(xiàn)代碼如下:

        dt=datetime.datetime.now()

        time=str(dt.year)+′年′+str(dt.month)+′月′+str(dt.day)+′日′

        原始數(shù)據(jù)結(jié)束一條水準(zhǔn)路線時(shí),程序?qū)⒂涗浽摋l水準(zhǔn)路線的列表傳入信息寫入模塊,將數(shù)據(jù)寫入相應(yīng)的記錄手簿文件及平差文件。

        3.4 信息寫入對(duì)應(yīng)文件

        3.4.1 記錄手簿格式寫入

        記錄手簿包括用于測量信息的表頭,用于記錄測量數(shù)據(jù)的表格,以及用于記錄測段計(jì)算數(shù)據(jù)的結(jié)尾。為方便用戶閱覽且輸出美觀,設(shè)置打印紙張大小為A4紙,每一頁均輸出表頭,至多輸出13個(gè)測站數(shù)據(jù),測量數(shù)據(jù)輸出完成后,輸出結(jié)尾。由于測站數(shù)量不固定,表格與測站數(shù)據(jù)進(jìn)行同步輸出。

        為便于輸出,將記錄手簿格式分為表頭,表格以及結(jié)尾分別存儲(chǔ)于3張模板表格中,寫入時(shí)按需求分別調(diào)用。根據(jù)模板,設(shè)置輸出記錄手簿的Excel文件單元格格式。實(shí)現(xiàn)代碼如下:

        for i in range(1,nrows+1):

        for j in range(97,97+ncols+1):

        n=chr(j).upper()

        a='%s%d’ % (n,(i+number))

        b='%s%d’ % (n,i)

        ws[a].border=copy(rs[b].border)

        ws[a].alignment=copy(rs[b].alignment)

        ws[a].font=copy(rs[b].font)

        ws[a].value=copy(rs[b].value)

        3.4.2 記錄手簿數(shù)據(jù)寫入

        表頭信息由參數(shù)文件及部分原始數(shù)據(jù)得到,根據(jù)記錄手簿格式,將相應(yīng)信息填入對(duì)應(yīng)單元格中。表格中觀測數(shù)據(jù)由原始數(shù)據(jù)列表中輸出,視距差、累計(jì)差、高差、讀數(shù)差由原始數(shù)據(jù)計(jì)算得到,并填入對(duì)應(yīng)單元格中。測站數(shù)據(jù)輸出完成后,對(duì)測段的累計(jì)前距、累計(jì)后距、累計(jì)視距差、累計(jì)高差、測段距離進(jìn)行計(jì)算,并輸出結(jié)尾。實(shí)現(xiàn)代碼如下:

        sjc=((float(datas[i][4])-float(datas[i][8]))+(float(datas[i][5])-float(datas[i][9])))/2

        sjc=round(sjc,5)

        sjc=round(sjc,4)

        acc_s=acc_s+sjc

        acc_s=round(acc_s,4)

        gc1=float(datas[i][6])-float(datas[i][10])

        gc1=round(gc1,5)

        gc2=float(datas[i][7])-float(datas[i][11])

        gc2=round(gc2,5)

        dsc_h=(float(datas[i][6])-float(datas[i][7]))*1000

        dsc_h=round(dsc_h,2)

        dsc_q=(float(datas[i][10])-float(datas[i][11]))*1000

        dsc_q=round(dsc_q,2)

        dsc=dsc_h-dsc_q

        dsc=round(dsc,2)

        gc=(gc1+gc2)/2

        gc=round(gc,6)

        gc=round(gc,5)

        acc_gc=acc_gc+gc

        distance=distance+float(datas[i][5])+float(datas[i][9])

        dis_h=dis_h+float(datas[i][5])

        dis_q=dis_q+float(datas[i][9])

        distance=distance/1000

        dis_h=dis_h/1000

        dis_q=dis_q/1000

        3.4.3 平差文件寫入

        平差文件記錄每一條水準(zhǔn)路線由起始點(diǎn)到終止點(diǎn)的高差和距離。實(shí)現(xiàn)代碼如下:

        gc=str(′%.5f′ % gc)

        distance=str('%.3f’ % distance)

        f=open(file,′a′)

        f.write(spoint.ljust(8)+′,′+epoint.ljust(8)+′,′+gc.rjust(11)+′,′+distance.rjust(6)+′ ′)

        f.close()

        4 程序運(yùn)行

        程序運(yùn)行完成,由原始數(shù)據(jù)文件*.dat輸出相應(yīng)記錄手簿文件*.xlsx以及平差文件*.in1。

        5 結(jié)束語

        DiNi03電子水準(zhǔn)儀能夠?qū)崿F(xiàn)自動(dòng)記錄、核檢測量數(shù)據(jù)的功能,提高了測繪作業(yè)效率,但其隨機(jī)軟件下載的電子記錄水準(zhǔn)記錄數(shù)據(jù)和現(xiàn)行國家規(guī)范格式不同,也無法與Cosa(科傻)平差軟件對(duì)接。結(jié)合Python語言在數(shù)據(jù)處理方面的優(yōu)勢,本文編寫了一個(gè)電子水準(zhǔn)記錄數(shù)據(jù)處理程序,將DiNi03電子水準(zhǔn)儀數(shù)據(jù)轉(zhuǎn)換為國家標(biāo)準(zhǔn)格式,并得到相應(yīng)平差文件,使其所得到的測量數(shù)據(jù)在后續(xù)的使用中更加方便,大大的優(yōu)化了幾何水準(zhǔn)測量的作業(yè)效率,具有更強(qiáng)的實(shí)用性。

        猜你喜歡
        信息
        訂閱信息
        中華手工(2017年2期)2017-06-06 23:00:31
        展會(huì)信息
        信息超市
        展會(huì)信息
        展會(huì)信息
        展會(huì)信息
        展會(huì)信息
        展會(huì)信息
        信息
        健康信息
        祝您健康(1987年3期)1987-12-30 09:52:32
        亚洲综合色一区二区三区另类| 无码少妇一区二区浪潮av| 国产一区二区三区男人吃奶| 精品人妻中文av一区二区三区| 久久久亚洲欧洲日产国码αv| 日本久久精品福利视频| 亚洲无码美韩综合| 成年女人毛片免费观看97| 日韩欧美aⅴ综合网站发布| 人妻少妇中文字幕专区| 全免费a级毛片免费看| 乱人伦中文无码视频在线观看| 国产精品黑丝美女啪啪啪| 少妇高潮太爽了免费网站| 久久国产亚洲高清观看5388| 99国内精品久久久久久久| 色婷婷一区二区三区四区成人网| 在线观看高清视频一区二区三区| 国产一区二区三区爆白浆| 国产精品福利自产拍久久| 成人特黄a级毛片免费视频| 亚洲精品有码日本久久久| 国产成人精品自拍在线观看| 天天插视频| 国产亚洲精品第一综合麻豆| 久久人妻少妇嫩草av无码专区| 中文乱码字字幕在线国语| 中文字幕人妻激情在线视频| 亚欧免费视频一区二区三区| 国产a三级久久精品| 色噜噜狠狠狠综合曰曰曰| 成人日韩熟女高清视频一区| 国产尤物自拍视频在线观看 | 成人爽a毛片免费网站中国| 亚洲国产日韩精品综合| 亚洲av无码成人网站www| 亚洲精品久久无码av片软件| 色avav色av爱avav亚洲色拍| 亚洲国产精品无码aaa片| 精品视频在线观看日韩| 国产91在线播放九色快色|