In [1]:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import pickle
import geopandas as gpd
from datetime import date
from datetime import datetime
import pyodbc
import pandas.io.sql as psql

#Set viewing options in Jupyter
np.set_printoptions(threshold=np.inf)
pd.set_option('display.max_columns', 999)
pd.options.display.float_format = '{:.5f}'.format
In [2]:
#Pull the SQL database into Python and use the query they have already built for you from the download page.

con = pyodbc.connect(driver='{SQL Server Native Client 11.0}',  #<-Make sure your driver matches whatever you put in here
                      server='LAPTOP-XXXXXXXX\SQLEXPRESS', #<-Find this at the opening screen of MS SQL Server Mgmt. Studio
                      database='FracFocusRegistry', #<-If you made no changes on import of the FF db backup, this is it.
                      trusted_connection='yes') 
cursor = con.cursor()

sql = """SELECT * From FracFocusRegistry.dbo.RegistryUpload ru Join FracFocusRegistry.[dbo].[RegistryUploadIngredients] ri

on ru.pkey=ri.pKeyDisclosure 

Left JOIN FracFocusRegistry.dbo.RegistryUploadPurpose rp

on ri.pKeyPurpose = rp.pKey

Where (ri.pKeyPurpose is null or ru.pkey = ri.pKeyDisclosure);"""

#    you can specify states and counties by adding something like this example:  

#    StateNumber = (30) AND (CountyNumber = 25 OR CountyNumber = 15)

#    in this spot of the query: Where (ri.pKeyPurpose is null or ru.pkey = ri.pKeyDisclosure) --put code here-- ;""" 

FFNMdata = pd.read_sql(sql, con)
con.close()
FFNMdata.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 4359555 entries, 0 to 4359554
Data columns (total 41 columns):
pKey                       object
JobStartDate               datetime64[ns]
JobEndDate                 datetime64[ns]
APINumber                  object
StateNumber                object
CountyNumber               object
OperatorName               object
WellName                   object
Latitude                   float64
Longitude                  float64
Projection                 object
TVD                        float64
TotalBaseWaterVolume       float64
TotalBaseNonWaterVolume    float64
StateName                  object
CountyName                 object
FFVersion                  float64
FederalWell                bool
IndianWell                 bool
Source                     object
DTMOD                      object
pKey                       object
pKeyPurpose                object
IngredientName             object
CASNumber                  object
PercentHighAdditive        float64
PercentHFJob               float64
IngredientComment          object
IngredientMSDS             bool
MassIngredient             float64
ClaimantCompany            object
pKeyDisclosure             object
pKey                       object
pKeyRegistryUpload         object
TradeName                  object
Supplier                   object
Purpose                    object
SystemApproach             object
IsWater                    object
PercentHFJob               object
IngredientMSDS             object
dtypes: bool(3), datetime64[ns](2), float64(9), object(27)
memory usage: 1.2+ GB
In [3]:
#With the way the SQL query FracFocus has set up, you can run into an issue with duplicate column names. Fix it with this.

def df_columnrename(df):
    df_columns = df.columns
    new_columns = []
    for item in df_columns:
        counter = 0
        newitem = item
        while newitem in new_columns:
            counter += 1
            newitem = "{}_{}".format(item, counter)
        new_columns.append(newitem)
    df.columns = new_columns
    return df

#Apply the column rename function to the dataframe
FFNMdata = df_columnrename(FFNMdata)
In [4]:
#There are \n(newline) and \t(tab) tags on some entries. For uniformity, capitalize the ingredients (or everything), 
#get rid of nan's, and get rid of those tags with this cell.

FFNMdata['IngredientName'] = FFNMdata['IngredientName'].str.upper()
FFNMdata['IngredientName'] = FFNMdata['IngredientName'].replace('\n','', regex=True)
FFNMdata['IngredientName'] = FFNMdata['IngredientName'].replace('\t','', regex=True)

FFNMdata['PercentHFJob'] = FFNMdata['PercentHFJob'].fillna(0.0)
In [5]:
#Number of wells in database

APIvals = np.unique(FFNMdata['APINumber'])
print("Database Wellcount:", len(APIvals))
Database Wellcount: 110348
In [6]:
#PercentHFJob will give you frac compositions, and there are many entry errors throughout the database in this column.
#We will check for sums equaling, or close to, 1.0, 100.0, and an arbitrary amount I thought may be present below.

Sumcheck = FFNMdata.groupby('APINumber')['PercentHFJob'].sum()
Sumcheck = pd.DataFrame(Sumcheck)
Sumcheck.reset_index(inplace=True)
Sumcheck.head(5)
Out[6]:
APINumber PercentHFJob
0 01007203590000 100.14575
1 01007203600000 100.15728
2 01007203610000 100.09987
3 01007203620000 100.09691
4 01035202330000 100.00000
In [7]:
print("Number of wells with a 1% tolerance")
DecimalSumdf = Sumcheck[(Sumcheck['PercentHFJob']>=.99) & (Sumcheck['PercentHFJob']<1.01)]
WholeSumdf = Sumcheck[(Sumcheck['PercentHFJob']>=99.0) & (Sumcheck['PercentHFJob']<=101.0)]
TooMuchSumdf = Sumcheck[(Sumcheck['PercentHFJob']>=110)]
print("Number of decimal# compositions:", len(DecimalSumdf))
print("Number of whole# compositions:", len(WholeSumdf))
print("Number of way too much compositions:", len(TooMuchSumdf))
print("Total count:", len(DecimalSumdf) + len(WholeSumdf) + len(TooMuchSumdf))
print("Total good for use:", len(DecimalSumdf) + len(WholeSumdf))
Number of wells with a 1% tolerance
Number of decimal# compositions: 1069
Number of whole# compositions: 89656
Number of way too much compositions: 8153
Total count: 98878
Total good for use: 90725
In [8]:
print("Number of wells with a 5% tolerance")
DecimalSumdf = Sumcheck[(Sumcheck['PercentHFJob']>=.90) & (Sumcheck['PercentHFJob']<1.1)]
WholeSumdf = Sumcheck[(Sumcheck['PercentHFJob']>=90.0) & (Sumcheck['PercentHFJob']<=110.0)]
TooMuchSumdf = Sumcheck[(Sumcheck['PercentHFJob']>110.0)]
print("Number of decimal# compositions:", len(DecimalSumdf))
print("Number of whole# compositions:", len(WholeSumdf))
print("Number of way too much compositions:", len(TooMuchSumdf))
print("Total count:", len(DecimalSumdf) + len(WholeSumdf) + len(TooMuchSumdf))
print("Total good for use:", len(DecimalSumdf) + len(WholeSumdf))
Number of wells with a 5% tolerance
Number of decimal# compositions: 1323
Number of whole# compositions: 99722
Number of way too much compositions: 8152
Total count: 109197
Total good for use: 101045
In [9]:
print("Number of wells that are exactly 1, 100, or 110 (the 110 is just a guess)")
DecimalSumdf = Sumcheck[(Sumcheck['PercentHFJob']==1.0)]
WholeSumdf = Sumcheck[(Sumcheck['PercentHFJob']== 100.0)]
TooMuchSumdf = Sumcheck[(Sumcheck['PercentHFJob']== 110.0)]
print("Number of decimal# compositions:", len(DecimalSumdf))
print("Number of whole# compositions:", len(WholeSumdf))
print("Number of way too much compositions:", len(TooMuchSumdf))
print("Total count:", len(DecimalSumdf) + len(WholeSumdf) + len(TooMuchSumdf))
print("Total good for use:", len(DecimalSumdf) + len(WholeSumdf))
Number of wells that are exactly 1, 100, or 110 (the 110 is just a guess)
Number of decimal# compositions: 3
Number of whole# compositions: 2017
Number of way too much compositions: 1
Total count: 2021
Total good for use: 2020
In [10]:
#In the interest of sticking to realistic numbers, let's use the 99 - 101 range in terms of a sum cut off.
#Granted, there are notes telling you that sums may add to more than 100%, I would rather just stick
#with a tighter tolerance for this post.

#You can increase/decrease your usable well count by doing more cleaning and inspection yourself.

DecimalSumdf = Sumcheck[(Sumcheck['PercentHFJob']>=.99) & (Sumcheck['PercentHFJob']<1.01)]
WholeSumdf = Sumcheck[(Sumcheck['PercentHFJob']>=99.0) & (Sumcheck['PercentHFJob']<=101.0)]
In [11]:
#Convert decimal percent wells to whole number percentages before combining the filtered data sets
DecimalConvert = FFNMdata[FFNMdata["APINumber"].isin(DecimalSumdf['APINumber'])]

DecimalConvert['PercentHFJob_fix'] = [(DecimalConvert['PercentHFJob'].iloc[x])*100.0 if 
                                      (DecimalConvert['PercentHFJob'].iloc[x] <= 1.0) 
                                      else DecimalConvert['PercentHFJob'].iloc[x] for x in range(0,len(DecimalConvert))]

DecimalConvert = DecimalConvert.drop(['PercentHFJob', 'PercentHFJob_1'], axis=1)
DecimalConvert = DecimalConvert.rename(columns={"PercentHFJob_fix":'PercentHFJob'})
C:\Users\danal\Anaconda3\lib\site-packages\ipykernel_launcher.py:6: SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead

See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
  
In [12]:
WholeValuedf = FFNMdata[FFNMdata["APINumber"].isin(WholeSumdf['APINumber'])]
WholeValuedf = WholeValuedf.drop(['PercentHFJob_1'], axis=1)
In [13]:
#Put the converted decimal to whole number and original whole number dataframes back together

TotalUsedf = pd.concat([DecimalConvert, WholeValuedf], axis = 0)
TotalUsedf = TotalUsedf.sort_values(by = "APINumber")
APIvals = np.unique(TotalUsedf['APINumber'])
print("Well count for db filter:", len(APIvals), "wells")
C:\Users\danal\Anaconda3\lib\site-packages\ipykernel_launcher.py:3: FutureWarning: Sorting because non-concatenation axis is not aligned. A future version
of pandas will change to not sort by default.

To accept the future behavior, pass 'sort=False'.

To retain the current behavior and silence the warning, pass 'sort=True'.

  This is separate from the ipykernel package so we can avoid doing imports until
Well count for db filter: 90725 wells
In [14]:
#Create a dataframe for water volumes that has only the columns you need

FFwatervol = TotalUsedf[["APINumber", "WellName", "TotalBaseWaterVolume", "OperatorName", "StateName", "StateNumber", 
                         "CountyName", "CountyNumber", "JobEndDate", "Latitude", "Longitude", "Projection"]]
