December 2020 Outcrop

Page 1

OUTCROP Newsletter of the Rocky Mountain Association of Geologists

Volume 69 • No. 12 • December 2020


OUTCROP | December 2020

2

Vol. 69, No. 12 | www.rmag.org


OUTCROP The Rocky Mountain Association of Geologists

1999 Broadway • Suite 730 • Denver, CO 80202 • 800-970-7624 The Rocky Mountain Association of Geologists (RMAG) is a nonprofit organization whose purposes are to promote interest in geology and allied sciences and their practical application, to foster scientific research and to encourage fellowship and cooperation among its members. The Outcrop is a monthly publication of the RMAG.

2020 OFFICERS AND BOARD OF DIRECTORS PRESIDENT

2nd VICE PRESIDENT-ELECT

Jane Estes-Jackson janeestesjackson@gmail.com

Peter Kubik pkubik@mallardexploration.com

PRESIDENT-ELECT

SECRETARY

Cat Campbell ccampbell@caminoresources.com

Jessica Davey jessica.davey@sproule.com

1st VICE PRESIDENT

TREASURER

Ben Burke bburke@hpres.com

Chris Eisinger chris.eisinger@state.co.us

1st VICE PRESIDENT-ELECT

TREASURER ELECT

Nathan Rogers nathantrogers@gmail.com

Rebecca Johnson Scrable rebecca.johnson@bpx.com

2nd VICE PRESIDENT

COUNSELOR

Dan Bassett dbassett@sm-energy.com

Donna Anderson danderso@rmi.net

RMAG STAFF DIRECTOR OF OPERATIONS

Kathy Mitchell-Garton kmitchellgarton@rmag.org DIRECTOR OF MEMBER SERVICES

Debby Watkins dwatkins@rmag.org CO-EDITORS

Courtney Beck clbeck14@gmail.com Nate LaFontaine nlafontaine@sm-energy.com Wylie Walker wylie.walker@gmail.com DESIGN/LAYOUT

Nate Silva nate@nate-silva.com

ADVERTISING INFORMATION

Rates and sizes can be found on page 23. Advertising rates apply to either black and white or color ads. Submit color ads in RGB color to be compatible with web format. Borders are recommended for advertisements that comprise less than one half page. Digital files must be PC compatible submitted in png, jpg, tif, pdf or eps formats at a minimum of 300 dpi. If you have any questions, please call the RMAG office at 800-970-7624. Ad copy, signed contract and payment must be received before advertising insertion. Contact the RMAG office for details. DEADLINES: Ad submissions are the 1st of every month for the following month’s publication.

WEDNESDAY NOON LUNCHEON RESERVATIONS

RMAG Office: 800-970-7624 Fax: 323-352-0046 staff@rmag.org or www.rmag.org

The Outcrop is a monthly publication of the Rocky Mountain Association of Geologists

Vol. 69, No. 12 | www.rmag.org

3 3

Outcrop | December 2020 OUTCROP


? ? ? ? ? ? ? ? ? ? ? ? ?

RMAG Virtual Trivia Night Holiday Edition

? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

12/2/20 @ 4:30pm

More new questions!

MC’d by RMAG member Chantel Maybach FREE & Open to all! Register today at www.rmag.org

email: staff@rmag.org | 2020 phone: 800.970.7624 OUTCROP | December 1999 Broadway, Suite 730, Denver CO 80202

4

fax: 323.352.0046 web: www.rmag.org Vol. 69, No.|12 | www.rmag.org follow: @rmagdenver


OUTCROP Newsletter of the Rocky Mountain Association of Geologists

CONTENTS FEATURES

DEPARTMENTS

12 Lead Story: Using Python to Improve Your Geologic Interpretations

6 RMAG November 2020 Board of Directors Meeting

ASSOCIATION NEWS

8 President’s Letter 23 Outcrop Advertising Rates

2 RMAG Summit Sponsors

24 Online Lunch Talk: Dr. Tyler Lyson & Dr. Ian Miller

4 RMAG Trivia Night

26 In The Pipeline

COVER PHOTO

7 MiT Webinar Series: Upcoming Events

26 Welcome New RMAG Members!

Grand Teton National Park during a surprise snowstorm in September 2020. Photo by Courtney Beck

25 News From The RMAG Foundation

27 Publish with The Mountain Geologist 28 Advertiser Index 28 Calendar

Vol. 69, No. 12 | www.rmag.org

5

OUTCROP | December 2020


RMAG NOVEMBER BOARD OF DIRECTORS MEETING By Jessica Davey, Secretary jessica.davey@sproule.com

OUTCROP | December 2020

is still running virtually as well with Debby and Kathy managing the day to day operations from the safety of their homes. The Continuing Education has virtual luncheon talks lined up for the next few months, plus some fantastic short courses and online sessions are being planned for 2021. The Membership Committee reported that the Geohike Challenge was a successful event. Participants from across the country had fun while checking off the scavenger hunt items. A follow-up event is in the works for 2021. The Publications Committee needs a volunteer to help add DOIs to back issues of the Mountain Geologist; editions from 1964 through 2017 will be easier to find online once this endeavor is complete. The On the Rocks Committee held a couple of virtual field trips in November; both went well and were promising test cases for future virtual trips. The Educational Outreach Committee participated in the virtual Colorado Science Conference on November 14. I was happily scrolling through my social media accounts when I experienced my first case of geo-click bait. Maybe this is something that happens to everyone? But, this was the first time for me. Of course, I had to click on it. How could I resist? If you’re curious, check out this. This karst topography must have been a true stumper for those scientists!

