国产亚洲精品91-国产亚洲精品aa在线观看-国产亚洲精品aa在线看-国产亚洲精品xxx-国产亚洲精品不卡在线

樹人論文網(wǎng)一個專業(yè)的學(xué)術(shù)咨詢網(wǎng)站!!!
樹人論文網(wǎng)

工程地質(zhì)論文發(fā)表基于VBA的石油地質(zhì)數(shù)據(jù)處理

來源: 樹人論文網(wǎng)發(fā)表時間:2019-01-15
簡要:海量數(shù)據(jù)處理是石油地質(zhì)項目開展過程中的重要工作,若依靠純手工處理工作量巨大。文章提出了基于VBA數(shù)據(jù)批量處理方法,以氣藏數(shù)值模擬工藝改造數(shù)據(jù)的處理為例,在EXCEL中運用V

  海量數(shù)據(jù)處理是石油地質(zhì)項目開展過程中的重要工作,若依靠純手工處理工作量巨大。文章提出了基于VBA數(shù)據(jù)批量處理方法,以氣藏數(shù)值模擬工藝改造數(shù)據(jù)的處理為例,在EXCEL中運用VBA進行編程,實現(xiàn)海量射孔數(shù)據(jù)的提取與標(biāo)準(zhǔn)化處理。首先從井史數(shù)據(jù)出發(fā),借助文件對象打開對應(yīng)井單的射孔數(shù)據(jù)文件,然后循環(huán)提取射孔數(shù)據(jù)中的相關(guān)數(shù)據(jù)信息,進行標(biāo)準(zhǔn)化處理后寫入工藝改造數(shù)據(jù)表格中,生成氣藏數(shù)值模擬的基礎(chǔ)數(shù)據(jù)體。針對示范工區(qū)數(shù)據(jù)處理表明,該方法不但極大地提高了氣藏數(shù)值模擬基礎(chǔ)數(shù)據(jù)的整理效率,同時也能克服人工處理因疲勞導(dǎo)致的錯誤,提高了數(shù)據(jù)處理的質(zhì)量。