FFwatervol = FFwatervol.sort_values(by = ["APINumber", "TotalBaseWaterVolume"], ascending=True)
FFwatervol = FFwatervol.drop_duplicates(subset='APINumber', keep='last', inplace=False)
FFwatervol = FFwatervol.reset_index(drop=True)
In [15]:
#Create a dataframe for propant amounts to then apply the filter list below

FFPropvol = TotalUsedf[["APINumber", "IngredientName", "PercentHFJob"]]
In [16]:
#Polylactic acid is used as a diverter, but it looked a little suspect when going through the database, so I included it
#If it doesn't matter, the numbers will be inconsequential in considering the mass of the proppant.

#You can also just do a text search to break these out, but I already do various lists for looking at other aspects of
#what is in the frac mixtures, so a cut and paste is much easier - for me.

Proppantlist = ["  CRYSTALLINE SILICA, QUARTZ    ", 
"  CRYSTALLINE SILICA: QUARTZ (SIO2)",
" CRYSTALLINE SILICA  QUARTZ ", 
" CRYSTALLINE SILICA (QUARTS) ", 
" CRYSTALLINE SILICA QUARTZ", 
" CRYSTALLINE SILICA: QUARTZ (SIO2)", 
" CRYSTALLINE SILICA: QUARTZ (SIO2) CRYSTALLINE SILICA: QUARTZ (SIO2)",
" INTERMEDIATE & HIGH STRENGTH PROPPANTS (ALL SIZES) ", 
" ORGANICALLY TREATED CLAY", 
" SILICA, CRYSTALLINE - QUARTZ ", 
" SILICA, CRYSTALLINE QUARTZ", 
" ULEXITE", 
"CRYSTALLINE SILICA (QUARTZ)", '"CRYSTALLINE SILICA QUARTZ"',
'"CRYSTALLINE SILICA: QUARTZ (SIO2) CRYSTALLINE SILICA: QUARTZ (SIO2)"', 
'"CRYSTALLINE SILICA: QUARTZ (SIO2)"', 
'"CRYSTALLINE SILLICA: QUARTZCRYSTALLINE SILLICA: QUARTZ"', 
'"SILICA, CRYSTALLINE- QUARTS QUARTZ QUARTZ"', 
'"ULEXITE"', 
'"ULEXITEULEXITEULEXITE"',
"10 MESH STANDARD POWDER", 
"12/20 SAND", 
"12-20 MESH BRADY SAND_OKLAHOMA", 
"12-20 MESH OTTAWA SD., TX", 
"12-40 MESH OTTAWA SD.,TX", 
"14/40 FRACBLACK HT", 
"16/20 EL PROP", 
"16/30 SAND", 
"16-30 MESH BRADY SAND_OKLAHOMA", 
"20/40 ECONOPROP", 
"20/40 MG LITE", 
"20/40 OTTAWA SAND", 
"20/40 PC", 
"20/40 PRC", 
"20/40 SINTERLITE", 
"20/40 SUPER LC", 
"20/40 TG", 
"20/40 WHITE", 
"20-40 MESH OTTAWA SAND_TX", 
"20-40 MESH OTTAWA SD TX", 
"30/50 PPC", 
"30/50 SAND", 
"30/50 SUPER LC", 
"30/50 TEMPERED HS", 
"30/50 TG", 
"30/50 WHITE", 
"33-40", 
"35# SIROCCO", 
"40/70 NORTHERN WHITE SAND", 
"40/70 PPC", 
"40/70 PREFERRED SAND", 
"40/70 TEMPERED HS", 
"40/70 WHITE", 
"40/70 WHITE SAND", 
"40/80 HYDROPROP", 
"AA-400 (ALUMINUM OXIDE)", 
"ALUMINATE (AL(OH)63-) (OC-6-11)- MAGNESIUM CARBONATE HYDROXIDE (2:6:1:4)", 
"ALUMINION OXIDE", 
"ALUMINIUM OXIDE", 
"ALUMINIUM SILICATE", 
"ALUMINUIUM OXIDE", 
"ALUMINUM NEEDLES", 
"ALUMINUM OXIDE", 
"ALUMINUM OXIDE ", 
"ALUMINUM OXIDE / CORUNDUM", 
"ALUMINUM OXIDE CORUNDUM", 
"ALUMINUM OXIDE CORUNDUM 35-65", 
"ALUMINUM OXIDE, CORUNDUM", 
"ALUMINUM OXIDE/CORUNDUM", 
"ALUMINUM OXIDE/CURUNDUM", 
"ALUMINUM SILCATE/MULITE", 
"ALUMINUM SILICATE", 
"ALUMINUM SILICATE (MULLITE)", 
"ALUMINUM SILICATE / MULLITE", 
"ALUMINUM SILICATE MULITE", 
"ALUMINUM SILICATE MULLITE", 
"ALUMINUM SILICATE MULLITE 35-65", 
"ALUMINUM SILICATE, MULITE", 
"ALUMINUM SILICATE/ MULLITE", 
"ALUMINUM SILICATE/MULITE", 
"ALUMINUM SILICATE/MULLITE", 
"ALUMIUM OXIDE", 
"AMORPHOUS SILICA", 
"AMORPHOUS SILICA (GLASS)", 
"AMORPHOUS SILICA (LIQUIFIED)", 
"AMORPHOUS SILICA/ETHYLENE GLYCOL", 
"AMORPHOUS SILISCA", 
"AMORPHUS SILICA", 
"BAUXITE", 
"BAUXITE (AL2O3.XH2O), CALCINED", 
"BAUXITE (AL2O3.XH2O),CALCINED", 
"BAUXITE CALCINED", 
"BAUXITE, CALCINED", 
"CALCINED BAUXITE", 
"CALCINED KAOLIN (MULLITE)",
"CARBAMIDE", 
"CERAMIC", 
"CERAMIC BEADS", 
"CERAMIC MATERIAL & WARES CHEMICALS ", 
"CERAMIC MATERIAL & WARES, CHEMICALS", 
"CERAMIC MATERIAL & WARES, CHEMICALS ", 
"CERAMIC MATERIAL AND WARES CHEMCIAL", 
"CERAMIC MATERIAL AND WARES CHEMICAL", 
"CERAMIC MATERIAL AND WARES, CHEMCIAL", 
"CERAMIC MATERIAL AND WARES, CHEMICAL", 
"CERAMIC MATERIALS", 
"CERAMIC MATERIALS AND WARES", 
"CERAMIC MATERIALS AND WARES CHEMCICALS", 
"CERAMIC MATERIALS AND WARES CHEMICAL", 
"CERAMIC MATERIALS AND WARES CHEMICALS", 
"CERAMIC MATERIALS AND WARES CHEMICALS", 
"CERAMIC MATERIALS AND WARES, CHEMCICALS", 
"CERAMIC MATERIALS AND WARES, CHEMICAL", 
"CERAMIC MATERIALS AND WARES, CHEMICALS", 
"CERAMIC MATERIAS AND WARES CHEMICALS", 
"CERAMIC MATERIAS AND WARES, CHEMICALS", 
"CERAMIC MATERICLAS AND WARES CHEMICALS", 
"CERAMIC MATERICLAS AND WARES, CHEMICALS", 
"CERAMIC MATIERIALS AND WARES ", 
"CERAMIC MICROSPHERE", 
"CERAMIC MICROSPHERES", 
"CERAMIC MICROSPHERES/GLUTARALDEHYDE", 
"CERAMIC MIX", 
"CERAMIC PROPANT", 
"CERAMIC PROPPANT", 
"CERAMIC PROPPANT PROPRIETARY", 
"CERAMICM MATERIALS AND WARES CHEMICALS", 
"CERAMICM MATERIALS AND WARES, CHEMICALS", 
"CERAMICS MATERIALS AND WARES, CHEMICALS", 
"CHRISTOBALITE", 
"CHROMITE SAND", 
"CHRYSTALLINE SILICA", 
"CHRYSTALLINE SILICA, QUARTZ", 
"CHRYSTALLINE SILICA: CRISTOBALITE", 
"CHRYSTALLINE SILICA: CRISTOBALITE ", 
"CHRYSTALLINE SILICA: QUARTZ", 
"CHRYSTALLINE SILICA:CRISTOBALITE ", 
"CORRUNDUM", 
"CORUNDIUM", 
"CORUNDUM", 
"CORUNDUM (AI203)", 
"CORUNDUM (ALUMINUM OXIDE)", 
"CRHYSTALLINE SILICA, QUARTZ", 
"CRISTALLINE SILICA", 
"CRISTALLINE SILICA QUARTZ", 
"CRISTALLINE SILICA, QUARTZ", 
"CRISTALLINE SILLICA: QUARTZ (SIO2)", 
"CRISTOBALITE", 
"CRSTALLINE SILICA (QUARTZ)", 
"CRSTALLINE SILICA, QUARTZ", 
"CRYS4808-60-7TALLINE SIO2", 
"CRYSTAILLINE SILICA: QUARTZ", 
"CRYSTALILINE SILICA: QUARTZ (SIO2)", 
"CRYSTALINE", 
"CRYSTALINE  SILICA, SIO2", 
"CRYSTALINE SAILICA", 
"CRYSTALINE SILCA, SIO2", 
"CRYSTALINE SILICA", 
"CRYSTALINE SILICA ", 
"CRYSTALINE SILICA - QUARTZ", 
"CRYSTALINE SILICA (QUARTZ)", 
"CRYSTALINE SILICA (SIO2)", 
"CRYSTALINE SILICA 100 MESH", 
"CRYSTALINE SILICA 40/70", 
"CRYSTALINE SILICA IN THE FORM OF QUARTZ", 
"CRYSTALINE SILICA QUARTZ", 
"CRYSTALINE SILICA QUARTZ", 
"CRYSTALINE SILICA RESPIRABLE POWDER", 
"CRYSTALINE SILICA SIO2", 
"CRYSTALINE SILICA, CRISTOBALITE", 
"CRYSTALINE SILICA, QUARTZ", 
"CRYSTALINE SILICA, QUARTZ ", 
"CRYSTALINE SILICA, QUARTZ, PHENOL-FORMALDEHYDE NOVOLAK RESIN 9003-35-4, HEXAMEHTYLENETETRAMINE 100-97-0", 
"CRYSTALINE SILICA, QUARTZ, PHENOL-FORMALDEHYDE NOVOLAK RESIN9003-35-4, HEXAMETHYLENETETRAMINE 100-97-0", 
"CRYSTALINE SILICA, RESPIRABLE POWDER", 
"CRYSTALINE SILICA, SIO2", 
"CRYSTALINE SILICA: CRISTOBALITE", 
"CRYSTALINE SILICA: QUARTZ", 
"CRYSTALINE SILICA: QUARTZ (SIO2)", 
"CRYSTALINE SILLICA", 
"CRYSTALINE SILLICA IN FORM OF QUARTZ", 
"CRYSTALIONE SILICA, QUARTZ", 
"CRYSTALLIE SILICA QUARTZ", 
"CRYSTALLIE SILICA, QUARTZ", 
"CRYSTALLIINE SILICA", 
"CRYSTALLIINE SILICA: QUARTZ", 
"CRYSTALLILNE SILICA", 
"CRYSTALLILNE SILICA: QUARTZ (SIO2)", 
"CRYSTALLIME SILICA", 
"CRYSTALLIN SILICA (QUARTZ)", 
"CRYSTALLIN SILICA QUARTZ", 
"CRYSTALLIN SILICA, CRISTOBALITE", 
"CRYSTALLIN SILICA, QUARTZ", 
"CRYSTALLIN SILICA: QUARTZ", 
"CRYSTALLINE", 
"CRYSTALLINE ", 
"CRYSTALLINE CRISTOBALITE", 
"CRYSTALLINE POWDER", 
"CRYSTALLINE POWDWER", 
"CRYSTALLINE QUARTZ", 
"CRYSTALLINE QUARTZ (SILICA)", 
"CRYSTALLINE QUARTZ SILICA", 
"CRYSTALLINE QUARTZ, SILICA", 
"CRYSTALLINE SALT", 
"CRYSTALLINE SI02", 
"CRYSTALLINE SIICA", 
"CRYSTALLINE SIILICA: QUARTZ (SIO2)", 
"CRYSTALLINE SILCA", 
"CRYSTALLINE SILCA (QUARTZ)", 
"CRYSTALLINE SILCA: QUARTZ", 
"CRYSTALLINE SILIC, CRISTOBALITE", 
"CRYSTALLINE SILICA", 
"CRYSTALLINE SILICA ", 
"CRYSTALLINE SILICA  (QUARTZ)", 
"CRYSTALLINE SILICA  QUARTZ", 
"CRYSTALLINE SILICA - QUARTZ", 
"CRYSTALLINE SILICA (<0.02%)", 
"CRYSTALLINE SILICA (CRISOBALITE)", 
"CRYSTALLINE SILICA (CRISTOBALITE)", 
"CRYSTALLINE SILICA (CRISTOBALOITE)", 
"CRYSTALLINE SILICA (CRITOBALITE", 
"CRYSTALLINE SILICA (IMPURITY)", 
"CRYSTALLINE SILICA (IN FORM OF QUARTZ)", 
"CRYSTALLINE SILICA (IN THE FORM OF QUARTZ)", 
"CRYSTALLINE SILICA (QUARTS)", 
"CRYSTALLINE SILICA (QUARTX)", 
"CRYSTALLINE SILICA (QUARTZ", 
"CRYSTALLINE SILICA (QUARTZ SAND SILICON DIOXIDE)", 
"CRYSTALLINE SILICA (QUARTZ SAND, SILICON DIOXIDE)", 
"CRYSTALLINE SILICA (QUARTZ)", 
"CRYSTALLINE SILICA (QUARTZ) ", 
"CRYSTALLINE SILICA (QUARTZ) (SIO2)", 
"CRYSTALLINE SILICA (QUARTZ) SIO2", 
"CRYSTALLINE SILICA (SILICON DIOXIDE)", 
"CRYSTALLINE SILICA (SIO2)", 
"CRYSTALLINE SILICA : QUARTZ (SI02)", 
"CRYSTALLINE SILICA : QUARTZ (SIC02)", 
"CRYSTALLINE SILICA : QUARTZ (SIO2)", 
"CRYSTALLINE SILICA ALKYL", 
"CRYSTALLINE SILICA CRISTOBALITE", 
"CRYSTALLINE SILICA CRISTOBALLITE", 
"CRYSTALLINE SILICA IN FORM OF QUARTZ", 
"CRYSTALLINE SILICA IN THE FORM OF QUARTZ", 
"CRYSTALLINE SILICA IN THE FORM OF QUARTZ ", 
"CRYSTALLINE SILICA IN THE FORM OF QUARZ", 
"CRYSTALLINE SILICA IN THE FORM OR QUARTZ", 
"CRYSTALLINE SILICA IN THE FORMOF QUARTZ", 
"CRYSTALLINE SILICA QUART", 
"CRYSTALLINE SILICA QUARTS", 
"CRYSTALLINE SILICA QUARTZ", 
"CRYSTALLINE SILICA QUARTZ", 
"CRYSTALLINE SILICA QUARTZ", 
"CRYSTALLINE SILICA QUARTZ", 
"CRYSTALLINE SILICA QUARTZ ", 
"CRYSTALLINE SILICA QUARTZ ", 
"CRYSTALLINE SILICA QUARTZ (SI02)", 
"CRYSTALLINE SILICA QUARTZ (SIO2)", 
"CRYSTALLINE SILICA QUARTZ (SIO2)", 
"CRYSTALLINE SILICA QUARTZ (SIO2) ", 
"CRYSTALLINE SILICA QUARTZ(SIO2)", 
"CRYSTALLINE SILICA QUARTZ: SIO2", 
"CRYSTALLINE SILICA QUARZ ", 
"CRYSTALLINE SILICA QUATRTS", 
"CRYSTALLINE SILICA QUATZ", 
"CRYSTALLINE SILICA RESPIRABLE POWDER", 
"CRYSTALLINE SILICA SIO2", 
"CRYSTALLINE SILICA        ",
"CRYSTALLINE SILICA(QUARTZ)", 
"CRYSTALLINE SILICA, (QUARTZ)", 
"CRYSTALLINE SILICA, CRISTOBALITE", 
"CRYSTALLINE SILICA, QARTZ", 
"CRYSTALLINE SILICA, QUART", 
"CRYSTALLINE SILICA, QUARTAZ", 
"CRYSTALLINE SILICA, QUARTS", 
"CRYSTALLINE SILICA, QUARTZ", 
"CRYSTALLINE SILICA, QUARTZ ", 
"CRYSTALLINE SILICA, QUARTZ (SI02)", 
"CRYSTALLINE SILICA, QUARTZ (SIO2)", 
"CRYSTALLINE SILICA, QUARTZ",
"CRYSTALLINE SILICA, QUARTZ  ", 
"CRYSTALLINE SILICA, QUATRTS", 
"CRYSTALLINE SILICA, QUATZ", 
"CRYSTALLINE SILICA, QWUARTZ", 
"CRYSTALLINE SILICA, RESPIRABLE POWDER", 
"CRYSTALLINE SILICA, SIO2", 
"CRYSTALLINE SILICA,QUARTZ", 
"CRYSTALLINE SILICA,QURTZ", 
"CRYSTALLINE SILICA. QUARTZ", 
"CRYSTALLINE SILICA:  CRISTOBALITE", 
"CRYSTALLINE SILICA:  QUARTZ (SIO2)", 
"CRYSTALLINE SILICA:  QUARTZ(SIO2)", 
"CRYSTALLINE SILICA: (SIO2)", 
"CRYSTALLINE SILICA: CHRISTOBALITE", 
"CRYSTALLINE SILICA: CRISTOBALITE", 
"CRYSTALLINE SILICA: CRISTOLBALITE", 
"CRYSTALLINE SILICA: QUART (SIO2)", 
"CRYSTALLINE SILICA: QUARTS", 
"CRYSTALLINE SILICA: QUARTS (SI02)", 
"CRYSTALLINE SILICA: QUARTS (SIO2)", 
"CRYSTALLINE SILICA: QUARTZ", 
"CRYSTALLINE SILICA: QUARTZ ", 
"CRYSTALLINE SILICA: QUARTZ (SI02)", 
"CRYSTALLINE SILICA: QUARTZ (SIO2", 
"CRYSTALLINE SILICA: QUARTZ (SIO2)", 
"CRYSTALLINE SILICA: QUARTZ (SIO2)", 
"CRYSTALLINE SILICA: QUARTZ (SIO2)", 
"CRYSTALLINE SILICA: QUARTZ (SIO2) ", 
"CRYSTALLINE SILICA: QUARTZ (SIO2)",
"CRYSTALLINE SILICA: QUARTZ(SIO2)", 
"CRYSTALLINE SILICA: QUATRZ (SIO2)", 
"CRYSTALLINE SILICA:CRISTOBALITE",
"CRYSTALLINE SILICA:QUARTZ", 
"CRYSTALLINE SILICA:QUARTZ (SIO2)", 
"CRYSTALLINE SILICA; QUARTZ", 
"CRYSTALLINE SILICA;QUARTZ SAND,SILICON DIOXIDE", 
"CRYSTALLINE SILICAM, QUARTZ", 
"CRYSTALLINE SILICAM, QUARTZ ", 
"CRYSTALLINE SILICAQUARTZ", 
"CRYSTALLINE SILICIA QUARTZ", 
"CRYSTALLINE SILICIA, QUARTS", 
"CRYSTALLINE SILICIA, SIO2", 
"CRYSTALLINE SILICIA: QUARTZ (SIO2)", 
"CRYSTALLINE SILICON DIOXIDE", 
"CRYSTALLINE SILLICA", 
"CRYSTALLINE SILLICA ", 
"CRYSTALLINE SILLICA (QUARTZ)", 
"CRYSTALLINE SILLICA (SILICA SAND)", 
"CRYSTALLINE SILLICA IN FORM OF QUARTZ", 
"CRYSTALLINE SILLICA QUARTZ (SIO2)", 
"CRYSTALLINE SILLICA, QUARTZ", 
"CRYSTALLINE SILLICA, QUARTZ (SIO2)", 
"CRYSTALLINE SILLICA: QUARTZ", 
"CRYSTALLINE SILLICA: QUARTZ (SIO2)", 
"CRYSTALLINE SILLICA: QUARTZCRYSTALLINE SILLICA: QUARTZ",
"CRYSTALLINE SIO2", 
"CRYSTALLINE SITICA", 
"CRYSTALLINE SLICA (QUARTZ)", 
"CRYSTALLINE SLICA QUARTZ", 
"CRYSTALLINE SLICA, QUARTZ", 
"CRYSTALLINE SLILCA", 
"CRYSTALLINE SLILICA (QUARTZ)", 
"CRYSTALLINE, SILICA, QUARTZ", 
"CRYSTALLING SILICA, QUARTZ", 
"CRYSTALLLINE SILICA (QUARTZ)", 
"CRYSTALLLINE SILICA QUARTZ", 
"CRYSTALLLINE SILICA QUARTZ (SIO2)", 
"CRYSTALLLINE SILICA, QUARTZ", 
"CRYSTALLLINE SILICA, QUARTZ (SIO2)", 
"CRYSTIALLINE SILICA", 
"CRYSTIALLINE SILICA: CRISTOBALITE", 
"CRYSTIALLINIE SILICA, QUARTZ", 
"CRYSTILLINE SILICA, QUARTZ", 
"CRYSTLLINE SILICA, QUARTZ", 
"CRYTALINE SILICA, CRISTOBALITE", 
"CRYTALLIN SILICA QURATZ", 
"CRYTALLIN SILICA, QURATZ", 
"CRYTALLINE SILICA", 
"CRYTALLINE SILICA (QUARTZ)", 
"CRYTALLINE SILICA, QUARTZ", 
"CRYTALLINE SILICA, SIO2", 
"CS-210PB", 
"CTYSTALLINE SILICA", 
"CTYSTALLINE SILICA", 
"CURED  RESIN", 
"CURED ACRLIC RESIN", 
"CURED ACRLYIC RESIN", 
"CURED ACRYLIC  RESIN", 
"CURED ACRYLIC RESIC", 
"CURED ACRYLIC RESIN", 
"CURED ACRYLIC RESIN ", 
"CURED ACRYLIC RESIN MIXTURE", 
"CURED ACRYLIC RESINQ ", 
"CURED ACRYLIC SAND", 
"CURED ACYLIC RESIN", 
"CURED PHENOLIC RESIN", 
"CURED PHNOLIC RESIN", 
"CURED RESIN", 
"CURED RESIN ", 
"CURED SCRYLIC RESIN", 
"CURED SILICONE RUBBER-POLYDIMETHYLSILOXANE", 
"CURED URETHANE RESIN", 
"CURRED ACRYLIC RESIN", 
"CYRSTALINE SILCA", 
"CYRSTALINE SILICA", 
"CYRSTALLIN SILICA: QUARTZ (SIO2)", 
"CYRSTALLINE SILICA", 
"CYRSTALLINE SILICA QUARTZ", 
"CYRSTALLINE SILICA QUARTZ (SIO2)", 
"CYRSTALLINE SILICA, QUARTZ", 
"CYRSTALLINE SILICA, QUARTZ (SIO2)", 
"CYRSTALLINE SILICA: QUARTZ (SIO2)", 
"CYRTALLINE SILICA QUARTZ", 
"CYSTALLINE SALICA, SIO2", 
"CYSTALLINE SILICA", 
"CYSTALLINE SILICA (QUARTZ)", 
"CYSTALLINE SILICA QUARTZ", 
"CYSTALLINE SILICA, (QUARTZ)", 
"CYSTALLINE SILICA, QUARTZ", 
"CYSTALLINE SILICA: QUARTZ", 
"CYSTALLINE SILICA; QUARTZ", 
"FRAC SAND", 
"FUMED SILICA", 
"GLASS FIBERS", 
"GLASS OXIDE", 
"GLASS OXIDE; GLASS", 
"GLASS, OXIDE", 
"GLASSY CALCIUM MAGNESIUM PHOSPHATE", 
"GLASSY CALSIUM MAGNESIUM PHOSPHATE", 
"ILLITE", 
"ILMENITE", 
"IRON OXIDE", 
"IRON OXIDE ", 
"IRON OXIDE (COLORANT)", 
"IRON OXIDE (FUME)", 
"LIMESTONE", 
"MICA", 
"MODIFIED BENTONITE", 
"MODIFIED BENTONITE (ORGANOPHILLIC CLAY)", 
"MODIFIED BENTONITE CLAY", 
"MUILLITE", 
"MULITE", 
"MULITIE", 
"MULLITE", 
"MULLITE ", 
"MULLITE (ALUMINASILICATE)", 
"MULLITE (ALUMINUM SILICATE)", 
"MULLITE (AMMONIUM SILICATE)", 
"NON- CRYSTALLINE SILICA (IMPURITY)", 
"NON-CRYSTALLINE SILICA (IMPURITY)", 
"NON-CRYSTALLINE SUBSTANCE", 
"OSYALKYLATED RESINS", 
"OTHER INORGANIC MAGNESIUM COMPOUND", 
"OTHER INORGANIC MAGNESIUM CPD", 
"OXIDE POLYMER ", 
"OXIDES OF SILICA, IRON, ALUMINUM", 
"P/F NOVOLAK RESIN", 
"P/F RESIN", 
"POLACTIDE  RESIN", 
"POLACTIDE RESIN", 
"POLIYLACTIDE RESIN", 
"POLLACTIDE RESIN", 
"POLLYLACTIDE RESIN", 
"POLULACTIDE RESIN", 
"POLYACETIDE RESIN", 
"POLYACITE RESIN", 
"POLYACITIDE RESIN", 
"POLYACITIDE RESIN ", 
"POLYACTDE RESIN", 
"POLYACTIDE", 
"POLYACTIDE RESIGN", 
"POLYACTIDE RESIN", 
"POLYACTIDE RESIN ", 
"POLYACTIDE RESUN", 
"POLYACTITE RESIN", 
"POLYACTITIDE RESIN", 
"POLYALACTIDE RESIN", 
"POLYCITE RESIN", 
"POLYERETHANE RESIN", 
"POLYEURETHANE RESIN", 
"POLYLACIDITE RESIN", 
"POLYLACITE RESIN", 
"POLYLACITIDE RESIN", 
"POLYLACTACTIDE RESIN", 
"POLYLACTIC RESIN", 
"POLYLACTICDE RESIN", 
"POLYLACTICIDE RESIN", 
"POLYLACTID RESIN", 
"POLYLACTIDE", 
"POLYLACTIDE  RESIN", 
"POLYLACTIDE RESEN", 
"POLYLACTIDE RESID", 
"POLYLACTIDE RESIGN", 
"POLYLACTIDE RESIN", 
"POLYLACTIDE RESIN ", 
"POLYLACTIDEE RESIN", 
"POLYLACTITE RESIN", 
"POLYLACTIVE RESIN", 
"POLYLASTIDE RESIN", 
"PREMIUM WHITE 40/70 PROPPANT", 
"PROPRIETARY SILICA", 
"PROPRIETARY SILICA ORGANIC POLYMER", 
"QUARTS (SIO2)", 
"QUARTZ", 
"QUARTZ  (CRYSTALLINE SILICA)", 
"QUARTZ - SILICA", 
"QUARTZ (CRYSTALLINE SILICA", 
"QUARTZ (CRYSTALLINE SILICA)", 
"QUARTZ (CRYSTILLANE SILICA)", 
"QUARTZ (SI02)", 
"QUARTZ (SI02) (CRYSTALLINE SILICA)", 
"QUARTZ (SILICA)", 
"QUARTZ (SIO2)", 
"QUARTZ (SIO2) ", 
"QUARTZ (SIO2)  (CRYSTALLINE SILICA)", 
"QUARTZ (SIO2) (CRYSTALLINE SILICA", 
"QUARTZ (SIO2) (CRYSTALLINE SILICA)", 
"QUARTZ (SIO2) (CRYSTALLINE SILICA) ", 
"QUARTZ (SIO2) (CRYSTASLLINE SILICA)", 
"QUARTZ (SIO2) (CYRSTALLINE SILICA)", 
"QUARTZ (SIO2) CRYSTALLINE SILLICA", 
"QUARTZ (SIO2)(CRYSTALLINE SILICA)", 
"QUARTZ CRYSTALLINE SILICA", 
"QUARTZ CRYSTALLINE SILICA ", 
"QUARTZ -SILICA", 
"QUARTZ(SIO2)", 
"QUARTZ, CRYSTALLINE SILICA", 
"QUARTZ, CRYSTALLINE SILICA ", 
"QUARTZ, CRYSTALLINE SILLICA", 
"QUARTZ, SIO2", 
"RESIN", 
"RESIN A", 
"RESIN COATED CRYSTALLINE SILICA ", 
"RESIN COATED CRYSTALLINE SILICA (QUARTZ)", 
"RESIN COATED FRACTURING PROPPANT", 
"RESIN COATED PROPPANT", 
"RESIN COATED SILICA FRACTURING PROPPANT", 
"RESIN COMPOUND", 
"RESPIRABLE CRYSTALLING SILICA (QUARTS)", 
"RYSTALLINE SILICA", 
"RYSTALLINE SILICA, QUARTZ", 
"SAND", 
"SAND - CRYSTALINE SILICA", 
"SAND - CRYSTALLINE SILICA", 
"SAND (CRYSTALLINE SILICA)", 
"SAND 20/40 OTTOWA WHITE", 
"SAND-PREMIUM WHITE", 
"SI", 
"SI-2 BLEND", 
"SICLA QUARTZ", 
"SIICIA QUARTZ", 
"SIICIA, QUARTZ", 
"SIILICA AMORPHOUS PRECIPITATED AND GEL", 
"SIILICA, AMORPHOUS PRECIPITATED AND GEL", 
"SILCA", 
"SILCA, CRYSTALLINE-QUARTZ", 
"SILCON DIOXIDE", 
"SILCON DIOXIDE (SILICA SAND)", 
"SILCON DIOXIDE AMORPHOUS AS GLASS", 
"SILCON DIOXIDE, (AMORPHOUS AS GLASS)", 
"SILCON DIOXIDE, AMORPHOUS AS GLASS", 
"SILICA", 
"SILICA", 
"SILICA ", 
"SILICA - CRYSTALLINE QUARTZ", 
"SILICA - CRYSTALLINE, QUARTZ", 
"SILICA (CRYSTALINE)", 
"SILICA (QUARTZ) SIO2", 
"SILICA , CRYSTALLINE - QUARTZ", 
"SILICA , CRYSTALLINE QUARTZ", 
"SILICA , CRYSTALLINE-QUARTZ", 
"SILICA AMORPHOUS", 
"SILICA AMORPHOUS - FUMED", 
"SILICA AMORPHOUS FUMED CRYSTAL FREE", 
"SILICA AMORPHOUS FUMED CRYSTALLINE - FREE", 
"SILICA AMORPHOUS FUSED", 
"SILICA AMORPHOUS PRECIPIDATED AND GEL", 
"SILICA AMORPHOUS PRECIPITATE", 
"SILICA AMORPHOUS PRECIPITATED", 
"SILICA AMORPHOUS PRECIPITATED AND GEL", 
"SILICA AMORPHOUS-FUMED", 
"SILICA CHRYSTALINE CRISTOBALITE", 
"SILICA CRISTOBALITE", 
"SILICA CRYATALLINE QUARTZ", 
"SILICA CRYSALLINE QUARTZ", 
"SILICA CRYSLLINE QUARTZ", 
"SILICA CRYSTALINE QUARTZ", 
"SILICA CRYSTALINE-CRISTOBALITE", 
"SILICA CRYSTALINE-QUARTZ", 
"SILICA CRYSTALLINE", 
"SILICA CRYSTALLINE - CRISTABOLITE", 
"SILICA CRYSTALLINE - QUARTZ", 
"SILICA CRYSTALLINE (QUARTZ)", 
"SILICA CRYSTALLINE CRISTOBALITE", 
"SILICA CRYSTALLINE -CRISTOBALITE", 
"SILICA CRYSTALLINE QUARTZ", 
"SILICA CRYSTALLINE QUARTZ", 
"SILICA CRYSTALLINE -QUARTZ", 
"SILICA CRYSTALLINE- QUARTZ", 
"SILICA CRYSTALLINE-CRISTBALITE", 
"SILICA CRYSTALLINE-CRISTOBALIT", 
"SILICA CRYSTALLINE-CRISTOBALITE", 
"SILICA CRYSTALLINE-CRISTOBALLITE", 
"SILICA CRYSTALLINE-CRISTOBALT", 
"SILICA CRYSTALLINE-CRITOBALITE", 
"SILICA CRYSTALLINE-QUARTZ", 
"SILICA CRYSTALLLINE-CRISTOBALITE", 
"SILICA CRYSTANLLLINE", 
"SILICA CYSTALLINE - CRISTOBALITE", 
"SILICA CYSTALLINE - QUARTZ", 
"SILICA CYSTALLINE CRISTOBALITE", 
"SILICA CYSTALLINE-QUARTZ", 
"SILICA DIOXIDE", 
"SILICA DISPERSION", 
"SILICA ENHANCED FLAKES WITH ACIDIC RESIDUAL", 
"SILICA GEL", 
"SILICA GEL, PPTD., CRYST.-FREE", 
"SILICA IN FORM OF QUARTZ", 
"SILICA ORGANIC POLYMER", 
"SILICA QUARTS", 
"SILICA QUARTZ", 
"SILICA QUARTZ", 
"SILICA QUARTZ SI02", 
"SILICA QUARTZ SIO2", 
"SILICA QUARTZ SIO2", 
"SILICA QUARTZ SIO2", 
"SILICA QUARTZ, SIO2", 
"SILICA QUARTZ, SIO2 ", 
"SILICA QUARTZ, SIO2/PHENOLIC RESIN/HEXAMETHYLENETETRAMINE", 
"SILICA QUARTZ, SIO5", 
"SILICA QUARTZ/ SIO2", 
"SILICA SAND", 
"SILICA SAND ", 
"SILICA SAND (QUARTZ)", 
"SILICA SAND(QUARTZ)", 
"SILICA SANDS (QUARTZ)", 
"SILICA SUBSTATE", 
"SILICA SUBSTITUTE WITH BONDED COATINGS", 
"SILICA SUBSTRAIT", 
"SILICA SUBSTRAT", 
"SILICA SUBSTRATE", 
"SILICA SUBSTRATTE", 
"SILICA SUBTRATE", 
"SILICA, AMORPHOUS", 
"SILICA, AMORPHOUS - FUMED", 
"SILICA, AMORPHOUS - FUMED ", 
"SILICA, AMORPHOUS- FUMED", 
"SILICA, AMORPHOUS FUSED", 
"SILICA, AMORPHOUS PRECIPIDATED AND GEL", 
"SILICA, AMORPHOUS PRECIPITATE", 
"SILICA, AMORPHOUS PRECIPITATED", 
"SILICA, AMORPHOUS PRECIPITATED AND GEL", 
"SILICA, AMORPHOUS, FUMED, CRYSTAL FREE", 
"SILICA, AMORPHOUS, FUMED, CRYSTALLINE - FREE", 
"SILICA, AMORPHOUS-FUMED", 
"SILICA, AMPORHOUS - FUMED", 
"SILICA, CRISTOBALITE", 
"SILICA, CRYATALINE-QUARTZ", 
"SILICA, CRYATALLINE-QUARTZ", 
"SILICA, CRYATALLINE-QUARTZ ", 
"SILICA, CRYSTALINE QUARTZ", 
"SILICA, CRYSTALINE, QUARTZ", 
"SILICA, CRYSTALINE-QUARTZ", 
"SILICA, CRYSTALLINE", 
"SILICA, CRYSTALLINE - QUARTZ", 
"SILICA, CRYSTALLINE - QUARTZ ", 
"SILICA, CRYSTALLINE (CRISTOBALITE)", 
"SILICA, CRYSTALLINE (QUARTZ)", 
"SILICA, CRYSTALLINE- QUARTSQUARTZQUARTZ",
"SILICA, CRYSTALLINE QUARTZ", 
"SILICA, CRYSTALLINE- QUARTZ", 
"SILICA, CRYSTALLINE, QUARTZ", 
"SILICA, CRYSTALLINE-/QUARTZ", 
"SILICA, CRYSTALLINE-CRISTOBALITE", 
"SILICA, CRYSTALLINE-QUARTZ", 
"SILICA, CRYTALLINE QUARTZ", 
"SILICA, CYSTALLINE - QUARTZ", 
"SILICA, CYSTALLINE-QUARTZ", 
"SILICA, QUART, SIO2", 
"SILICA, QUARTZ", 
"SILICA, QUARTZ SIO2", 
"SILICA, QUARTZ, S102", 
"SILICA, QUARTZ, SIO2", 
"SILICA, QUARTZ,SIO2", 
"SILICA,CRYSTALLINE QUARTZ", 
"SILICA,QUARTZ", 
"SILICA/CRYSTALLINE QUARTZ", 
"SILICA/QUARTZ/SIO2", 
"SILICA-CRYSTALLINE QUARTZ", 
"SILICA-CRYSTALLINE, QUARTZ", 
"SILICA-CRYSTALLINE-CRISTOBALITE", 
"SILICAN CRYSTALLINE-CRISTOBALITE", 
"SILICATE MINERALS - TS", 
"SILICIA CRYSTALINE-CRISTOBALITE", 
"SILICIA CRYSTALLINE QUARTZ", 
"SILICIA, CRYSTALINE QUARTZ", 
"SILICIA, CRYSTALLINE QUARTZ", 
"SILICON", 
"SILICON  DIOXIDE", 
"SILICON DIOXIDE", 
"SILICON DIOXIDE ", 
"SILICON DIOXIDE (AMORPHOUS AS GLASS)", 
"SILICON DIOXIDE (AMORPHOUS AS GLASS)", 
"SILICON DIOXIDE (AMORPHOUS)", 
"SILICON DIOXIDE (CRYSTALLINE)", 
"SILICON DIOXIDE (QUARTZ)", 
"SILICON DIOXIDE (SILICA SAND)", 
"SILICON DIOXIDE (SILICIA SAND)", 
"SILICON DIOXIDE (SIO2)", 
"SILICON DIOXIDE AMORPHOUS AS GLASS", 
"SILICON DIOXIDE CHEMICALLY PREPARED", 
"SILICON DIOXIDE IN THE FORM OF CRYSTALLINE SILICA", 
"SILICON DIOXIDE IN THE FORM OF CRYSTALLINE SILICA (QUARTZ)", 
"SILICON DIOXIDE(AMORPHOUS AS GLASS)", 
"SILICON DIOXIDE(AMORPHOUS AS GLASS)", 
"SILICON DIOXIDE, (AMORPHOUS AS GLASS)", 
"SILICON DIOXIDE, AMORPHOUS - FUMED", 
"SILICON DIOXIDE, AMORPHOUS AS GLASS", 
"SILICON DIOXIDE, CHEMICALLY PREPARED", 
"SILICON DIOXIDE, QUARTZ", 
"SILICON DIOXIDE,(AMORPHOUS AS GLASS)", 
"SILICON DIOXIDE. (AMPORPHOUS AS GLASS)", 
"SILICON DIOXIDE...", 
"SILICON DIOXODE", 
"SILICON DIXIDE, (AMORPHOUS AS GLASS)", 
"SILICONE DIOXIDE", 
"SILICONE DIOXIDE ", 
"SILICONE DIOXIDE, (AMORPHOUS AS GLASS)", 
"SILLICA AMORPHOUS PRECIPITATED AND GEL", 
"SILLICA CRYSTALLINE QUARTZ", 
"SILLICA, AMORPHOUS PRECIPITATED AND GEL", 
"SILLICA, CRYSTALLINE QUARTZ", 
"SILLICA, QUARTZ, SIO2", 
"SILLICON DIOXIDE", 
"SINTERED BAUXITE", 
"SIO2", 
"SYNTHETIC AMORPHOUS METAL SILICATE - TS", 
"SYNTHETIC AMORPHOUS SILICA (CRYSTALLINE SILICA-FREE)", 
"UEXITE", 
"ULEXIE", 
"ULEXITE", 
"ULEXITE", 
"ULEXITE ", 
"ULEXITE - TS", 
"ULEXITE (BORATE SALT)", 
"ULEXITE CALCINED", 
"ULEXITE MINERAL", 
"ULEXITE MINERAL ", 
"ULEXITE POWDER", 
"ULEXITE POWER", 
"ULEXITEULEXITEULEXITE", 
"ULEXITE, CALCINED", 
"ULIXITE MINERAL", 
"ULLEXITE"]
In [17]:
FFPropvol = FFPropvol[FFPropvol["IngredientName"].isin(Proppantlist)]
FFPropvol = FFPropvol[["APINumber", "PercentHFJob"]]
FFPropvol['ProppantPerc'] = FFPropvol["PercentHFJob"].groupby(FFPropvol['APINumber']).transform('sum')
FFPropvol = FFPropvol.drop_duplicates(subset="APINumber", keep='first', inplace=False)
FFPropvol = FFPropvol.reset_index(drop=True)
In [18]:
#Put together your water volume/general info and propant dataframes
FFCalcFrame = pd.merge(FFwatervol, FFPropvol, on='APINumber')