Happy holidays, fellow rock lovers! My family and I have been taking time to enjoy the beautiful fall weather we have been experiencing. The holidays may look a bit different this year due to COVID and social distancing, but I hope you can get out and enjoy some great outcrops! The RMAG Board of Directors met virtually at 4 pm on Wednesday, November 18. Everyone except Nathan Rogers was present for the meeting. Treasurer, Chris Eisinger, and Treasurer-Elect, Rebecca Johnson Scrable, report that the RMAG financials remain good despite the struggle with COVID this year. The budget for 2021 is well underway, and RMAG plans to maintain virtual events for the next few months. The RMAG office

6

Vol. 69, No. 12 | www.rmag.org


Webinar Series 2020 Members in Transition

Rocky Mountain Members in Transition (MiT) is a joint effort of members of AAPG, SPE, WOGA, COGA, DWLS, CU GEM, WEN-CO, DERL, and RMAG in the Rocky Mountain region to help association members in the midst of a career transition.

Webinars are free and open to all

All times 12pm-1pm MST

Register at www.rmag.org

December 3, 2020

Fred Henderson & Hank Held  Geothermal Energy in Colorado: The Mt. Princeton Geothermal Project

December 10, 2020

Speaker Panel: Tanya Inks, Steve Leeds, KJ McDonough  Staying in the Game: How to Become a Consultant

Visit our partner website Petroleum Pivoters!

Rockies MiT Members in Transition

Vol. 69, No. 12 | www.rmag.org

7

OUTCROP | December 2020


PRESIDENT’S LETTER By Jane Estes-Jackson

What a Long, Strange Trip It’s Been

This year has certainly been a real roller coaster ride and maybe the longest one of my life. I don’t think anyone could have possibly foreseen all of the challenges that we faced. We started the year strong, with three sold-out luncheons. Our committees had many great ideas for symposia, field trips, and social events. We had approved a modest budget, based on last year’s results, that we thought was very reasonable and even somewhat conservative. Then the COVID pandemic hit, and the whole world changed. This was immediately followed by an oil price crash and massive industry layoffs. Is this what they call a “black swan event”? But the RMAG staff, the committees, and the Board all rose to the occasion. We quickly pivoted the monthly luncheons to online talks that were free for members. The popularity of these presentations greatly exceeded our expectations and had an added bonus of earning us new memberships. Both the spring and fall symposia shifted to an online format as well. Dan Bassett and the Continuing Education Committee made a concerted effort to provide a large and varied selection of short courses, which included a first-ever partnership with RPS/Nautilus. Under the leadership of past president Terri Olson, and in cooperation with SPE, DWLS, WOGA, and COGA,

we spearheaded the Rockies Members in Transition (MiT) group, which provided free webinars and websites specifically targeting job seekers to provide assistance to our members that have been laid off and want to pivot to other industries. The Membership Committee came up with the first ever GeoHike Challenge as a way to remotely engage members in an outdoor setting, while the On the Rocks Committee successfully tested a couple of virtual field trips. And the Trivia Nights provided a fun way for members to engage in online networking. All things considered, I think we came out of this much better than expected. We aren’t where I thought

» CONTINUED ON PAGE 10

Well Log Digitizing • Petrophysics Petra® Projects • Mud Log Evaluation Bill Donovan

Geologist • Petroleum Engineer • PE

(720) 351-7470 donovan@petroleum-eng.com OUTCROP | December 2020

8

Vol. 69, No. 12 | www.rmag.org



PRESIDENT’S LETTER for the 2020 Word of the Year is “pivot”, and I am quite ready to pivot into a different role within RMAG. I tried to do my very best for this organization, and while I know that I came up short in many regards, I appreciate the opportunity to do my small part. I am indebted to our Summit Sponsors, whose generous contributions make our activities possible. We couldn’t do what we do without them. I also want to thank the members of the Publications, Continuing Education, On the Rocks, Membership, Educational Outreach, Investment, Nomination, and Awards committees as well as the 2020 Board members, for all of their efforts during this very difficult year. I am especially grateful to Kathy Mitchell-Gorton, Director of Operations, and Debby Watkins, Director of Member Services, for all of their help. They both went above and beyond their usual responsibilities and made my job much, much easier. I now leave the RMAG in the very capable hands (or maybe tiny T-Rex arms?) of Cat Campbell and the rest of the 2021 Board. I am very confident in their leadership and stewardship and I wish them (and you) all the best.

» CONTINUED FROM PAGE 8

we would be in January, but we ended up much better off than I had hoped in June. And while we are all disappointed about the cancellations of the in-person events, including the golf tournament, sporting clays, and field trips, I am optimistic that at some point in the hopefully not too distant future those activities will be back and better than ever. The events of this year pushed me way out of my comfort zone, and I have to say I am more than a little relieved that it is coming to an end. My nomination

Proudly developing Colorado’s energy potential through innovation, safety and a commitment to our community l e a r n m o r e at : w w w . c r e s t o n e p e a k r e s o u r c e s . c o m

OUTCROP | December 2020

10

Vol. 69, No. 12 | www.rmag.org


WE ARE GREAT WESTERN AND WE ARE COMMITTED TO:

PEOPLE

EXCELLENCE

TEAMWORK

GROWTH

STEWARDSHIP

RESILIENCE

WE ARE #CommittedtoColorado Providing geoscience expertise and technology to the field and office since 1981

Well Site Geology Geosteering - On site & Remote Rock Analytics Geologic Prognosis/Mapping Oil Field Safety Training - PEC Regulatory Representation

sunburstconsulting.com

406.259.4124 Vol. 69, No. 12 | www.rmag.org

11

OUTCROP | December 2020


LEAD STORY

USING PYTHON TO IMPROVE YOUR GEOLOGIC INTERPRETATIONS

A Bottom Hole Temperature Workflow BY MATTHEW W. BAUER, P.G.