貴州地質(zhì)

  《貴州地質(zhì)》是本刊1984創(chuàng)刊,國內(nèi)外公開發(fā)行,季刊。貴州省地質(zhì)礦產(chǎn)勘查開發(fā)局主管,貴州省地質(zhì)調(diào)查院主辦的公開發(fā)行的科技季刊。其主要任務(wù)是:反映我省地學(xué)進展和科研成果,介紹國內(nèi)外地學(xué)發(fā)展動態(tài),報道地學(xué)界重大事件,為我省的社會經(jīng)濟發(fā)展普及地學(xué)知識,為我省的地學(xué)發(fā)展培育人才。

  0 引言

  雖然Excel功能強大且提供了豐富的函數(shù)輔助數(shù)據(jù)處理,但仍然不能滿足一些特殊數(shù)據(jù)的處理要求。為了處理一些模型更為復(fù)雜的數(shù)據(jù),我們可以利用Excel自帶的開發(fā)環(huán)境VBA實現(xiàn)數(shù)據(jù)處理在某些方面的特殊要求[1-2]。例如:Dydowicz, P.基于VBA對海量公司數(shù)據(jù)進行了批量格式轉(zhuǎn)換[3]。DJ Zhang利用Excel VBA進行本地奇點分析批量運算[4]。在Excel中,處理少量數(shù)據(jù)的時候可以人工操作處理,當(dāng)數(shù)據(jù)處理需要不斷重復(fù)相同的操作時,可以用Excel中的錄制宏來操作,而當(dāng)我們處理繁瑣并且重復(fù)量很大的數(shù)據(jù)時,VBA的編寫就可以幫助減少大量重復(fù)的工作。VBA屬于面向?qū)ο蟮木幊陶Z言,具有易理解、語法簡單的特點,加之,VBA是針對某個特定程序開發(fā),利用簡單的代碼即可完成復(fù)雜的功能[5-6]。VBA處理數(shù)據(jù)比其他語言處理數(shù)據(jù)需要編寫的代碼量少,簡單易操作,不僅能提高效率節(jié)省時間,還能大大提高數(shù)據(jù)正確率。本文針對VBA在油氣勘探開發(fā)中海量數(shù)據(jù)處理的應(yīng)用開展了研究,運用其實現(xiàn)了高效地數(shù)據(jù)整理與標(biāo)準(zhǔn)化工作。

  1 工作流程

  基于VBA的海量數(shù)據(jù)批量處理會涉及多個射孔數(shù)據(jù)表與一個井單表,射孔數(shù)據(jù)表存放于一個單獨的射孔數(shù)據(jù)文件夾中,首先通過循環(huán)一個工作簿中“井號”表單中的井名,依次在射孔數(shù)據(jù)文件夾中查找對應(yīng)井號的工作簿,并依次將其打開,然后逐個復(fù)制其中關(guān)鍵信息,粘貼到首次打開的工作簿中的“工藝改造數(shù)據(jù)”表單中指定的位置,經(jīng)過整理,生成氣藏數(shù)值模擬的基礎(chǔ)數(shù)據(jù)體。

  2 實現(xiàn)方法

  2.1 文件的讀取

  2.1.1 使用FSO對象

  讀取射孔數(shù)據(jù)文件夾需要創(chuàng)建一個FSO對象,它不僅可以實現(xiàn)文件的創(chuàng)建、改變、移動和刪除,而且可以檢測是否存在指定的文件夾。此外,F(xiàn)SO 對象模型還可以獲取關(guān)于文件和文件夾的信息,如名稱、創(chuàng)建日期或修改日期等以及系統(tǒng)中使用的驅(qū)動器的信息。FileSystemObject是FSO對象模型中最主要對象,它提供了一套完整的可用于創(chuàng)建、刪除文件和文件夾,收集驅(qū)動器、文件夾、文件相關(guān)信息的方法。

  創(chuàng)建FSO對象的關(guān)鍵代碼:

  Set objFileSystem=CreateObject("Scripting

  .FileSystemObject")

  2.1.2 獲取文件路徑

  每口井的射孔數(shù)據(jù)都存放在同一個文件夾中,而數(shù)據(jù)的處理需要先獲取這個文件夾的路徑。

  獲取文件夾路徑的關(guān)鍵代碼:

  strPath=ActiveWorkbook.Path+"\射孔數(shù)據(jù)\"

  2.2 設(shè)置輸出表頭

  工作簿中的“工藝改造數(shù)據(jù)”表中有相應(yīng)的表頭,在指定的位置寫入對應(yīng)的表頭,同時,對存放數(shù)據(jù)的區(qū)域單元格進行格式設(shè)置。

  2.2.1 寫入表頭

  在該工作簿中的“工藝改造數(shù)據(jù)”表單中寫入表頭,需要用到Excel中的Range對象,它代表Excel中的單元格,可以是單個單元格,也可以是單元格區(qū)域。通過VBA中的Range屬性,依次將表頭數(shù)據(jù)寫入到指定的單元格中。

  寫入表頭關(guān)鍵代碼,以A列為例:

  Range("A1")="DATE(dd.mm.yyyy)"

  2.2.2 設(shè)置格式

  利用Columns屬性中的NumberFormatLocal屬性,以用戶語言字符串設(shè)置對象的格式代碼,將指定區(qū)域的單元格格式設(shè)置為文本格式。

  設(shè)置格式關(guān)鍵代碼,以A列為例:

  Columns("A").NumberFormatLocal="@"

  2.3 數(shù)據(jù)批量提取與處理

  2.3.1 打開井號對應(yīng)的射孔數(shù)據(jù)

  ⑴ 計算“井號”表單中井口的數(shù)量,首先定義一個wellCount接收“井號”表單中的井口數(shù)量,Range對象的CurrentRegion屬性可以返回包含指定單元格在內(nèi)的一個連續(xù)的矩形區(qū)域,Rows表示某個區(qū)域中所有行組成的集合,通過Count屬性返回工作簿中所有的工作表數(shù)量。

  計算井口數(shù)量關(guān)鍵代碼為:

  wellCount=Range("A1").CurrentRegion.Rows.Count-1

  ⑵ 定義一個wellName獲取井號,通過當(dāng)前活動單元格ActiveCell屬性的Value值,來獲取當(dāng)前單元格的井號。通過Trim函數(shù),移除字符串兩側(cè)的空白字符或其他預(yù)定義字符。

  獲取井號關(guān)鍵代碼為:

  wellname=Trim(ActiveCell.Value)

  ⑶ 打開工射孔數(shù)據(jù)文件,即對應(yīng)井號的射孔數(shù)據(jù)。定義wellFile存放射孔數(shù)據(jù)文件路徑,通過OFS對象的fileExists方法判斷射孔數(shù)據(jù)文件是否存在,若存在,則通過Workbooks中的Open事件打開射孔數(shù)據(jù)。

  打開射孔數(shù)據(jù)關(guān)鍵代碼為:

  wellFile=strPath+wellname+".xlsx"

  If objFileSystem.fileExists(wellFile) Then

  Application.Workbooks.Open wellFile

  ⑷ Worksheet對象的UsedRange屬性可以返回工作表中已經(jīng)使用的單元格圍成的矩形區(qū)域,首先計算出“工藝改造數(shù)據(jù)”表單中將“工藝改造數(shù)據(jù)”表中已經(jīng)使用的單元格圍成的矩形區(qū)域的行數(shù),插入“工藝改造數(shù)據(jù)”表并使每個區(qū)域與下一個區(qū)域之間有兩行的距離。通過Range對象的Value屬性為指定的單元格賦值。

  以A列為例,關(guān)鍵代碼為:

  insertWellIndex=ActiveSheet.UsedRange.Rows.Count+2

  myRange="A"+Trim(Str(insertWellIndex))

  Range(myRange).Value="WELLNAME"

  2.3.2 提取所需射孔數(shù)據(jù)寫入到“工藝改造數(shù)據(jù)”表中的指定位置

  ⑴ 計通過Range對象中的Count屬性計算工作簿2中的射孔數(shù)據(jù)條數(shù)。

  計算射孔數(shù)據(jù)條數(shù)關(guān)鍵代碼為:

  n=Range("A1").CurrentRegion.Rows.Count-1

  ⑵ 通過循環(huán)判斷射孔數(shù)據(jù)的條數(shù)是否大于1,對射孔數(shù)據(jù)進行遍歷,當(dāng)射孔數(shù)據(jù)是1條時,說明只有表頭,故不進行操作,進入下一次循環(huán);當(dāng)射孔數(shù)據(jù)條數(shù)多于1條時,對射孔數(shù)據(jù)中的關(guān)鍵信息進行提取,并寫入到 “工藝改造數(shù)據(jù)”表指定單元格中。寫入其他信息,再提取工作簿1中的“井號”表單日期數(shù)據(jù),處理后寫入“工藝改造數(shù)據(jù)”表中的指定單元格中。

  以提取頂深為例,主要代碼為:

  myRange="B"+Trim(Str(i+1))

  Range(myRange).Select

  Selection.Copy

  '粘貼到指定單元格

  myRange="F"+Trim(Str(insertWellIndex+i))

  Range(myRange).Select

  ActiveSheet.Paste

  ⑶ 通過Range對象的Value屬性,在“工藝改造數(shù)據(jù)”表單指定單元格中寫入其他信息。

  以I列為例,關(guān)鍵代碼為:

  myRange="I"+Trim(Str(insertWellIndex+i))

  Range(myRange).Value=0.2

  ⑷ 通過Day方法,提取日期中的“日”;Month方法提取日期中的“月”;Year方法提取日期中的“年”。將“年”、“月”、“日”寫入到“工藝改造數(shù)據(jù)”表單中。

  以“日”為例,關(guān)鍵代碼為:

  currDay=Str(Day(currDate))+"."

  Sheets("工藝改造數(shù)據(jù)").Select

  myRange="A"+Trim(Str(insertWellIndex+i))

  Range(myRange).Value=currDay

  2.3.3 利用射孔記錄,創(chuàng)建壓裂記錄

  復(fù)制有效射孔記錄區(qū)塊,將其粘貼到與它相鄰的下一行區(qū)塊,通過Range對象的value屬性修改部分單元格的值,生成壓裂記錄數(shù)據(jù)。

  3 應(yīng)用效果

  經(jīng)過VBA的編程處理,將多個Excel中的射孔數(shù)據(jù)提取并整理在了一個Excel中,使需要的數(shù)據(jù)更規(guī)范整齊。

  4 結(jié)束語

  在石油地質(zhì)項目中會產(chǎn)生成百上千條井的信息,而用軟件進行油藏成圖時,大部分的數(shù)據(jù)是無效的,在此,有用信息的快速提取顯得至關(guān)重要。通過Excel VBA編程,可以將幾百上千個Excel中的射孔數(shù)據(jù)批量提取出指定的關(guān)鍵數(shù)據(jù),并將其整理成需要的格式,不但簡單方便,而且極大的提高了效率,節(jié)約了時間還提高了數(shù)據(jù)質(zhì)量。但需要明確的是,Excel VBA也存在運行速度相對較慢等問題,因此,在實際處理問題時應(yīng)具體分析是否適合使用這一方法,再做決斷。

  參考文獻(References):

  [1] 張佩英.自編函數(shù)處理Excel中復(fù)雜數(shù)據(jù)[J].實驗室研究與探索,2007.8:150-152

  [2] 陳紅柳.Excel 2000中VBA的應(yīng)用實例[J].職業(yè)教育研究,2005.2:120-121

  [3] Dydowicz,p.(2013). VBA as a tool for improving outputs from mass data processing,3.1313-1322

  [4] Zhang D, Cheng Q, Agterberg F, et al. An improved solution of local window parameters setting for local singularity analysis based on Excel VBA batch processing technology[J]. Computers&Geosciences;,2016.88(C):54-66

  [5] 焦萍萍,周顯春.EXCEL中的VBA程序設(shè)計[J].電腦知識與技術(shù),2016.11(12):63-64

  [6] 李曉玫,楊小平.Excel中的VBA程序設(shè)計[J].四川師范大學(xué)學(xué)報(自然科學(xué)版),2004.4:423-426

主站蜘蛛池模板: 久久99精品久久久久久综合 | 用力插视频| 国产www在线播放 | 成人自拍网站 | 亚洲第一成年人网站 | 日韩精品在线一区二区 | 久久精品www| 亚洲一级片在线播放 | 九九免费观看全部免费视频 | 日本在线精品视频 | 91三级在线观看 | 在线观看片 | 欧美精品1区 | 日韩国产精品99久久久久久 | 高清视频 一区二区三区四区 | 免费观看一区二区 | 成人午夜免费视频免费看 | 久99频这里只精品23热 视频 | 亚洲精品黄色 | 一级全黄生活片 | 91精品久久一区二区三区 | 麻豆精品久久精品色综合 | 欧美日韩综合精品一区二区三区 | 国产偷2018在线观看午夜 | 美女一级视频 | 色天天天天综合男人的天堂 | 久久ri精品高清一区二区三区 | 日本一级毛片2021免费 | 奇米影视亚洲狠狠色 | 成人网在线观看 | 国产在线一区在线视频 | 国产伦精品一区二区三区在线观看 | 91福利国产在线观一区二区 | xxxxbbbb性猛hd高清| 国产人做人爱免费视频 | 国产精品v欧美精品v日本精 | 久久久久久天天夜夜天天 | 欧美午夜在线播放 | 国产福利一区二区在线精品 | 亚洲一区二区三区四区视频 | 小明成人永久视频在线观看 |