#Clean up Kern County format
FFCalcFrame['CountyName'] = FFCalcFrame['CountyName'].replace(' - 30','', regex=True)

#Capitalize all Operators
FFCalcFrame['OperatorName'] = FFCalcFrame['OperatorName'].str.upper()

#Add a year column to break the data out by a timeframe
FFCalcFrame['FracYear'] = FFCalcFrame['JobEndDate'].dt.year.astype(int)

#Drop PercentHFJob column
FFCalcFrame = FFCalcFrame.drop(['PercentHFJob'], axis=1)
In [19]:
#Get a gist of how much Proppant is being used by percent in your "cleaner" dataframe.
#Some numbers are still running high, but we will clean that up in a bit.

plt.hist(FFCalcFrame['ProppantPerc'], bins = 10, range = (0,100));
In [20]:
FFCalcFrame["FracFluid_Weight_Pct"] = 100-FFCalcFrame["ProppantPerc"]
FFCalcFrame["TBV_Water_Weight"] = FFCalcFrame["TotalBaseWaterVolume"]*8.34
FFCalcFrame["Total_Frac_Weight_(lbs.)"] = FFCalcFrame["TBV_Water_Weight"]/(FFCalcFrame["FracFluid_Weight_Pct"]/100.0)
FFCalcFrame["Prop_Weight_(lbs.)"] = FFCalcFrame["Total_Frac_Weight_(lbs.)"]*(FFCalcFrame["ProppantPerc"]/100.0)
FFCalcFrame["FracFluidWeight_(lbs.)"] = FFCalcFrame["TBV_Water_Weight"]*(FFCalcFrame["FracFluid_Weight_Pct"]/100.0)
FFCalcFrame["Frac_Fluid_Barrels_(bbls)"] = FFCalcFrame["TotalBaseWaterVolume"]/42.0
FFCalcFrame
Out[20]:
APINumber WellName TotalBaseWaterVolume OperatorName StateName StateNumber CountyName CountyNumber JobEndDate Latitude Longitude Projection ProppantPerc FracYear FracFluid_Weight_Pct TBV_Water_Weight Total_Frac_Weight_(lbs.) Prop_Weight_(lbs.) FracFluidWeight_(lbs.) Frac_Fluid_Barrels_(bbls)
0 01007203590000 RGGS 8-12-266 198000.00000 SAGA PETROLEUM LLC Alabama 01 Bibb 007 2014-03-20 00:00:00 33.13555 -87.08841 NAD27 10.73796 2014 89.26204 1651320.00000 1849968.90223 198648.90223 1474001.93544 4714.28571
1 01007203600000 RGGS 7-16-270 133000.00000 SAGA PETROLEUM LLC Alabama 01 Bibb 007 2014-05-16 00:00:00 33.13166 -87.09314 NAD27 13.61673 2014 86.38327 1109220.00000 1284068.02456 174848.02456 958180.55186 3166.66667
2 01007203610000 RGGS 7-8-254 230000.00000 SAGA PETROLEUM LLC Alabama 01 Bibb 007 2014-04-11 00:00:00 33.13989 -87.09335 NAD27 11.40935 2014 88.59065 1918200.00000 2165239.76102 247039.76102 1699345.86748 5476.19048
3 01007203620000 RGGS 7-10-258 310000.00000 SAGA PETROLEUM LLC Alabama 01 Bibb 007 2014-04-30 00:00:00 33.13529 -87.09730 NAD27 9.50412 2014 90.49588 2585400.00000 2856925.67283 271525.67283 2339680.45567 7380.95238
4 01035202330000 Mack Mary 31-2 1 21714.00000 SKLAR EXPLORATION COMPANY L.L.C. Alabama 01 Conecuh 035 2014-07-29 00:00:00 31.27492 -86.79154 NAD27 0.06543 2014 99.93457 181094.76000 181213.32679 118.56679 180976.27079 517.00000
5 01035202510000 Jones 28-6 1 88200.00000 PRUET PRODUCTION CO. Alabama 01 Conecuh 035 2014-06-09 00:00:00 31.28663 -86.76407 NAD27 2.96137 2014 97.03863 735588.00000 758036.23022 22448.23022 713804.54413 2100.00000
6 01035202520000 Booth + Casey 29-6 1 38766.00000 SKLAR EXPLORATION COMPANY L.L.C. Alabama 01 Conecuh 035 2014-07-30 00:00:00 31.28482 -86.78004 NAD27 37.23262 2014 62.76738 323308.44000 515089.88437 191781.44437 202932.24648 923.00000
7 01035202980000 Cedar Creek Land + Timber 27-15 1 83832.00000 PRUET PRODUCTION CO. Alabama 01 Conecuh 035 2014-06-08 00:00:00 31.27696 -86.74035 NAD27 3.08989 2014 96.91011 699158.88000 721450.92653 22292.04653 677555.63339 1996.00000
8 01035203050000 Jones 28-7 4-13 91602.00000 PRUET PRODUCTION CO. Alabama 01 Conecuh 035 2014-06-10 00:00:00 31.28607 -86.75612 NAD27 2.85083 2014 97.14917 763960.68000 786379.00627 22418.32627 742181.46204 2181.00000
9 01053207090000 Edward Family Trust 26-6 #1 108360.00000 SKLAR EXPLORATION COMPANY L.L.C. Alabama 01 Escambia 053 2017-10-18 05:00:00 31.19396 -87.03495 NAD27 9.63715 2017 90.36285 903722.40000 1000103.93777 96381.53777 816629.29763 2580.00000
10 01107200570001 Gulf States 1-1 #1 45402.00000 LAND AND NATURAL RESOURCE DEVELOPMENT, INC Alabama 01 Pickens 107 2019-04-05 00:00:00 33.43376 -87.94641 NAD83 17.06749 2019 82.93251 378652.68000 456579.33511 77926.65511 314026.15284 1081.00000
11 01107200710000 Peco Foods 35-11 #1 72576.00000 LAND AND NATURAL RESOURCE DEVELOPMENT, INC Alabama 01 Pickens 107 2014-08-18 00:00:00 33.44227 -87.97141 NAD27 11.80047 2014 88.19953 605283.84000 686266.53746 80982.69746 533857.48389 1728.00000
12 01107201100000 Winters 19-5 #1 115584.00000 LAND AND NATURAL RESOURCE DEVELOPMENT, INC Alabama 01 Pickens 107 2016-01-11 00:00:00 33.47711 -88.04633 NAD83 17.31962 2016 82.68038 963970.56000 1165900.06799 201929.50799 797014.48354 2752.00000
13 01107201590001 Parham 26-15 #1 46704.00000 LAND AND NATURAL RESOURCE DEVELOPMENT, INC Alabama 01 Pickens 107 2018-01-29 00:00:00 33.45786 -88.07337 NAD83 11.09527 2018 88.90473 389511.36000 438122.20448 48610.84448 346294.02030 1112.00000
14 01107203400000 Windham 35-10 #1 105378.00000 LAND AND NATURAL RESOURCE DEVELOPMENT, INC Alabama 01 Pickens 107 2014-11-20 00:00:00 33.44720 -88.07178 NAD27 17.18316 2014 82.81684 878852.52000 1061200.23268 182347.71268 727837.90290 2509.00000
15 01107203620000 Newman White 2-8 #1 111052.00000 LAND AND NATURAL RESOURCE DEVELOPMENT, INC Alabama 01 Pickens 107 2013-10-25 00:00:00 33.43605 -88.06891 NAD27 13.67486 2013 86.32514 926173.68000 1072889.85488 146716.17488 799520.73516 2644.09524
16 01107203640000 Taylor 2-6 #1 113274.00000 LAND AND NATURAL RESOURCE DEVELOPMENT, INC Alabama 01 Pickens 107 2013-10-16 00:00:00 33.43649 -88.07580 NAD27 0.00000 2013 100.00000 944705.16000 944705.16000 0.00000 944705.16000 2697.00000
17 01107203650000 Prater 27-11 #1 107310.00000 LAND AND NATURAL RESOURCE DEVELOPMENT, INC Alabama 01 Pickens 107 2013-10-04 00:00:00 33.45250 -88.09363 NAD27 14.22049 2013 85.77951 894965.40000 1043332.32758 148366.92758 767696.97059 2555.00000
18 01107203660000 Weyerhaeuser 27-12 #1 107856.00000 LAND AND NATURAL RESOURCE DEVELOPMENT, INC Alabama 01 Pickens 107 2014-02-14 00:00:00 33.46273 -88.09795 NAD27 14.02592 2014 85.97408 899519.04000 1046267.74882 146748.70882 773353.19208 2568.00000
19 01107203670000 Swedenburg 27-9 #1 100787.00000 LAND AND NATURAL RESOURCE DEVELOPMENT, INC Alabama 01 Pickens 107 2013-11-19 00:00:00 33.46127 -88.08510 NAD27 12.35641 2013 87.64359 840563.58000 959070.26261 118506.68261 736700.07253 2399.69048
20 01107203680000 Windham 35-13 #1 101850.00000 LAND AND NATURAL RESOURCE DEVELOPMENT, INC Alabama 01 Pickens 107 2014-05-27 00:00:00 33.44383 -88.08024 NAD27 15.48919 2014 84.51081 849429.00000 1005112.82515 155683.82515 717859.33677 2425.00000
21 01107203700000 Prater 27-10 #2 107772.00000 LAND AND NATURAL RESOURCE DEVELOPMENT, INC Alabama 01 Pickens 107 2013-12-20 00:00:00 33.46185 -88.08911 NAD27 25.54319 2013 74.45681 898818.48000 1207167.52667 308349.04667 669231.60385 2566.00000
22 01107203710000 Swedenburg 26-12 #1 110124.00000 LAND AND NATURAL RESOURCE DEVELOPMENT, INC Alabama 01 Pickens 107 2014-01-23 00:00:00 33.46033 -88.08247 NAD27 14.56115 2014 85.43885 918434.16000 1074960.87991 156526.71991 784699.53839 2622.00000
23 01107203720000 Swedenburg 27-7 #1 136962.00000 LAND AND NATURAL RESOURCE DEVELOPMENT, INC Alabama 01 Pickens 107 2014-01-28 00:00:00 33.46459 -88.09119 NAD27 15.80789 2014 84.19211 1142263.08000 1356734.06843 214470.98843 961695.42307 3261.00000
24 01107203730000 Swedenburg 27-8 #1 104244.00000 LAND AND NATURAL RESOURCE DEVELOPMENT, INC Alabama 01 Pickens 107 2014-04-09 00:00:00 33.46444 -88.08686 NAD27 15.83911 2014 84.16089 869394.96000 1033015.44339 163620.48339 731690.50987 2482.00000
25 01107203740000 Prater 27-6 #1 108318.00000 LAND AND NATURAL RESOURCE DEVELOPMENT, INC Alabama 01 Pickens 107 2014-02-27 00:00:00 33.46569 -88.09405 NAD27 15.90004 2014 84.09996 903372.12000 1074164.76950 170792.64950 759735.57350 2579.00000
26 01107203760000 Prater 27-3 #1 108645.00000 LAND AND NATURAL RESOURCE DEVELOPMENT, INC Alabama 01 Pickens 107 2014-03-26 00:00:00 33.46836 -88.09585 NAD27 15.36740 2014 84.63260 906099.30000 1070626.74013 164527.44013 766855.44148 2586.78571
27 01107203770000 Prater 27-5 #1 136878.00000 LAND AND NATURAL RESOURCE DEVELOPMENT, INC Alabama 01 Pickens 107 2014-06-26 00:00:00 33.46617 -88.09826 NAD27 18.38474 2014 81.61526 1141562.52000 1398712.15501 257149.63501 931689.18451 3259.00000
28 01107203790000 Weyerhaeuser 28-8 #1 116676.00000 LAND AND NATURAL RESOURCE DEVELOPMENT, INC Alabama 01 Pickens 107 2014-04-28 00:00:00 33.46494 -88.10235 NAD27 15.17091 2014 84.82909 973077.84000 1147103.98805 174026.14805 825453.04747 2778.00000
29 01107203820000 Weyerhaeuser 28-9 #1 111552.00000 LAND AND NATURAL RESOURCE DEVELOPMENT, INC Alabama 01 Pickens 107 2014-07-17 00:00:00 33.46193 -88.10224 NAD27 14.91904 2014 85.08096 930343.68000 1093480.44278 163136.76278 791545.35285 2656.00000
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
88896 50103207680000 Tinmiaq 9 43526.00000 CONOCOPHILLIPS COMPANY/BURLINGTON RESOURCES Alaska 50 Harrison Bay 103 2019-02-26 09:00:00 70.30303 -152.22143 NAD83 20.07646 2019 79.92354 363006.84000 454192.66564 91185.82564 290127.90354 1036.33333
88897 50103207690000 Stony Hill 1 34820.00000 CONOCOPHILLIPS COMPANY/BURLINGTON RESOURCES Alaska 50 Harrison Bay 103 2018-04-07 08:00:00 70.11871 -151.12757 NAD83 18.05445 2018 81.94555 290398.80000 354380.19514 63981.39514 237968.89385 829.04762
88898 50103207730000 MT6-06 252737.00000 CONOCOPHILLIPS COMPANY/BURLINGTON RESOURCES Alaska 50 Harrison Bay 103 2019-03-09 09:00:00 70.25601 -151.48187 NAD83 15.29465 2019 84.70535 2107826.58000 2488422.10621 380595.52621 1785441.81884 6017.54762
88899 50103207740000 3S-611 1286565.00000 CONOCOPHILLIPS COMPANY/BURLINGTON RESOURCES Alaska 50 Harrison Bay 103 2018-12-15 09:00:00 70.39419 -150.19639 NAD83 17.39907 2018 82.60093 10729952.10000 12990110.45461 2260158.35461 8863040.26979 30632.50000
88900 50103207760000 2S-315 209276.00000 CONOCOPHILLIPS COMPANY/BURLINGTON RESOURCES Alaska 50 Harrison Bay 103 2019-01-02 09:00:00 70.21950 -150.15673 NAD83 13.93575 2019 86.06425 1745361.84000 2027975.42534 282613.58534 1502132.57738 4982.76190
88901 50103207770000 3S-612 1172986.00000 CONOCOPHILLIPS COMPANY/BURLINGTON RESOURCES Alaska 50 Harrison Bay 103 2018-12-28 09:00:00 70.39418 -150.19656 NAD83 19.56380 2018 80.43620 9782703.24000 12162065.96942 2379362.72942 7868834.36766 27928.23810
88902 50103207800000 Tinmiaq 10 166827.00000 CONOCOPHILLIPS COMPANY/BURLINGTON RESOURCES Alaska 50 Harrison Bay 103 2019-03-17 08:00:00 70.23047 -152.15111 NAD83 21.49604 2019 78.50396 1391337.18000 1772314.73891 380977.55891 1092254.72539 3972.07143
88903 50103207810000 Tinmiaq 11 147744.00000 CONOCOPHILLIPS COMPANY/BURLINGTON RESOURCES Alaska 50 Harrison Bay 103 2019-04-03 08:00:00 70.09628 -152.20856 NAD83 24.05530 2019 75.94470 1232184.96000 1622476.60078 390291.64078 935779.15079 3517.71429
88904 50103207850000 Tinmiaq 15 36454.00000 CONOCOPHILLIPS COMPANY/BURLINGTON RESOURCES Alaska 50 Harrison Bay 103 2019-03-12 08:00:00 70.23514 -152.13233 NAD83 23.69670 2019 76.30330 304026.36000 398444.56135 94418.20135 231982.15396 867.95238
88905 50103207860000 Tinmiaq 16 39407.00000 CONOCOPHILLIPS COMPANY/BURLINGTON RESOURCES Alaska 50 Harrison Bay 103 2019-03-23 08:00:00 70.14325 -152.20395 NAD83 22.30540 2019 77.69460 328654.38000 423008.01290 94353.63290 255346.70314 938.26190
88906 50123450680000 Pronghorn 24-8-5XRLNB 21758612.00000 BONANZA CREEK ENERGY, INC. Alaska 50 Juneau 123 2019-05-12 06:00:00 40.40919 -104.23810 NAD83 10.88065 2019 89.11935 181466824.08000 203622253.69314 22155429.61314 161722049.74859 518062.19048
88907 50223200320000 Icewine #2 1167297.00000 ACCUMULATE ENERGY ALASKA INC Alaska 50 Sagavanirktok 223 2017-06-19 16:00:00 69.71723 -148.70320 NAD27 9.58220 2017 90.41780 9735256.98000 10766969.53476 1031712.55476 8802405.18566 27792.78571
88908 50231200210000 Red-1 75972.00000 HILCORP ALASKA, LLC Alaska 50 Seldovia 231 2017-03-20 08:00:00 59.85140 -151.56200 NAD27 15.88273 2017 84.11727 633606.48000 753241.84915 119635.36915 532972.47352 1808.85714
88909 50231200510000 H16 1430770.00000 BLUECREST ALASKA OPERATING LLC Alaska 50 Seldovia 231 2017-05-14 08:00:00 59.85890 -151.80139 NAD27 15.37295 2017 84.62705 11932621.80000 14100245.48888 2167623.68888 10098225.81700 34065.95238
88910 50231205210000 H14 1707851.00000 BLUECREST ALASKA OPERATING LLC Alaska 50 Seldovia 231 2017-10-31 08:00:00 59.85879 -151.80143 NAD27 12.93505 2017 87.06495 14243477.34000 16359599.74709 2116122.40709 12401076.42433 40663.11905
88911 50703206050200 ODSN-42b 650541.00000 CAELUS ENERGY Alaska 50 State Waters - Harrison Bay Quadrangle 703 2015-03-27 00:00:00 70.29450 -150.14477 NAD27 26.41553 2015 73.58447 5425511.94000 7373175.26375 1947663.32375 3992334.20584 15489.07143
88912 50703206480000 ODSN-01a 1353243.00000 CAELUS ENERGY Alaska 50 State Waters - Harrison Bay Quadrangle 703 2016-03-30 00:00:00 70.29462 -150.14455 NAD27 14.33232 2016 85.66768 11286046.62000 13174217.65128 1888171.03128 9668494.30307 32220.07143
88913 50703206700000 ODSN-4 782894.00000 PIONEER NATURAL RESOURCES Alaska 50 State Waters - Harrison Bay Quadrangle 703 2014-03-03 00:00:00 70.29461 -150.14459 NAD27 25.05719 2014 74.94281 6529335.96000 8712424.79432 2183088.83432 4893267.84276 18640.33333
88914 50703206710000 ODSN-2 846791.00000 PIONEER NATURAL RESOURCES Alaska 50 State Waters - Harrison Bay Quadrangle 703 2014-03-24 00:00:00 70.49612 -150.24577 NAD27 25.28204 2014 74.71796 7062236.94000 9451859.95442 2389623.01442 5276759.37193 20161.69048
88915 50703206760000 ODSN-28 790627.00000 PIONEER NATURAL RESOURCES Alaska 50 State Waters - Harrison Bay Quadrangle 703 2014-03-17 00:00:00 70.29459 -150.14452 NAD27 26.68009 2014 73.31991 6593829.18000 8993231.41559 2399402.23559 4834589.62033 18824.45238
88916 50703206790000 ODSN-48 806491.00000 PIONEER NATURAL RESOURCES Alaska 50 State Waters - Harrison Bay Quadrangle 703 2014-04-14 00:00:00 70.29447 -150.14188 NAD27 27.27625 2014 72.72375 6726134.94000 9248883.53530 2522748.59530 4891497.55843 19202.16667
88917 50703206850000 ODSN-19i 251011.00000 CAELUS ENERGY Alaska 50 State Waters - Harrison Bay Quadrangle 703 2015-03-07 00:00:00 70.49587 -150.24687 NAD27 3.81432 2015 96.18568 2093431.74000 2176448.44846 83016.70846 2013581.55445 5976.45238
88918 50703206890000 ODSN-03i 866034.00000 CAELUS ENERGY Alaska 50 State Waters - Harrison Bay Quadrangle 703 2015-04-20 00:00:00 70.29461 -150.14458 NAD27 24.03350 2015 75.96650 7222723.56000 9507774.55852 2285050.99852 5486850.29321 20619.85714
88919 50703206920000 ODSN-43 864833.00000 CAELUS ENERGY Alaska 50 State Waters - Harrison Bay Quadrangle 703 2015-03-21 00:00:00 70.49581 -150.24668 NAD27 25.94048 2015 74.05952 7212707.22000 9739068.27914 2526361.05914 5341696.34614 20591.26190
88920 50703207080000 ODSN-22 728506.00000 CAELUS ENERGY Alaska 50 State Waters - Harrison Bay Quadrangle 703 2016-02-25 00:00:00 70.29450 -150.14492 NAD27 28.10531 2016 71.89469 6075740.04000 8450888.43140 2375148.39140 4368134.46696 17345.38095
88921 50703207150000 ODSN-06i 719593.00000 CAELUS ENERGY Alaska 50 State Waters - Harrison Bay Quadrangle 703 2016-03-30 00:00:00 70.29460 -150.14462 NAD27 25.11960 2016 74.88040 6001405.62000 8014654.86295 2013249.24295 4493876.53388 17133.16667
88922 50703207190000 ODSN-10i 662353.00000 CAELUS ENERGY Alaska 50 State Waters - Harrison Bay Quadrangle 703 2016-04-24 00:00:00 70.49603 -150.24639 NAD27 23.65346 2016 76.34654 5524024.02000 7235460.86044 1711436.84044 4217401.20804 15770.30952
88923 50703207250000 ODSN-07i 888489.00000 CAELUS ENERGY Alaska 50 State Waters - Harrison Bay Quadrangle 703 2016-03-21 00:00:00 70.29459 -150.14466 NAD27 25.18045 2016 74.81955 7409998.26000 9903826.28604 2493828.02604 5544127.35314 21154.50000
88924 50733205260100 RU-07B 166512.00000 COOK INLET ENERGY Alaska 50 State Waters - Kenai Quadrangle 733 2016-12-12 09:00:00 60.69559 -151.67045 NAD27 11.52778 2016 88.47222 1388710.08000 1569656.64476 180946.56476 1228622.63714 3964.57143
88925 50733206550100 Kitchen Lights Unit #A-2A 94414.00000 FURIE OPERATING ALASKA Alaska 50 State Waters - Kenai Quadrangle 733 2016-08-23 05:00:00 60.93671 -151.15639 NAD27 21.81682 2016 78.18318 787412.76000 1007138.31287 219725.55287 615624.33549 2247.95238