How much does your team spend in time and money gathering datasets, fixing errors, and relating multiple data sources before you can interpret? Are there conventional workflows that are too time-intensive to use over regional areas? What about datasets where the variable and sample counts are so large it’s hard to wrap your mind around? Have you tried to understand the economics and risk of a project without having absolute inputs? Adding python programming to your workflows can help. It isn’t a magic bullet so understanding what it can and can’t do is important. Workflow automation and machine learning can’t replace the domain expertise, abstract thought, or creativity of a good geologist. That said, coding literacy provides large benefits to earth scientists by being able to acquire and utilize large datasets efficiently. I also argue that those benefits can start to be realized earlier in the learning process than the traditional “10,000-hour” learning threshold. Especially time savings in accessing and cleaning data. So, what packages should you start learning?

OUTCROP | December 2020

12

Vol. 69, No. 12 | www.rmag.org


Vol. 69, No. 12 | www.rmag.org

13

OUTCROP | December 2020


LEAD STORY

» CONTINUED FROM PAGE 12

The python library pandas allows us to efficiently open a larger number of file formats in larger sizes than Excel can handle. Finding and fixing errors in datasets with boolean filters and regular expressions can eliminate the days of sifting through an Excel workbook fixing issues by hand. The ease and speed in which higher-level math can be applied to these multidimensional arrays can simplify the multiple columns and complex nested functions required in Excel. Merging datasets in pandas greatly simplifies the sometimes tedious vlookup process. The fuzzy string matching capabilities of the library fuzzywuzzy combined with pandas can easily make looking up missing API numbers from well names with slight variations in spelling a thing of the past. The python libraries lasio and welly allow us to open, interact with, and save LAS logs. Limitations on time and data budgets can limit the number of well logs, tops, and downhole testing that we base our interpretations on and, potentially, increase a project’s risk. Automating the process of accessing public data, also known as scraping, with the libraries requests, selenium, and urllib can increase the amount of data we can access and vastly improve our understanding of natural systems. Unfamiliar with the python packages mentioned so far in shaded text? Does this all seem foreign? If you have the aptitude and drive I want to help. I contribute to some of these projects but all of the following are the cream of my recommendations of where to get started. • General Python Course (Free): Dr. Chuck’s Python for Everybody o Community (Free): The Software Underground • General Python Course (Free): MIT 6.0001 o If I(Free): had toHackersVillage pick one blog: Agile* • O & G Applied Python o Continuing Practical Python for Earth Scientists (RMAG, Mines, GSA) • Geostatistics (Free): Dr. Michael Education: Pyrcz aka GeostatsGuy o Graduate Certificate: Mines • Community (Free): The Software Underground Earth Resource – Data Science • If I had to pick one blog: Agile* • Continuing Education: Practical Python for Earth Scientists (RMAG, Mines, GSA) Bottom Hole Temperatures • Graduate Mines Resource Scienceworkflow for LAS logs. Whether you're Let usCertificate: take a look at anEarth example of an– Data automated mapping geothermal prospects or building maturity models, bottom hole temperature (BHT) BOTTOM TEMPERATURES data HOLE is essential. Some G&G software packages allow parsing of LAS file headers, otherwise Letyou us take a look at an example ofat anaautomated workflow forautomated, LAS logs. Whether you’re the mapping geotherare left reviewing one file time. Parsing can be which makes processing mal prospects or building maturity models, bottom hole temperature (BHT) data is essential. Some G&G software of approximately 64k files on a solid-state drive for BHT data achievable overnight. First, we will packages allow parsing of LAS otherwise yousome are left reviewing file at in a time. Parsing can be autoimport the libraries thatfile weheaders, will be using and set variables forone working a jupyter mated,notebook. which makes the processing of approximately 64k files on a solid-state drive for BHT data achievable overDo you want to follow along with the code in this notebook? You can find it here night. First, we will import the libraries that weinstructions will be using set python some variables foraworking in a jupyter note(https://youtu.be/KUuoFRye37w) and toand install and open jupyter book. Do you want to follow along with the code in this notebook? You can find it here and instructions to install notebook here (https://github.com/Rocks-n-Code/PythonCourse/tree/master/BHT). python and open a jupyter notebook here.

#Import libraries import pandas as pd #library for working with dataframes import geopandas as gpd #library for working with geospatial data import lasio #library for working with LAS files import glob #library for finding files import os #library for interacting with files import re #library for regular expressions #Set options pd.set_option('display.max_columns', None) %matplotlib notebook

» CONTINUED ON PAGE 15

With the library glob we can search for our files with the file path and a wildcard character of "*". For Windows users, once we have the list of files then we’ll make the slash direction uniform. Wonder where I acquired such a large set of digital well logs? I’ve previously scraped OUTCROP December 2020 14 Vol. 69, No. 12 | www.rmag.org these| logs from the COGCC website with python.


#Set options pd.set_option('display.max_columns', None) %matplotlib notebook LEAD STORY 14 glob we can search for our files with the file path and a wildcard character of WithFROM the PAGE library » CONTINUED

"*".the Forlibrary Windows users, once we for have listwith of files then we’ll make the slash direction With glob we can search ourthe files the file path and a wildcard character of “*”. For Winuniform. such a large of digital well logs? I’ve Wonder previously scraped dows users, onceWonder we havewhere the listI acquired of files then we’ll make set the slash direction uniform. where I acquired these logs from the COGCC website with python. such a large set of digital well logs? I’ve previously scraped these logs from the COGCC website with python. #Find your LAS files las_path = "D:/CO/CO_LAS/*.las" files = [x.replace('\\','/') for x in glob.glob(las_path)] print(len(files),'LAS files found.')

