Oil Field Manager is a project to demonstrate my abilities:
- To develop a single page application using React with proper routing settings;
- To visualize the information provided by the Completion and Production csv files;
- To maintain good user experience and performance while working with fairly large dataset;
- Provide the ability to search information associated with files and displays updated results.
Imagine you are a field engineer who manages oil wells and want to optimize the production of your field. In order to tune the advance ML models correctly, you want to explore historical dataset in order to understand the physical properties of the field better. You have the production records and completion records of the wells.
wellName | wellAPI | boreID | compSubId | Type | X | Y | TD | IsHorizontal | reservoir | faultBlock | compartment | maxBHP | long | lat |
---|
year | month | wellAPI | boreID | completionGroupSubId | bhp | oil | water | gas | waterInj | compl | flowDays | pressure | status |
---|
These files are related to each other by the following column definitions.
Completions Column | Production Column | |
---|---|---|
wellAPI | = | wellAPI |
boreID | = | boreID |
compSubId | = | completionGroupSubId |
This app provides you the ability to filter based on wells, reservoirs (wells that are next to each other could drill into different reserviors with completely different physical properities and thus have radically different outputs), and type in the main control area. They can control four views: the map, the list, the monthly crude oil production stream chart, and the aggregated gross production chart.
On the map, injectors and producers are marked by the water drop icon and oil rig icon. You can also see the relationship between the wells, as wells drilling from different reservoirs are marked by different color icons.
With the filter controls, you can explore the data details using the table. Due to size of the data, I set up the table with pages and virtual scrolling. You can sort the multiple colmns. For example, this shows you for well 18, what are the dates that it produced the most water.
Streamgraph shows the monthly crude oil production by different reserviors.
Gross production chart is a dual-axis chart that shows the monthly production of crude oil (in barrels), gas (in barrel equivalence), and water (in mscf) over time. It is the aggregated result from the selected wells and reserviors. (Only producers have production data).
You can use it on individual well to verify if the data makes sense.
You can select a group of wells, use the four views to cross verify your analysis, and remove noise wells, so you can get a higher quality dataset to train the ML model.
This app is built with create-react-app, with the following tools:
- Kendo React for components (https://www.telerik.com/kendo-react-ui/components/introduction/) and table view,
- Map-gl (https://visgl.github.io/react-map-gl/) for map and markers,
- Highcharts for charts
- React context and hooks for state management