88926 rows × 20 columns

In [21]:
FFCalcFrame.describe()
Out[21]:
TotalBaseWaterVolume Latitude Longitude ProppantPerc FracYear FracFluid_Weight_Pct TBV_Water_Weight Total_Frac_Weight_(lbs.) Prop_Weight_(lbs.) FracFluidWeight_(lbs.) Frac_Fluid_Barrels_(bbls)
count 88926.00000 88926.00000 88926.00000 88926.00000 88926.00000 88926.00000 88926.00000 88926.00000 88926.00000 88926.00000 88926.00000
mean 6934123.69791 35.60527 -99.76090 12.27909 2015.39576 87.72091 57830591.64054 68030917.77652 10200326.13598 51507944.64426 165098.18328
std 7108037.49705 5.84195 8.46709 7.69123 1.94037 7.69123 59281032.72543 209579895.53997 198385197.36962 54079222.93579 169238.98803
min 0.00000 -103.61884 -170.91442 0.00000 2009.00000 0.01702 0.00000 0.00000 0.00000 0.00000 0.00000
25% 1468782.00000 31.66710 -103.54162 8.61590 2014.00000 85.61760 12249641.88000 13713879.84676 1018917.89117 10933585.49824 34971.00000
50% 5341144.00000 33.73716 -101.62130 11.33701 2015.00000 88.66299 44545140.96000 50693048.06770 5152632.40457 39073102.47839 127170.09524
75% 10176725.00000 40.07199 -97.78190 14.38240 2017.00000 91.38410 84873886.50000 95938732.90310 10851353.08773 75362878.00629 242302.97619
max 472444086.00000 70.49774 103.26108 99.98298 2019.00000 100.00000 3940183677.24000 40776426208.09576 40621585884.85576 3926126015.84461 11248668.71429
In [22]:
import seaborn as sns; sns.set(style="ticks", color_codes=True)