Next, we will loop through those files and use the library lasio to open each file. We will then Next, loop files andinto useathe library lasio to open each file. willtothen pull the pullwe thewill LAS filethrough headerthose parameters temporary pandas dataframe andWe filter aliases of LAS file header parameters into a temporary pandas dataframe to aliases of temperature in the temperature readings in the header info and collect and the filter highest reading. We can alsoreadings collect the headermaximum info and collect the highest Welog. canWe'll also collect theor maximum measured depth from each log. We’ll measured depth reading. from each add this, concatenate, to our primary add this, or concatenate, to our dataframe and that once we’ll save outfinished. occasionally and once we are finished. dataframe that we'll saveprimary out occasionally we are temp_alias = ['BHT','BHT:1','BHT:2','BHT:3','BHT:4', 'MRT','MRT:1','MRT:2','MRT2:1', 'MRT1:1','MRT2:2','MRT1:2','MRT:3', 'MRT2','MRT3','MRT4','MRT1', 'MRT 192', 'MAXRECTEMP', 'BOTTEMP','BOTTOMHOLETEMP','TEMP','TEMPERATURE','MAXTEMP', 'BHTEMP','BHTEMP:1','BHTEMP:2','BHTEMP_SRC'] celcius_units = ['degC','DEGC'] depth_alias = ['DEPT','DEPTH','M_DEPTH','DPTH','DEPT:1','MD','DEPTH:1', 'DEPTH_HOLE','BDEP','DMEA','TOTAL_DEPTH','TVD','DEP', 'TDEP','DEPTMEAS','DEPT_PNN','DEPT_CBL','"DEPTH"', 'TVD:1','DEP:1'] #Make empty list and dataframe err_files = [] bht_df = pd.DataFrame() #Place file paths that cause hangups here hangups = [] #Saveout counter i = 0 #Loop through files for file in files: CONTINUED ON PAGE 16 if file in hangups: continue i += 1 try: las = lasio.read(file) params = {'mnemonic' : [x.mnemonic for x in las.params], 'unit' : [x.unit for x in las.params], Vol. 69, No. 12 | www.rmag.org 15 for x in las.params], OUTCROP | December 2020 'value' : [x.value 'descr' : [x.descr for x in las.params]}

»


err_files = [] bht_df = pd.DataFrame() #Place file paths that cause hangups here LEAD STORY hangups = [] FROM PAGE 15counter #Saveout » CONTINUED

i = 0

#Loop through files for file in files: if file in hangups: continue i += 1 try: las = lasio.read(file) params = {'mnemonic' : [x.mnemonic for x in las.params], 'unit' : [x.unit for x in las.params], 'value' : [x.value for x in las.params], 'descr' : [x.descr for x in las.params]} temp = pd.DataFrame(params) temp['API'] = file.split('/')[-1].split('_')[0] temp['file'] = file.split('/')[-1] #Pull Maximum Depth depths = [x.mnemonic for x in las.curves if x.mnemonic in depth_alias] max_depth = max([las[x].max() for x in depths]) temp['MaxMD'] = max_depth #Filter to just temperature alisas temp = temp[temp.mnemonic.isin(temp_alias)] bht_df = pd.concat([bht_df,temp],ignore_index=True) except Exception as e: print(file,e) err_files.append(file) if i > 100: i = 0 print(round(files.index(file)/len(files)*100,2),'%complete') bht_df.to_csv('bht_df.csv',index=False) bht_df.to_csv('bht_df.csv',index=False) Once we we havehave the BHT data data parsed from the LAS need toneed clean to it up to make values conOnce the BHT parsed from thefiles, LASwe files, we clean it up it tousable. make itThe usable. The values contain non-number characters such as "°" or " F" that we will need to remove. tain non-number characters such as “°” or “ F” that we will need to remove. Regular expressions, or re, can do this Regular or re, can do this easily in by a single line of Regular expressions easily in a singleexpressions, line of code. Regular expressions do this expanding ourcode. search capabilities to rangesdoof characexpanding our search to ranges of search characters or eventhat patterns characters. ters orthis evenbypatterns of characters. Incapabilities this case, we’ll use re to for anything isn’t aof number or a deciIn this we'll usecharacters. re to search for anything that isn't a number or a decimal place and mal place andcase, remove those remove those characters. CONTINUED ON PAGE 17

»

pre_count = bht_df.shape[0] #Drop Null Values bht_df = bht_df[bht_df.value.notnull()]

OUTCROP | December 2020

16

Vol. 69, No. 12 | www.rmag.org

#Remove non-number characters other than "." bht_df.value = bht_df.value.apply(lambda x: re.sub("[^0-9.]","",x))


»

The values containour non-number characters asof "°"characters or " F" thatorwe will patterns need to remove. this by expanding search capabilities to such ranges even of characters. Regular expressions, or re, can do this easily in a single line of code. Regular expressions In this case, we'll use re to search for anything that isn't a number or a decimal place and do this by expanding our search capabilities to ranges of characters or even patterns of characters. remove those characters. LEAD that STORY In this case, we'll use re to search for anything isn't a number or a decimal place and remove those characters. CONTINUED FROM PAGE 16 = bht_df.shape[0] pre_count

pre_count bht_df.shape[0] #Drop Null=Values bht_df = bht_df[bht_df.value.notnull()] #Drop Null Values bht_df =non-number bht_df[bht_df.value.notnull()] #Remove characters other than "." bht_df.value = bht_df.value.apply(lambda x: re.sub("[^0-9.]","",x)) #Remove non-number characters other than "." bht_df.value = bht_df.value.apply(lambda x: re.sub("[^0-9.]","",x)) #Drop empty values bht_df = bht_df[bht_df.value != ''] #Drop empty values bht_dfmultiple = bht_df[bht_df.value != ''] #Drop "." Tool IP addresses? bht_df = bht_df[bht_df.value.apply(lambda x: str(x).count('.') <= 1)] #Drop multiple "." Tool IP addresses? bht_df = bht_df[bht_df.value.apply(lambda x: str(x).count('.') <= 1)] We can now change the variable type from strings into float numbers. Once the data is actually numbers we can convert the Celsius values to Fahrenheit and change the unit label. Doing this WeWe cancan nownow change the variable type from strings into float Once the datathe is actually numbers we change the variable type in from strings into numbers. float numbers. Once data is actually with where allows us to convert units select locations by using a boolean that is only false can convert the Celsius values to Fahrenheit and change the unit label. Doing this the withunit where allows usthis to convert numbers we canto convert the Celsius to Fahrenheit and change label. Doing we want change the data that in values that column. units inwhere select locations by using a boolean is only false where we want to change the data in that column. with where allows us to convert units in select locations by using a boolean that is only false where we want to change the data in that column. bht_df['value'] = bht_df['value'].astype(float) bht_df['value'] = bht_df['value'].astype(float) for C_col in ['DEGC','degC']: bht_df['value'] = bht_df['value'].where(bht_df['unit'] != C_col, for C_col in ['DEGC','degC']: bht_df['value'] = bht_df['value'].where(bht_df['unit'] != C_col, other=bht_df['value'].apply(lambda x: (9/5)*x + 32)) bht_df['unit'] = bht_df['unit'].where(bht_df['unit'] != C_col, other='degF') #Drop Bad Values bht_df = bht_df[bht_df.value >= 0] bht_df = bht_df[bht_df.value < 500] print(pre_count - bht_df.shape[0],'of',pre_count,'rows dropped.')

