从日志ASCII标准(LAS)文件读取/写入井数据

lasio的Python项目详细描述


激光手术

StatusVersionLicensePython versionsBuild StatuscodecovDocker Build

这是一个python 2.7和3.3+包,用于读取和写入日志ascii标准(las)文件,用于钻孔数据,如地球物理、地质或岩石物理日志。它与由Canadian Well Logging Society发布的las文件规范的版本1.2和2.0兼容。对LAS 3的支持正在进行中。原则上,它被设计为读取尽可能多类型的las文件,包括包含常见错误或不兼容格式的文件。

根据您的具体应用,您可能还想查看striplog地层/岩性数据,以及welly处理井平面数据。LASIO主要用于读写LAS文件。

注意这是not一个用于读取激光雷达数据的包(也称为“las文件”)。

文档

请看这里的complete lasio package documentation

快速启动

按常规方式安装:

$ pip install lasio

非常快速的示例会话:

>>>importlasio>>>las=lasio.read("sample_big.las")

数据可以直接作为numpy数组访问

>>>las.keys()['DEPT','DT','RHOB','NPHI','SFLU','SFLA','ILM','ILD']>>>las['SFLU']array([123.45,123.45,123.45,...,123.45,123.45,123.45])>>>las['DEPT']array([1670.,1669.875,1669.75,...,1669.75,1670.,1669.875])

以及作为具有相关元数据的CurveItem对象:

>>>las.curves[CurveItem(mnemonic=DEPT,unit=M,value=,descr=1DEPTH,original_mnemonic=DEPT,data.shape=(29897,)),CurveItem(mnemonic=DT,unit=US/M,value=,descr=2SONICTRANSITTIME,original_mnemonic=DT,data.shape=(29897,)),CurveItem(mnemonic=RHOB,unit=K/M3,value=,descr=3BULKDENSITY,original_mnemonic=RHOB,data.shape=(29897,)),CurveItem(mnemonic=NPHI,unit=V/V,value=,descr=4NEUTRONPOROSITY,original_mnemonic=NPHI,data.shape=(29897,)),CurveItem(mnemonic=SFLU,unit=OHMM,value=,descr=5RXORESISTIVITY,original_mnemonic=SFLU,data.shape=(29897,)),CurveItem(mnemonic=SFLA,unit=OHMM,value=,descr=6SHALLOWRESISTIVITY,original_mnemonic=SFLA,data.shape=(29897,)),CurveItem(mnemonic=ILM,unit=OHMM,value=,descr=7MEDIUMRESISTIVITY,original_mnemonic=ILM,data.shape=(29897,)),CurveItem(mnemonic=ILD,unit=OHMM,value=,descr=8DEEPRESISTIVITY,original_mnemonic=ILD,data.shape=(29897,))]

头信息被解析为简单的headeritem对象,并存储在头的每个部分的字典中:

>>>las.version[HeaderItem(mnemonic=VERS,unit=,value=1.2,descr=CWLSLOGASCIISTANDARD-VERSION1.2,original_mnemonic=VERS),HeaderItem(mnemonic=WRAP,unit=,value=NO,descr=ONELINEPERDEPTHSTEP,original_mnemonic=WRAP)]>>>las.well[HeaderItem(mnemonic=STRT,unit=M,value=1670.0,descr=,original_mnemonic=STRT),HeaderItem(mnemonic=STOP,unit=M,value=1660.0,descr=,original_mnemonic=STOP),HeaderItem(mnemonic=STEP,unit=M,value=-0.125,descr=,original_mnemonic=STEP),HeaderItem(mnemonic=NULL,unit=,value=-999.25,descr=,original_mnemonic=NULL),HeaderItem(mnemonic=COMP,unit=,value=ANYOILCOMPANYLTD.,descr=COMPANY,original_mnemonic=COMP),HeaderItem(mnemonic=WELL,unit=,value=ANYETALOILWELL#12, descr=WELL, original_mnemonic=WELL), HeaderItem(mnemonic=FLD,unit=,value=EDAM,descr=FIELD,original_mnemonic=FLD),HeaderItem(mnemonic=LOC,unit=,value=A9-16-49,descr=LOCATION,original_mnemonic=LOC),HeaderItem(mnemonic=PROV,unit=,value=SASKATCHEWAN,descr=PROVINCE,original_mnemonic=PROV),HeaderItem(mnemonic=SRVC,unit=,value=ANYLOGGINGCOMPANYLTD.,descr=SERVICECOMPANY,original_mnemonic=SRVC),HeaderItem(mnemonic=DATE,unit=,value=25-DEC-1988,descr=LOGDATE,original_mnemonic=DATE),HeaderItem(mnemonic=UWI,unit=,value=100091604920,descr=UNIQUEWELLID,original_mnemonic=UWI)]>>>las.params[HeaderItem(mnemonic=BHT,unit=DEGC,value=35.5,descr=BOTTOMHOLETEMPERATURE,original_mnemonic=BHT),HeaderItem(mnemonic=BS,unit=MM,value=200.0,descr=BITSIZE,original_mnemonic=BS),HeaderItem(mnemonic=FD,unit=K/M3,value=1000.0,descr=FLUIDDENSITY,original_mnemonic=FD),HeaderItem(mnemonic=MATR,unit=,value=0.0,descr=NEUTRONMATRIX(0=LIME,1=SAND,2=DOLO),original_mnemonic=MATR),HeaderItem(mnemonic=MDEN,unit=,value=2710.0,descr=LOGGINGMATRIXDENSITY,original_mnemonic=MDEN),HeaderItem(mnemonic=RMF,unit=OHMM,value=0.216,descr=MUDFILTRATERESISTIVITY,original_mnemonic=RMF),HeaderItem(mnemonic=DFD,unit=K/M3,value=1525.0,descr=DRILLFLUIDDENSITY,original_mnemonic=DFD)]

数据存储为2d numpy数组:

>>>las.dataarray([[1670.,123.45,2550.,...,123.45,110.2,105.6],[1669.875,123.45,2550.,...,123.45,110.2,105.6],[1669.75,123.45,2550.,...,123.45,110.2,105.6],...,[1669.75,123.45,2550.,...,123.45,110.2,105.6],[1670.,123.45,2550.,...,123.45,110.2,105.6],[1669.875,123.45,2550.,...,123.45,110.2,105.6]])

您还可以检索和加载数据作为pandas数据帧,从头开始构建las文件, 将它们写回光盘,并导出到excel等。

有关详细信息,请参见documentation

许可证

麻省理工学院

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Wildfly 8.2远程处理打开的通道太多   java如何为StringBuffer(“+”+“+”)分配内存   java从特定sql语句获取true(1)或false(0)   在Java中使用自定义权限   java Hashmap Json保存和加载   Android中的java地图视图   java如何获得正确的AWS可用性区域?   java从字符串中删除HashMap键   有没有一种简单的方法可以读取Java中的XML文件?   java ORMLite如何使用两个日期列进行查询,其中一个为空或小于另一个   使用java将带有动态字段的json文件反序列化到类中   当单元格包含空值时从excel获取数据的java   java在线程中实现runnable接口并使用此关键字   java为什么我会在这里遇到例外?