FFCalcFrameNum = FFCalcFrame[['TotalBaseWaterVolume','TBV_Water_Weight', 'Prop_Weight_(lbs.)', 'FracFluidWeight_(lbs.)', 'Total_Frac_Weight_(lbs.)']]
FFpairplt = sns.pairplot(FFCalcFrameNum)
FFpairplt
Out[22]:
<seaborn.axisgrid.PairGrid at 0x1bd0fc13ac8>

-Looks like there may be some crazy numbers in the data set, so let's cut them.

-We show below one way to statistically set where outliers start occuring by using the IQR and subtracting and adding 1.5 times the IQR from the respective quartiles

-We know there are a lot of high prop/fluid wells out there (some with 50 million lbs of sand), and in a data set running from 2009 to present, there will be some definite huge swings on values.

-It would be easier to make some calls on this if you had lateral lengths, but you can fix this up if you narrow your project down to a state or 2 and get that lateral data for the calculation.

-So, from 0 to 23,238,640 gallons on total base water volume is the range.

In [23]:
#Example of how to use IQR in Python

#Get the interquartile range on Total Base Water Volume
q75, q25 = np.percentile(FFCalcFrame['TotalBaseWaterVolume'], [75 ,25])
TBV_iqr = q75 - q25

#Use the iqr to set bounds on where to call outliers
TBV_LB = q25 - (1.5*TBV_iqr)
TBV_UB = q75 + (1.5*TBV_iqr)
print("IQR:",TBV_iqr, "Lower Bound:", TBV_LB, "Upper Bound:", TBV_UB)
IQR: 8707943.0 Lower Bound: -11593132.5 Upper Bound: 23238639.5
In [24]:
FFCalcFrame2 = FFCalcFrame[FFCalcFrame['TotalBaseWaterVolume'] <= TBV_UB]
FFCalcFrame2.describe()
Out[24]:
TotalBaseWaterVolume Latitude Longitude ProppantPerc FracYear FracFluid_Weight_Pct TBV_Water_Weight Total_Frac_Weight_(lbs.) Prop_Weight_(lbs.) FracFluidWeight_(lbs.) Frac_Fluid_Barrels_(bbls)
count 86435.00000 86435.00000 86435.00000 86435.00000 86435.00000 86435.00000 86435.00000 86435.00000 86435.00000 86435.00000 86435.00000
mean 6312694.85103 35.67267 -99.80768 12.35279 2015.33142 87.64721 52647875.05761 62141018.00776 9493142.95016 46790504.85636 150302.25836
std 5718913.88316 5.84904 8.46091 7.72495 1.92169 7.72495 47695741.78559 205826017.71254 198203136.24781 42790137.03591 136164.61627
min 0.00000 -103.61884 -170.91442 0.00000 2009.00000 0.01702 0.00000 0.00000 0.00000 0.00000 0.00000
25% 1391416.00000 31.68480 -103.55972 8.67918 2014.00000 85.50179 11604409.44000 12976299.51719 971871.12513 10290025.29280 33128.95238
50% 5099010.00000 34.24592 -101.62083 11.41377 2015.00000 88.58623 42525743.40000 48389781.32519 4889522.59359 37252077.46966 121405.00000
75% 9670210.50000 40.08880 -97.78911 14.49821 2017.00000 91.32082 80649555.57000 91112959.16005 10297352.93793 71467457.87882 230243.10714
max 23235673.00000 70.49774 103.26108 99.98298 2019.00000 100.00000 193785512.82000 40776426208.09576 40621585884.85576 191135846.85842 553230.30952
In [25]:
FFCalcFrameNum2 = FFCalcFrame2[['TotalBaseWaterVolume','TBV_Water_Weight', 'Prop_Weight_(lbs.)', 'FracFluidWeight_(lbs.)', 'Total_Frac_Weight_(lbs.)']]
FFpairplt = sns.pairplot(FFCalcFrameNum2)
FFpairplt
Out[25]:
<seaborn.axisgrid.PairGrid at 0x1bd0c4603c8>