MERGING DATASETS Merging Datasets

We still need to add location and TVD information to the BHT data. To accomplish this we are going to use geopandas toneed open to a well shapefile from information COGCC and manipulate withTo theaccomplish same syntaxthis as pandas. We still addspot location and TVD to the BHT itdata. we are We will use this shapefile forgeopandas the spatial locations eachspot wellshapefile and merge it toCOGCC our bht_df dataframe. it with the going to use to open for a well from and manipulate same syntax as pandas. We will use this shapefile for the spatial locations for each well and ON PAGE 18 CONTINUED merge it to our bht_df dataframe.

»

wells = gpd.read_file('./WellSpot/Wells.shp') wells.head()

Vol. 69, No. 12 | www.rmag.org

17

OUTCROP | December 2020


merge it to our bht_df dataframe. wells = gpd.read_file('./WellSpot/Wells.shp') LEAD STORY wells.head()

» CONTINUED FROM PAGE 17

To merge depth and location data from the well geodataframe to the bht_df dataframe we need a common column. achieve thisgeodataframe we'll format the APIbht_df numberdataframe in bht_df create Towill merge depth and location dataTo from the well to the wetowill needaa comnew column, “API_Label”, that is the same formatinas wells.toApplying a lambda function makes mon column. To achieve this we’ll format the API number bht_df create a new column, “API_Label”, that is thisformat easy and efficient. the same as wells. Applying a lambda function makes this easy and efficient. #Make API_Label bht_df['API_Label'] = bht_df.API.apply(lambda x: x[:2] + '-' + x[2:5] + '-' + x[5:10]) bht_df.merge(wells[['API_Label','Max_MD','Max_TVD','geometry']], how='left', #Merge on='API_Label') bht_df = bht_df.merge(wells[['API_Label','Max_MD','Max_TVD','geometry']], how='left', on='API_Label')

Plotting Data for QA PLOTTING DATA FOR QA

Pandas allows us to easily visualize our data in a scatter plot and colorize it with a property of Pandas allows us to easily visualize our data in a scatter plot and colorize it with a property of our data. This our data. This makes it easier to identify potentially erroneous data points. We will calculate the for QA makesPlotting it easier toData identify potentially erroneous data points. We will calculate the count of each unique value uscount of each unique value using value_counts then plot setting the color to that property. ing value_counts then plot setting the color to that property. Pandas allows us to easily visualize our data in a scatter plot and colorize it with a property of #Creating Countsit easier column our data. This makes to identify potentially erroneous data points. We will calculate the vcounts = bht_df.value.value_counts() count of each unique value using value_counts then plot setting the color to that property. values = vcounts.keys().tolist() counts = vcounts.tolist() counts_dict = dict(zip(values, counts)) #Creating Counts column bht_df['count'] = bht_df.value.apply(lambda x: counts_dict[x]) vcounts = bht_df.value.value_counts() values = vcounts.keys().tolist() #Plotting Values with TVD counts = vcounts.tolist() bht_df[bht_df.value < 400].plot.scatter(x='value', counts_dict = dict(zip(values, counts)) y='TVD', bht_df['count'] = bht_df.value.apply(lambda x: counts_dict[x]) c='count', colormap='viridis') #Plotting Values with TVD bht_df[bht_df.value < 400].plot.scatter(x='value', CONTINUED ON PAGE 19 y='TVD', c='count', colormap='viridis')

»

OUTCROP | December 2020

18

Vol. 69, No. 12 | www.rmag.org


LEAD STORY

» CONTINUED FROM PAGE 18

Note values are following not following the depth Whether defaults or "pencil-whipped", the do Note thethe values thatthat are not the depth trend.trend. Whether defaults or “pencil-whipped”, the values Note the values that are not following the depth trend. Whether defaults or "pencil-whipped", the values do correct not appear to be correct so We let'scan remove can thismeans easily the withopposite ~, which not appear to be so let’s remove them. do thisthem. easilyWe with ~, do which of, the values appear beisin correct so let's remove can doofthis easily meansdo thenot opposite of,to the boolean which checksthem. for theWe presence a value in awith list. ~, which isin boolean which checks for the presence of a value in a list.

means the opposite of, the isin boolean which checks for the presence of a value in a list. #Removing suspect values bad_values = [212,211.99986,200,150,70,32,0] #Removing suspect values bht_df = bht_df[~bht_df['value'].isin(bad_values)]

bad_values = [212,211.99986,200,150,70,32,0] bht_df = bht_df[~bht_df['value'].isin(bad_values)] #Plot data bht_df.plot.scatter(x='value',

#Plot data y='Max_TVD', c='count', bht_df.plot.scatter(x='value', colormap='viridis') y='Max_TVD', c='count', colormap='viridis')

Vol. 69, No. 12 | www.rmag.org

19

