日韩欧美视频一区-日韩欧美三区-日韩欧美群交P内射捆绑-日韩欧美精品有码在线播放免费-成人免费一区二区无码视频-成人免费一级毛片在线播放视频

樹人論文網一個專業的學術咨詢網站!!!
樹人論文網

工程地質論文發表基于VBA的石油地質數據處理

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

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

貴州地質

  《貴州地質》是本刊1984創刊,國內外公開發行,季刊。貴州省地質礦產勘查開發局主管,貴州省地質調查院主辦的公開發行的科技季刊。其主要任務是:反映我省地學進展和科研成果,介紹國內外地學發展動態,報道地學界重大事件,為我省的社會經濟發展普及地學知識,為我省的地學發展培育人才。

  0 引言

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

  1 工作流程

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

  2 實現方法

  2.1 文件的讀取

  2.1.1 使用FSO對象

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

  創建FSO對象的關鍵代碼:

  Set objFileSystem=CreateObject("Scripting

  .FileSystemObject")

  2.1.2 獲取文件路徑

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

  獲取文件夾路徑的關鍵代碼:

  strPath=ActiveWorkbook.Path+"\射孔數據\"

  2.2 設置輸出表頭

  工作簿中的“工藝改造數據”表中有相應的表頭,在指定的位置寫入對應的表頭,同時,對存放數據的區域單元格進行格式設置。

  2.2.1 寫入表頭

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

  寫入表頭關鍵代碼,以A列為例:

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

  2.2.2 設置格式

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

  設置格式關鍵代碼,以A列為例:

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

  2.3 數據批量提取與處理

  2.3.1 打開井號對應的射孔數據

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

  計算井口數量關鍵代碼為:

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

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

  獲取井號關鍵代碼為:

  wellname=Trim(ActiveCell.Value)

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

  打開射孔數據關鍵代碼為:

  wellFile=strPath+wellname+".xlsx"

  If objFileSystem.fileExists(wellFile) Then

  Application.Workbooks.Open wellFile

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

  以A列為例,關鍵代碼為:

  insertWellIndex=ActiveSheet.UsedRange.Rows.Count+2

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

  Range(myRange).Value="WELLNAME"

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

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

  計算射孔數據條數關鍵代碼為:

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

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

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

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

  Range(myRange).Select

  Selection.Copy

  '粘貼到指定單元格

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

  Range(myRange).Select

  ActiveSheet.Paste

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

  以I列為例,關鍵代碼為:

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

  Range(myRange).Value=0.2

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

  以“日”為例,關鍵代碼為:

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

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

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

  Range(myRange).Value=currDay

  2.3.3 利用射孔記錄,創建壓裂記錄

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

  3 應用效果

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

  4 結束語

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

  參考文獻(References):

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

  [2] 陳紅柳.Excel 2000中VBA的應用實例[J].職業教育研究,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程序設計[J].電腦知識與技術,2016.11(12):63-64

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

主站蜘蛛池模板: 国产精品一区二区AV97 | 免费看欧美xxx片 | 欧美 亚洲综合在线一区 | 欧美日韩综合一区 | 国产成人一区二区三中文 | 打卡中国各地奋斗第一线 | 久久久久久人精品免费费看 | 丝袜足控免费网站xx91 | 乱亲女H秽乱长久久久 | 野花韩国高清完整版在线 | 日本阿v在线资源无码免费 日本阿v片在线播放免费 | 最新日本免费一区 | 无码专区久久综合久综合字幕 | 超碰免费视频部落格 | 伦理电影2499伦理片 | 美女教师朝桐光在线播放 | 国产麻豆剧看黄在线观看 | 忘忧草日本在线社区WWW电影 | 国产曰批试看免费视频播放免费 | 国产系列在线亚洲视频 | 综合人妻久久一区二区精品 | 混乱家庭电影完整版在线看 | 伊人久久亚洲精品一区 | 久久免费精彩视频 | 99热这里有精品 | 99午夜高清在线视频在观看 | 99久久夜色精品国产亚洲AV卜 | 99精品久久精品一区二区 | 免费黄色网址在线观看 | 99精品中文字幕在线观看 | 亚洲黄色在线观看 | 免费毛片试看 | 欧美又粗又长又大AAAA片 | 在线欧美精品一区二区三区 | 久久国产免费观看精品1 | 国产AV精品无码免费看 | 亚洲第一综合天堂另类专 | 国产毛A片久久久久久无码 国产毛A片啊久久久久久A | 美女pk精子4 | 久久亚洲欧美国产综合 | 国产69精品久久久久APP下载 |