Much better, but that ProppantPerc, and therefore proppant weight, is still insanely high. Do the same thing as before using the IQR.

In [26]:
PWPq75, PWPq25 = np.percentile(FFCalcFrame['Prop_Weight_(lbs.)'], [75 ,25])
PWP_iqr = PWPq75 - PWPq25

PWP_LB = q25 - (1.5*PWP_iqr)
PWP_UB = q75 + (1.5*PWP_iqr)
print("IQR:",PWP_iqr, "Lower Bound:", PWP_LB, "Upper Bound:", PWP_UB)
IQR: 9832435.196564833 Lower Bound: -13279870.79484725 Upper Bound: 24925377.79484725
In [27]:
FFCalcFrame3 = FFCalcFrame2[FFCalcFrame2['Prop_Weight_(lbs.)'] <= PWP_UB]
FFCalcFrame3.describe()
Out[27]:
TotalBaseWaterVolume Latitude Longitude ProppantPerc FracYear FracFluid_Weight_Pct TBV_Water_Weight Total_Frac_Weight_(lbs.) Prop_Weight_(lbs.) FracFluidWeight_(lbs.) Frac_Fluid_Barrels_(bbls)
count 85362.00000 85362.00000 85362.00000 85362.00000 85362.00000 85362.00000 85362.00000 85362.00000 85362.00000 85362.00000 85362.00000
mean 6191820.35864 35.68515 -99.85306 12.10649 2015.30659 87.89351 51639781.79104 57963981.86839 6324200.07735 46098289.65104 147424.29425
std 5606830.86858 5.85673 8.44655 6.73506 1.91408 6.73506 46760969.44393 52088798.97053 5956577.44715 42111806.62641 133495.97306
min 0.00000 -103.61884 -170.91442 0.00000 2009.00000 0.41044 0.00000 0.00000 0.00000 0.00000 0.00000
25% 1360127.50000 31.69118 -103.56511 8.62851 2014.00000 85.58374 11343463.35000 12630966.07022 950242.00579 10169248.95269 32383.98810
50% 5025439.94741 34.30100 -101.63613 11.35514 2015.00000 88.64486 41912169.16143 47407312.12747 4753693.05283 36813253.18344 119653.33208
75% 9500667.25000 40.08935 -97.80043 14.41626 2017.00000 91.37149 79235564.86500 89102002.38991 10055886.21405 70383862.62090 226206.36310
max 23235673.00000 70.49774 103.26108 99.58956 2019.00000 100.00000 193785512.82000 218206233.90123 24916665.82553 191135846.85842 553230.30952
In [28]:
FFCalcFrameNum3 = FFCalcFrame3[['TotalBaseWaterVolume','TBV_Water_Weight', 'Prop_Weight_(lbs.)', 'FracFluidWeight_(lbs.)', 'Total_Frac_Weight_(lbs.)']]
FFpairplt = sns.pairplot(FFCalcFrameNum3)
FFpairplt
Out[28]:
<seaborn.axisgrid.PairGrid at 0x1bd098e3dd8>