» CONTINUED ON PAGE 21

OUTCROP | December 2020


LEAD STORY

FIGURE 1: BHT data in the state of Colorado. Final product from the workflow within this article.

Reach: Further, higher. Advertise in The Outcrop The Rocky Mountain Association of Geologists combines the industry's most advanced technology, precise targeting and a quality network to deliver results for advertisers & publishers. For more information on how you can advertise in upcoming issues of The Outcrop, including basic information, how to submit an ad, size options, advertising rates, and the agreement, click on the link below.

clickheretoLearnmore.

OUTCROP | December 2020

20

Vol. 69, No. 12 | www.rmag.org


LEAD STORY

» CONTINUED FROM PAGE 19

Saving Data

SAVING DATA

Depending on how you'd like to use this data would dictate the file output type. Let's look at Savingon Data Depending how like to use this data would dictate the file output type. Let’s look at three of the three of the mostyou’d common. Depending on how you'd like to use this data would dictate the file output type. Let's look at most common. three of the most common. CSV CSV CSVs allow us a lot of flexibility with their small size and wide range of programs that can open CSV CSVs allow us a lotaofPetrel flexibility their small size and wide range ofdata programs that canout open them. If you’re them. Ifallow you're userwith youwith maytheir needsmall tab-delimited import soprograms let's save that CSVs us need a lot tab-delimited of flexibility size and wide range of that can open a Petrel user you may import data so let’s save out that format as well. format as well. them. If you're a Petrel user you may need tab-delimited import data so let's save out that format as well. #Save out to csv bht_df.to_csv("CO_BHT.csv", index=False) #Save out to csv bht_df.to_csv("CO_BHT.csv", #Save out to tab-delimited index=False) bht_df.to_csv("CO_BHT_tab.csv", index=False, sep="\t") #Save out to tab-delimited bht_df.to_csv("CO_BHT_tab.csv", index=False, sep="\t")

EXCEL

Excel Don’t think that while I may rip on Excel that it doesn’t have its place in data analysis. It is the standard softDon't think with that while on Excelmakes that itnice doesn't its place data tools analysis. It isBecause the ware for working data inI may most rip industries, plots,have and has some in decent built-in. of Excel standard software for working with data in most industries, makes nice plots, and has some that, Excel an excellent choice for rip sharing workthat withit other people. Don'tisthink that while I may on Excel doesn't have its place in data analysis. It is the CONTINUED ON PAGE 22 standard software for working with data in most industries, makes nice plots, and has some

»

Vol. 69, No. 12 | www.rmag.org

21

OUTCROP | December 2020


decent tools built-in. Because of that, Excel is an excellent choice for sharing work with other people. LEAD STORY

»

decent tools built-in. Because of that, Excel is an excellent choice for sharing work with other people. CONTINUED FROM PAGE 21 bht_df.to_excel("CO_BHT.xlsx", index=False) bht_df.to_excel("CO_BHT.xlsx", index=False)

GIS GIS The power of preserving & being able to reference data's spatial location cannot be understated. Geopandas allows convert data’s to a geodataframe and savebe easily. It also makes GIS The power of preserving & being ableustotoreference spatial location cannot understated. Geopandas managing CRS a breeze. allowsThe us topower convert a geodataframe and savetoeasily. It alsodata's makesspatial managing CRS acannot breeze.be of to preserving & being able reference location understated. Geopandas allows us to convert to a geodataframe and save easily. It also makes managing CRSGeoDataFrame a breeze. #Make the gdf = gpd.GeoDataFrame(bht_df, geometry='geometry',crs=wells.crs) #Make the GeoDataFrame #Save GeoDataFrame gdf = gpd.GeoDataFrame(bht_df, geometry='geometry',crs=wells.crs) gdf.to_file('bht_gdf.shp') #Save GeoDataFrame #Change CRS gdf.to_file('bht_gdf.shp') gdf.to_crs({'init':'EPSG:4326'},inplace=True) #Change CRS #Save Out Copy gdf.to_crs({'init':'EPSG:4326'},inplace=True) gdf.to_file('bht_gdf_WGS84.shp') #Save Out Copy

CONCLUSION gdf.to_file('bht_gdf_WGS84.shp')

In this workflow, we’ve shown how to use python to parse a large number of LAS files for information data out of the header. While not yet corrected BHT, you can already see regional trends. With that, you can identify areas Conclusion of interest and make corrections from wells we have identified with BHT data parsed from public LAS files. This workflow can be easily adapted for automating other time intensive tasks. Combined with top information (check Conclusion In this workflow, we've shown how use python to parse a large number of LAS files forresistivity, Sw,, out COGCCpy) we can select a formation of to interest, calculate properties such as Vshale, maximum information outanofarea. the header. While notgathered yet corrected can already or SHmax and mapdata it over Curve properties with aBHT, spatialyou selection can besee usedregional to normalize trends. With that, you can identify areas of interest and make corrections from wells we In this workflow, we've shown how to use python to parse a large number of LAS files for curves without washing out basin wide trends. Pay flag curves can be added to the log files not just have with curve validentified with BHT data parsed from public LAS Thisareas workflow can easily adapted forpotential information data outproviding of the header. While not yettofiles. corrected BHT,ofyou canbe already regional ues, but curve derivatives, a non-biased guide identify progradation andsee improved automating intensive tasks. Combined information (check COGCCpy) for TOC preservation. trends. Withother that, time you can identify areas of interestwith andtop make corrections fromout wells we havewe can select a formation ofparsed interest, calculate properties suchworkflow as Vshalelessons, ,can maximum resistivity, Sfor If you’d like this code a Jupyter notebook, the data produced, python other workflows w,, visit my identified with BHTindata from public LASitfiles. This beor easily adapted or SH and map it over an area. Curve properties gathered with a spatial selection can be GitHub.automating max other time intensive tasks. Combined with top information (check out COGCCpy) we used to normalize curves without washing basin wide trends. Pay flag curves can be added can select a formation of interest, calculateout properties such as Vshale , maximum resistivity, Sw,, to the logand filesmap not itjust with curve derivatives, providing a non-biased guide or SHmax over ancurve area.values, Curve but properties gathered with a spatial selection can be to The code contained withinofthis article iswithout covered an MIT license. identify progradation andby improved potential for TOC preservation. used to areas normalize curves washing out basin wide trends. Pay flag curves can be added

to the log files not just with curve values, but curve derivatives, providing a non-biased guide to identify areas of progradation and improved potential for TOC preservation.

OUTCROP | December 2020

22

Vol. 69, No. 12 | www.rmag.org


Experience Experience truly truly integrated integrated 3D interpretation 3D interpretation with truly integrated truly integrated with industry's most industry's most advanced advanced 3D with 3D interpretation interpretation with geoscience geoscience system industry's most industry's system most advanced advanced geoscience system geoscience system GVERSE Geomodeling 2017 GeoGraphix 2017 GVERSE Geomodeling 2017 GeoGraphix 2017

GVERSE GVERSE

R

TM

Anthony Ford Account Executive, LMKR GeoGraphix

R TM

Email: aford@lmkr.com P: +1 (303) 996-2153, C: +1 (720) 210-8889

Anthony Ford Account Executive, LMKR GeoGraphix

www.lmkr.com

Email: aford@lmkr.com P: +1 (303) 996-2153, C: +1 (720) 210-8889

www.lmkr.com

OUTCROP ADVERTISING RATES 1 Time

2 Times

6 Times

12 Times

Full page (7-1/2” x 9-1/4”)

$330

$620

$1,710

$3,240

2/3 page (4-7/8” x 9-1/4”)

$220

$400

$1,110

$2,100

1/2 page (7-1/2” x 4-5/8”)

$175

$330

$930

$1,740

1/3 page horizontal (4-7/8” x 4-7/8”)

$165

$250

$690

$1,200

1/3 page vertical (2-3/8” x 9-1/4”)

$165

$250

$690

$1,200

1/6 page (2-3/8” x 4-7/8”)

$75

$120

$330

$600

Professional Card (2-5/8” x 1-1/2”)

$20

$34

$84

$144

Vol. 69, No. 12 | www.rmag.org

23

OUTCROP | December 2020


ONLINE LUNCH TALK Speakers: Dr. Tyler Lyson & Dr. Ian Miller Dec. 9 | 12:00 pm - 1:00 pm

FREE! BERS MEM Y ONL

Rise of the Mammals: Exceptional Continental Record of Biotic Recovery after the Cretaceous– Paleogene Mass Extinction By Dr. Tyler Lyson & Dr. Ian Miller

DR. TYLER LYSON is curator of vertebrate paleontology at the Denver Museum of Nature & Science, where he is responsible for the fossil reptile collection. His research focuses on the early origin and evolution of reptiles, particularly turtles, as well as the driver(s) and tempo of the Cretaceous-Paleogene mass extinction and subsequent ecosystem recovery. He is working on projects in the Denver Basin in Colorado, Williston Basin in North Dakota and Montana, and Karoo Basin in South Africa. Lyson received his Ph.D. and M.A. in geology and paleontology from Yale University, and his B.A. from Swarthmore College. Lyson

OUTCROP | December 2020

record. An extraordinary new discovery east of

Sixty-six million years ago a 6-mile-wide asteroid slammed into Earth and caused the extinction of more than 75% of life on Earth, including the dinosaurs. This was the single worst day for life on Earth. How and when life rebounded in the aftermath of the extinction has been shrouded in mystery due to a poor fossil

Colorado Springs preserves a remarkably complete fossil record with entire fossil mammals,

turtles, crocodiles, and plants and paints a vivid picture of how life rebounded after Earth’s darkest hour.

was a postdoctoral researcher at the Smithsonian National Museum of Natural History before joining the Denver Museum in 2014. DR. IAN MILLER is Curator of Paleobotany and Director of Earth & Space Sciences at the Denver Museum of Nature & Science. In addition to running the Earth and Space Sciences Departments, he is in charge of the world-class collection of fossil plants at the Museum. His research focuses on fossil leaves and their applications for understanding ancient ecosystems and climate. He is presently working on projects in the Colorado 24

Rockies and along the Colorado Front Range, the Grand Staircase Escalante National Monument in Utah, the San Juan Basin in New Mexico, the Williston Basin in North Dakota, and the Morondova Basin in Madagascar. Beyond his work as a scientist, Ian has led Museum initiatives aimed at deepening people’s connection with the natural world, and unearthing major trends in new and existing audiences that will define the future of Museums. Ian received his PhD and MA in geology and paleobotany from Yale University, and his BA from The Colorado College. He has been with the museum since 2006.

Vol. 69, No. 12 | www.rmag.org


NEWS FROM THE RMAG FOUNDATION The Rocky Mountain Association of Geologists Foundation has been fortunate in being able to support a number of educational efforts during this difficult year: • $31,382 for graduate student research grants and undergraduate geology awards. 8 graduate students and one undergraduate from six western US schools received research grants. 8 undergraduate geology majors from Colorado colleges and universities received engraved rock hammers and citations.

• $5000 to Dinosaur Ridge to support the purchase of a new Learning Management System to preserve and educate the public about the paleontological treasures at Dino Ridge

• $4000 to two Earth Science Teachers of the Year and their earth science departments • ($1000 for each teacher and $1000 for the departments) • $2850 given to RMAG to provide for scholarships, course discounts, and software, including:

• $1500 ($150 for up to 10) individuals taking the OSHA “Hazwoper” training, an outgrowth of the Members in Transition initiative.

• $800 to cover the cost of recording and editing equipment, graphic design tools, and Webinar hosting software for Applied Analytics Training, an outgrowth of the Members in Transition initiative. • $350 to support the Ring Central Platform Upgrade for RMAG lunch talks and seminars • $200 for four student scholarships for the RMAG Geomechanics Course

• $600 for one-year RMAG memberships given to student award and scholarship winners and Teacher of the Year winners and applicants.

The RMAG Foundation is grateful to its donors who have helped to fund the diverse educational contributions this year. We are proud to support our geoscience community.

In other news, the Foundation joined the Colorado Nonprofit Association which provides funding and resource information to its members. As a result, the Foundation has hired a legal firm to review and update its critical policies and documents, eventually allowing it to participate in Colorado Gives Day. The Foundation is pleased to welcome two new Trustees, JoDana Swanson, and Robert (Bob) Tucker, who will join the Board in January.

Vol. 69, No. 12 | www.rmag.org

25

OUTCROP | December 2020


IN THE PIPELINE NOVEMBER 30 DECEMBER 2, 2020 LDC Gas Forums 16th annual Rockies & West Forum. www.ldcgasforums. com. Discount code: RWCOGA125. Westin Denver Downtown. DECEMBER 2, 2020 RMAG Virtual Trivia and Networking Night Holiday Edition. 4:30-5:30 PM.

DECEMBER 9, 2020

DECEMBER 11, 2020

RMAG Online Luncheon. Speakers: Tyler Lyson and Ian Miller. “Rise of the Mammals: Exceptional Continental Record of Biotic Recovery after the Cretaceous–Paleogene Mass Extinction.” Presented Online via RingCentral Meetings.

DIPS Talk. Speaker: Dr. Lesli J. Wood. “ The Cretaceous Valley Systems of the Guyana Margin - Feeding Giant Deepwater Fans.”

DECEMBER 10, 2020 COGA Prospective Member Information Session Webinar. 11:00 AM- 12:00 PM.

DECEMBER 15, 2020 DWLS Webinar. Speaker: Tom Bratton. “How to Use Dipole Sonic Velocities in Quantitative Petrophysics: Moving Beyond the Wyllie and Raymer-Hunt-Gard

WELCOME NEW RMAG MEMBERS!

William Abbott

lives in Grand Junction, Colorado.

Nicholas Bauer

is Supervisor, Operations Geology at Bonanza Creek Energy and lives in Castle Rock, Colorado.

David Bowen

is a Geologist at DW Bowen Exploration and lives in Bozeman, Montana.

Chanja Cassini

lives in Englewood, Colorado.

Hank Chambers

is an Executive Director at IHS Markit and lives in Missouri City, Texas.

OUTCROP | December 2020

Brandon Guttery

Lauren Neidhardt

works at Enverus and lives in Katy, Texas.

is a G&GIS Manager at Parsley Energy and lives in Austin, Texas.

is a Sales Representative/ Geologist at Raptor Consulting, Inc. and lives in Houston, Texas.

lives in Denver, Colorado.

Patrick Jordan

Chamran Kazemi is a student.

Jake Redish

Mitch Schneider

is a Geologist at FourPoint Energy and lives in Thornton, Colorado.

Edward Steadman

Eric Koenig

is VP of Research at EERC and lives in Grand Forks, North Dakota.

is a student at Colorado School of Mines and lives in Pueblo, Colorado.

is a Geologist at Earth Science Agency, LLC and lives in Denver, Colorado.

lives in Lakewood, Colorado.

Ian McBride

26

Bharathi Vallalar

Vol. 69, No. 12 | www.rmag.org


erica Columbia

• Great Plains and Mid-Contine Publish with… Publishwith… with… Publish

Why contribute Why • Reach a broa • Re • Quarterly pe Expanded geologic focus: • Qu • Permanent a • Entire greater Rocky Mountain area of North America • Quick •turn-a Pe • West Texas and New Mexico to northern British Columb • Every •subdis Qu

• Great Plains and Mid-Continent region

Expanded geologic focus: • Entire greater Rocky Mountain area of North America Expanded focus: • Westgeologic Texas and New Mexico to northern British Columbia • Great Plains and Mid-Continent • Entire greater Rocky Mountainregion area of North America

• West Texas and New Mexico to northern British Columbia • Great Plains and Mid-Continent region

• Ev

https://w

https://www.rmag.org/publicati

Why contribute? • Reach a broad industry and academic audience https://www.rmag.org • Quarterly peer-reviewed journal • Permanent archiving includes AAPG Datapages • Quick turn-around time • Every subdiscipline in the geosciences

Email: mgeditor@rmag.org rmag.org/publications/the-mountain-geologist Email: mgeditor@rmag.org

ttps://www.rmag.org/publications/the-mountain-geologist/


ADVERTISER INDEX

• Crestone Peak Resources ���������������������10

• Hollowtop Geological Services ������������10

• Daub & Associates ���������������������������������8

• LMKR ����������������������������������������������������23

• Donovan Brothers Inc. ����������������������������8

• Sunburst Consulting �����������������������������11

• GeoMark Research ���������������������������������9

• Tracerco ��������������������������������������������������9

• Great Western ��������������������������������������11

• Tracker Resource Development �������������6

CALENDAR – DECEMBER 2020 SUNDAY

MONDAY

TUESDAY

WEDNESDAY

1

2

THURSDAY

FRIDAY

SATURDAY

3

4

5

10

11

12

18

19

25

26

RMAG Virtual Trivia and Networking Night LDC Gas Forums

6

7

8

9 RMAG Online Luncheon.

13

14

15

16

COGA Prospective Member Information Session Webinar.

17

DIPS Talk.

DWLS Webinar.

20

21

22

23

24 CHRISTMAS EVE The RMAG office will be closed.

27

28

29

30

CHRISTMAS DAY The RMAG office will be closed.

31 NEW YEAR’S EVE The RMAG office will be closed.

OUTCROP | December 2020

28

Vol. 69, No. 12 | www.rmag.org


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.