Determining an activity state of a drilling tool

The method uses real-time sensor data and contextual information to efficiently determine the activity state of a drilling tool, addressing the inefficiencies of current methods by enhancing computational speed and accuracy in drilling operation segmentation.

WO2026128318A1PCT designated stage Publication Date: 2026-06-18SCHLUMBERGER TECH CORP +3

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
SCHLUMBERGER TECH CORP
Filing Date
2025-12-05
Publication Date
2026-06-18

Smart Images

  • Figure US2025058358_18062026_PF_FP_ABST
    Figure US2025058358_18062026_PF_FP_ABST
Patent Text Reader

Abstract

A method for determining an activity state of a tubular assembly in a wellbore includes receiving input data. The input data includes sensor data captured by a sensor at a drilling floor above the wellbore. The input data also includes contextual information including (1) a length and a type of the tubular assembly and (2) a well activity that is being performed using the tubular assembly. The method also includes determining a drill state based upon the input data. The method also includes determining the activity state of the tubular assembly based upon the well activity and the drill state.
Need to check novelty before this filing date? Find Prior Art

Description

Attorney Docket No.: IS24.1872-WODETERMINING AN ACTIVITY STATE OF A DRILLING TOOLCross-Reference to Related Applications

[0001] This application claims priority to U.S. Provisional Patent Application No. 63 / 729,994, filed on December 10, 2024, which is incorporated by reference.Background

[0002] Drill state segmentation refers to the identification of different drilling states (e.g., run in hole, circulation, pull out of hole, etc.) during a drilling operation. An activity state is a streaming algorithm that performs a segmentation task on top of drill state segmentation. It outputs several states to identify differences between the different rig activities. However, current methods for determining the activity state for a downhole tool are time-consuming and computationally- expensive. Therefore, what is needed is an improved system and method for determining the activity state for a drilling tool.Summary

[0003] A method for determining an activity state of a tubular assembly in a wellbore includes receiving input data. The input data includes sensor data captured by a sensor at a drilling floor above the wellbore. The input data also includes contextual information including (1) a length and a type of the tubular assembly and (2) a well activity that is being performed using the tubular assembly. The method also includes determining a drill state based upon the input data. The method also includes determining the activity state of the tubular assembly based upon the well activity and the drill state.

[0004] A computing system is also disclosed. The computing system includes one or more processors and a memory system. The memory system includes one or more non-transitory computer-readable media storing instructions that, when executed by at least one of the one or more processors, cause the computing system to perform operations. The operations include receiving input data. The input data includes raw sensor data captured by a sensor at a drilling floor above a wellbore. The raw sensor data includes a number of rotations per minute (RPM) of a tubular assembly, a flow rate through the tubular assembly, a depth of a drill bit below the tubular assembly, a torque on the tubular assembly, a vertical movement of the tubular assembly, or aAttorney Docket No.: IS24.1872-WO combination thereof. The tubular assembly is a drill string. The drill string includes a bottom hole assembly (BHA). The input data also includes contextual information including (1) a length and a type of the tubular assembly and (2) a well activity that is being performed using the tubular assembly. The well activity includes performing a first run of the tubular assembly in a section of the wellbore. The operations also include determining a drill state based upon the input data. The drill state is determined by conducting a time log analysis. The drill state is at a stand level. The operations also include automatically determining an activity state of the tubular assembly based upon the well activity and the drill state. The activity state is at a run level. The stand level is smaller than the run level.

[0005] A non-transitory computer-readable medium is also disclosed. The medium includes instructions that, when executed by one or more processors of a computing system, cause the computing system to perform operations. The operations include receiving input data. The input data includes raw sensor data captured by a sensor at a drilling floor above a wellbore. The raw sensor data includes a number of rotations per minute (RPM) of a tubular assembly, a flow rate through the tubular assembly, a depth of a drill bit below the tubular assembly, a torque on the tubular assembly, and a vertical movement of the tubular assembly. The tubular assembly includes a drill string. The drill string includes a bottom hole assembly (BHA). The input data also includes contextual information including (1) a length and a type of the tubular assembly and (2) a well activity that is being performed using the tubular assembly. The well activity includes performing a first run of the tubular assembly in a section of the wellbore. The operations also include determining a drill state based upon the input data. The drill state is determined by conducting a time log analysis. The drill state is at a stand level. The operations also include automatically determining the activity state of the tubular assembly based upon the well activity and the drill state. The activity state is at a run level. The stand level is smaller than the run level. The operations also include displaying an activity state. The activity state is displayed in a column or row with different bands representing different activity states. The different bands have different colors or shadings. The operations also include performing an action in response to the activity state. The action includes generating and / or transmitting a signal that recommends, instructs, or causes a physical action to occur at the drilling floor and / or in the wellbore. The physical action comprises switching to a different activity state.Attorney Docket No.: IS24.1872-WO

[0006] It will be appreciated that this summary is intended merely to introduce some aspects of the present methods, systems, and media, which are more fully described and / or claimed below. Accordingly, this summary is not intended to be limiting.Brief Description of the Drawings

[0007] The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments of the present teachings and together with the description, serve to explain the principles of the present teachings. In the figures:

[0008] Figure 1 illustrates an example of a system that includes various management components to manage various aspects of a geologic environment, according to an embodiment.

[0009] Figure 2 illustrates a log showing activity states of a drilling tool, according to an embodiment.

[0010] Figure 3 illustrates a chart showing the codes, names, and descriptions of a plurality of activity states, according to an embodiment.

[0011] Figure 4 illustrates a chart showing timekey, bit depth, and hole depth, according to an embodiment.

[0012] Figure 5 illustrates a chart showing timekey and IsOnBottom, according to an embodiment.

[0013] Figure 6 illustrates a chart showing timekey and BHARunEntry, according to an embodiment.

[0014] Figure 7 illustrates a chart showing timekey, BHARunEntry, and comments, according to an embodiment.

[0015] Figure 8, which illustrates a chart showing timekeys, according to an embodiment.

[0016] Figure 9 illustrates a chart showing timekey, step, and count (computed), according to an embodiment.

[0017] Figures 10A-10C illustrate a flowchart of a network of streaming operators, according to an embodiment.

[0018] Figure 11 illustrates a flowchart of a method for determining an activity state of a tubular assembly in a wellbore, according to an embodiment.

[0019] Figure 12 illustrates a wellsite with the tubular assembly extending from a drilling rig into the wellbore, according to an embodiment.Attorney Docket No.: IS24.1872-WO

[0020] Figure 13 illustrates a drilling log showing (from top to bottom) a well state, an activity state, a drill state, a rig state, and sensor data, according to an embodiment.

[0021] Figures 14A and 14B illustrate a plurality of scenarios including context, drill state, and activity state, according to an embodiment.

[0022] Figure 15 illustrates a schematic view of a computing system for performing at least a portion of the method(s) described herein, according to an embodiment.Detailed Description

[0023] Reference will now be made in detail to embodiments, examples of which are illustrated in the accompanying drawings and figures. In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the present disclosure. However, it will be apparent to one of ordinary skill in the art that the present disclosure may be practiced without these specific details. In other instances, well-known methods, procedures, components, circuits, and networks have not been described in detail so as not to unnecessarily obscure aspects of the embodiments.

[0024] It will also be understood that, although the terms first, second, etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first object or step could be termed a second object or step, and, similarly, a second object or step could be termed a first object or step, without departing from the scope of the present disclosure. The first object or step, and the second object or step, are both, objects or steps, respectively, but they are not to be considered the same object or step.

[0025] The terminology used in the description herein is for the purpose of describing particular embodiments and is not intended to be limiting. As used in this description and the appended claims, the singular forms “a,” “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will also be understood that the term “and / or” as used herein refers to and encompasses any possible combinations of one or more of the associated listed items. It will be further understood that the terms “includes,” “including,” “comprises” and / or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and / or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / orAttorney Docket No.: IS24.1872-WO groups thereof. Further, as used herein, the term “if’ may be construed to mean “when” or “upon” or “in response to determining” or “in response to detecting,” depending on the context.

[0026] Attention is now directed to processing procedures, methods, techniques, and workflows that are in accordance with some embodiments. Some operations in the processing procedures, methods, techniques, and workflows disclosed herein may be combined and / or the order of some operations may be changed.System Overview

[0027] Figure 1 illustrates an example of a system 100 that includes various management components 110 to manage various aspects of a geologic environment 150 (e.g., an environment that includes a sedimentary basin, a reservoir 151, one or more faults 153-1, one or more geobodies 153-2, etc ). For example, the management components 110 may allow for direct or indirect management of sensing, drilling, injecting, extracting, etc., with respect to the geologic environment 150. In turn, further information about the geologic environment 150 may become available as feedback 160 (e.g., optionally as input to one or more of the management components 110).

[0028] In the example of Figure 1, the management components 110 include a seismic data component 112, an additional information component 114 (e.g., well / logging data), a processing component 116, a simulation component 120, an attribute component 130, an analysis / visualization component 142 and a workflow component 144. In operation, seismic data and other information provided per the components 112 and 114 may be input to the simulation component 120.

[0029] In an example embodiment, the simulation component 120 may rely on entities 122. Entities 122 may include earth entities or geological objects such as wells, surfaces, bodies, reservoirs, etc. In the system 100, the entities 122 may include virtual representations of actual physical entities that are reconstructed for purposes of simulation. The entities 122 may include entities based on data acquired via sensing, observation, etc. (e.g., the seismic data 112 and other information 114). An entity may be characterized by one or more properties (e.g., a geometrical pillar grid entity of an earth model may be characterized by a porosity property). Such properties may represent one or more measurements (e.g., acquired data), calculations, etc.Attorney Docket No.: IS24.1872-WO

[0030] In an example embodiment, the simulation component 120 may operate in conjunction with a software framework such as an object-based framework. In such a framework, entities may include entities based on pre-defined classes to facilitate modeling and simulation. A commercially available example of an object-based framework is the MICROSOFT® .NET® framework (Redmond, Washington), which provides a set of extensible object classes. In the .NET® framework, an object class encapsulates a module of reusable code and associated data structures. Object classes may be used to instantiate object instances for use in by a program, script, etc. For example, borehole classes may define objects for representing boreholes based on well data.

[0031] In the example of Figure 1, the simulation component 120 may process information to conform to one or more attributes specified by the attribute component 130, which may include a library of attributes. Such processing may occur prior to input to the simulation component 120 (e.g., consider the processing component 116). As an example, the simulation component 120 may perform operations on input information based on one or more attributes specified by the attribute component 130. In an example embodiment, the simulation component 120 may construct one or more models of the geologic environment 150, which may be relied on to simulate behavior of the geologic environment 150 (e.g., responsive to one or more acts, whether natural or artificial). In the example of Figure 1, the analysis / visualization component 142 may allow for interaction with a model or model-based results (e.g., simulation results, etc.). As an example, output from the simulation component 120 may be input to one or more other workflows, as indicated by a workflow component 144.

[0032] As an example, the simulation component 120 may include one or more features of a simulator such as the ECLIPSE™ reservoir simulator (SLB, Houston Texas), the INTERSECT™ reservoir simulator (SLB, Houston Texas), etc. As an example, a simulation component, a simulator, etc. may include features to implement one or more meshless techniques (e.g., to solve one or more equations, etc.). As an example, a reservoir or reservoirs may be simulated with respect to one or more enhanced recovery techniques (e.g., consider a thermal process such as SAGD, etc ).

[0033] As an example, the simulation component 120 may include one or more features of a simulator such as SYMMETRY™ software (SLB, Houston, Texas). More particularly, SYMMETRY™ may process workflows in a single integrated environment with accurateAttorney Docket No.: IS24.1872-WO thermodynamic fluid representation and consistent modeling across multiple disciplines including process, production, and HSE. The simulator integrates steady-state and transient (e.g., dynamic) analyses that may be tailored for each domain. This approach enables users to optimize processes in upstream, midstream, and downstream sectors while maximizing profits and minimizing capital expenditures. It may also help reduce emissions, energy consumption, and waste.

[0034] As an example, the simulation component 120 may include one or more features of a simulator such as PIPESIM™ (SLB, Houston, Texas). More particularly, PIPESIM™ is steadystate multiphase flow simulator that incorporates the three areas of flow modeling: multiphase flow, heat transfer and fluid behavior.

[0035] As an example, the simulation component 120 may include one or more features of a simulator such as OLGA™ (SLB, Houston, Texas). More particularly, OLGA™ is a dynamic multiphase flow simulator that models transient flow (e.g., time-dependent behaviors) to maximize production potential. Transient modeling is a component for feasibility studies and field development design. Dynamic simulation is useful in deep water and is used in both offshore and onshore developments to investigate transient behavior in pipelines and wellbores. Transient simulation with the OLGA™ simulator provides an added dimension to steady-state analysis by predicting system dynamics, such as time-varying changes in flow rates, fluid compositions, temperature, solids deposition, and operational changes.

[0036] In an example embodiment, the management components 110 may include features of a commercially available framework such as the PETREL® seismic to simulation software framework (SLB, Houston, Texas). The PETREL® framework provides components that allow for optimization of exploration and development operations. The PETREL® framework includes seismic to simulation software components that may output information for use in increasing reservoir performance, for example, by improving asset team productivity. Through use of such a framework, various professionals (e.g., geophysicists, geologists, and reservoir engineers) may develop collaborative workflows and integrate operations to streamline processes. Such a framework may be considered an application and may be considered a data-driven application (e.g., where data is input for purposes of modeling, simulating, etc.).

[0037] In an example embodiment, various aspects of the management components 110 may include add-ons or plug-ins that operate according to specifications of a framework environment. For example, a commercially available framework environment marketed as the OCEAN®Attorney Docket No.: IS24.1872-WO framework environment (SLB, Houston, Texas) allows for integration of add-ons (or plug-ins) into a PETREL® framework workflow. The OCEAN® framework environment leverages .NET® tools (Microsoft Corporation, Redmond, Washington) and offers stable, user-friendly interfaces for efficient development. In an example embodiment, various components may be implemented as add-ons (or plug-ins) that conform to and operate according to specifications of a framework environment (e.g., according to application programming interface (API) specifications, etc.).

[0038] Figure 1 also shows an example of a framework 170 that includes a model simulation layer 180 along with a framework services layer 190, a framework core layer 195 and a modules layer 175. The framework 170 may include the commercially available OCEAN" framework where the model simulation layer 180 is the commercially available PETREL® model-centric software package that hosts OCEAN® framework applications. In an example embodiment, the PETREL® software may be considered a data-driven application. The PETREL® software may include a framework for model building and visualization.

[0039] As an example, a framework may include features for implementing one or more mesh generation techniques. For example, a framework may include an input component for receipt of information from interpretation of seismic data, one or more attributes based at least in part on seismic data, log data, image data, etc. Such a framework may include a mesh generation component that processes input information, optionally in conjunction with other information, to generate a mesh.

[0040] In the example of Figure 1, the model simulation layer 180 may provide domain objects 182, act as a data source 184, provide for rendering 186 and provide for various user interfaces 188. Rendering 186 may provide a graphical environment in which applications may display their data while the user interfaces 188 may provide a common look and feel for application user interface components.

[0041] As an example, the domain objects 182 may include entity objects, property objects and optionally other objects. Entity objects may be used to geometrically represent wells, surfaces, bodies, reservoirs, etc., while property objects may be used to provide property values as well as data versions and display parameters. For example, an entity object may represent a well where a property object provides log information as well as version information and display information (e.g., to display the well as part of a model).Attorney Docket No.: IS24.1872-WO

[0042] In the example of Figure 1, data may be stored in one or more data sources (or data stores, generally physical data storage devices), which may be at the same or different physical sites and accessible via one or more networks. The model simulation layer 180 may be configured to model projects. As such, a particular project may be stored where stored project information may include inputs, models, results and cases. Thus, upon completion of a modeling session, a user may store a project. At a later time, the project may be accessed and restored using the model simulation layer 180, which may recreate instances of the relevant domain objects.

[0043] In the example of Figure 1, the geologic environment 150 may include layers (e.g., stratification) that include a reservoir 151 and one or more other features such as the fault 153-1, the geobody 153-2, etc. As an example, the geologic environment 150 may be outfitted with any of a variety of sensors, detectors, actuators, etc. For example, equipment 152 may include communication circuitry to receive and to transmit information with respect to one or more networks 155. Such information may include information associated with downhole equipment 154, which may be equipment to acquire information, to assist with resource recovery, etc. Other equipment 156 may be located remote from a well site and include sensing, detecting, emitting or other circuitry. Such equipment may include storage and communication circuitry to store and to communicate data, instructions, etc. As an example, one or more satellites may be provided for purposes of communications, data acquisition, etc. For example, Figure 1 shows a satellite in communication with the network 155 that may be configured for communications, noting that the satellite may additionally or instead include circuitry for imagery (e.g., spatial, spectral, temporal, radiometric, etc.).

[0044] Figure 1 also shows the geologic environment 150 as optionally including equipment 157 and 158 associated with a well that includes a substantially horizontal portion that may intersect with one or more fractures 159. For example, consider a well in a shale formation that may include natural fractures, artificial fractures (e.g., hydraulic fractures) or a combination of natural and artificial fractures. As an example, a well may be drilled for a reservoir that is laterally extensive. In such an example, lateral variations in properties, stresses, etc. may exist where an assessment of such variations may assist with planning, operations, etc. to develop a laterally extensive reservoir (e.g., via fracturing, injecting, extracting, etc.). As an example, the equipment 157 and / or 158 may include components, a system, systems, etc. for fracturing, seismic sensing, analysis of seismic data, assessment of one or more fractures, etc.Attorney Docket No.: IS24.1872-WO

[0045] As mentioned, the system 100 may be used to perform one or more workflows. A workflow may be a process that includes a number of worksteps. A workstep may operate on data, for example, to create new data, to update existing data, etc. As an example, a may operate on one or more inputs and create one or more results, for example, based on one or more algorithms. As an example, a system may include a workflow editor for creation, editing, executing, etc. of a workflow. In such an example, the workflow editor may provide for selection of one or more predefined worksteps, one or more customized worksteps, etc. As an example, a workflow may be a workflow implementable in the PETREL® software, for example, that operates on seismic data, seismic attribute(s), etc. As an example, a workflow may be a process implementable in the OCEAN® framework. As an example, a workflow may include one or more worksteps that access a module such as a plug-in (e g., external executable code, etc.).Determining an Activity State for a Drilling Tool

[0046] The method described herein delivers an activity state segmentation while streaming input data to differentiate between several known activities. This relies on upstream drill state segmentation, raw sensor data (e.g., RPM, flow, bit depth, torque, etc.), and user-provided contextual data while streaming. The user-provided contextual information may be related to the bottom hole assembly (BHA) run, the tubular assembly, and the wellbore geometry to determine the output activity with the help of an internal state machine. The method uses multiple levels of buffering to produce the activities in the streaming order once it may take a decision. Dynamic compression and pre-processing segmentation may be used to reduce the memory footprint of the internal state of the algorithms.

[0047] The method provides operation segmentation activity to run algorithms when used for a specific operation type. This allows specific processes to run and alarms to be sent if relevant to the current operation. Conventional methods are based upon the analysis of signals with an appropriate cutoff. In contrast, the method described herein, in conjunction with real-time data, determines the succession of states at a higher resolution level to qualify an operation. The method uses a plan well schematic and real-time surface data to determine the operation states.

[0048] Figure 2 illustrates a log showing activity states of a drilling tool, according to an embodiment. The activity state(s) may be determined based upon one or more inputs including drill state, bit depth, hole depth, RPM, surface torque, mud flow rate, bottom hole assembly (BHA)Attorney Docket No.: IS24.1872-WO run, tubular, wellbore geometry, or a combination thereof. The output(s) may include the activity state(s) code. Figure 3 illustrates a chart showing the codes, names, and descriptions of a plurality of activity states, according to an embodiment.

[0049] In one embodiment, "casing" hole casing types contain the following WITSML casing types:• Blowout preventer• Casing• Conductor• Curved conductor• Liner• TubingDebugging and utility outputs• Latency [ms] algorithm latency: at time t, ActivityState[t] has been produced when the algorithm received the input at time t + Latency [t]. This does not take the latency of upstream operations into consideration.• IsLinerString* [bool]• IsCasingString* [bool]• BhaLength* [m] current bha length computed by the algorithm.• IsWithinRigStateDrillingThresholds [bool] tells if the algorithm considers the flow, rpm, mud flow rate, and torque to satisfy the "drilling cement" condition. This may be used to discriminate the (e.g., best) candidates of the automatic 'top of cement' detection.• IsOnBottom [bool] tells if the algorithm considers that the bit is on bottom.[ENG] Memory diagnostics outputs• Buffered element count [unitless] indicates the number of elements that would be in the buffers waiting for new drill state information before being consumed and used to compute the next activity state. This indicates the benefit of segment compression as it is proportional to the memory consumption of the algorithm if there was no such optimization.Attorney Docket No.: IS24.1872-WO• Total segments count [unitless] indicates the total number of segments in memory. This is proportional to the actual memory consumption of the algorithm (after optimization). This is the sum of the other segment counts below.• Drillstate segments count [unitless] indicates the number of distinct drill state segments over the waiting time sequence in memory.• IsWithinRigStateDrillingThresholds segments count [unitless] indicates the number of distinct IsWithinRigStateDrillingThresholds segments over the waiting time sequence in memory.• IsOnBottom segments count [unitless] indicates the number of distinct IsOnBottom segments over the waiting time sequence in memory.• IsBhaLengthGreaterThanBitDepth segments count [unitless] indicates the number of distinct IsBhaLengthGreaterThanBitDepth segments over the waiting time sequence in memory.Other debugging and utilities outputs• IsFirstDrillingBhaOfSection* [bool]• IsRiserActivity* [bool]• IsCasingActivity* [bool]• IsOpenHole Activity* [bool]• LastSectionTnitialTopOfCement* [m], This is the last top of cement that the algorithm has been able to calculate. It is reset to unknown as soon as IsFirstDrillingBhaOfSection transitions from false to true again.Algorithm-specific considerations regarding contextual data and outputs to help diagnose data races related to late contextual data updates

[0050] Contextual data may undergo user changes while streaming which may impact results which have already been produced in the past. However, the algorithm (e.g., Rhapsody®) may not support automatic rewrite of past impacted results. If such an update / rewrite is useful, the user may request a re- computation explicitly on the relevant bhaRuns.

[0051] Therefore, in order to maximize the maturity of the contextual data which is used by activity state, most of the information which is directly or indirectly derived / dependent onAttorney Docket No.: IS24.1872-WO contextual data may be evaluated at the latest possible time by the algorithm. This means that the activity state algorithm may "pull" the contextual data information when the other contextual- independent computations have been done. This is the opposite of the "pushing" paradigm of the aligned channels being normally received. This is the point in time when a batch of activity state is about to be released, and contextual-data-dependent information is used to take the final decision on the output code. Some information derived from contextual data which is used by the algorithm may include:• IsLinerString*• IsCasingString*• BhaLength*• IsFirstDrillingBhaOfSection*• IsRiser Activity*• IsCasingActivity*• IsOpenHoleActivity*• LastSectionlnitialTopOfCement*

[0052] Because contextual data may be modified with some delay in the algorithm, some additional outputs may be produced to diagnose data races that may lead to strange results due to late updates in contextual data which were not captured in time while streaming. Hence, the output items above (e.g., derived from contextual data) may be declined in two versions. One version is real-time / RT. This is the value derived from the contextual data known in real time / when a new incoming input has just been received by the actor / service. The second version is #MaximizeContextualDataConsumptionDelay. This second version is consumption time / activity state release time. This is the version derived from the contextual data known at the point in time where the value would be consumed by activity state. This is done at the last moment before releasing activity state in order to maximize the maturity of the contextual data that ends up being used.

[0053] In an example, if BhaLength RT is different than BhaLength OnActivityStateReleased, this means that the contextual data has been updated in such a way that the evaluated value of BhaLength has changed between real time and activity state release time. This is a situation where a user may affirm there was a data race between the user-induced contextual data modification and its possible consumption by the algorithm. If on top of that, the " USEDFLAG" output is true,Attorney Docket No.: IS24.1872-WO the user may affirm that this would have impacted the output value. In such cases, should drill state or activity state have had a smaller latency, the result would have been worse because of the lower maturity of the contextual data.

[0054] These outputs may not report late impacting changes if they are 'too late'. In an embodiment (referred to as #LimitedVisibilityOfBhaRunUpdates), the tubular changes related to any BhaRun prior to the last BhaRun are not reported. These changes are invisible from the point of view of the algorithm. The BhaRun information is received point by point, as a sequence of immutable start / stop. In the algorithm, a BhaRun is nothing but a 'start time' and an 'end time' pair that may be referred to by other contextual info. With k being the k_th bha run, the algorithm may have stop_time[k-l] > start_time[k-l], and start_time[k] > stop_time[k-l]. The algorithm receives the information related to the latest BhaRun k, and the BhaRun start and stop time may not change once received. In other words, if late DB changes occur in such a way that they have an impact on the real-time observed BhaRun sequence for any timekey preceding the latest received algorithm timekey, the algorithm may remain ignorant of it. The tubular information communicated to the algorithm may be related to the current / latest ongoing BhaRun by design.

[0055] In another embodiment, if they are related to activity states which have already been released, impacting changes may not be reported either. This may be improved by adding other debug channels and / or objects, but the relevance of such information may be limited by #LimitedVisibilityOfBhaRunUpdates.

[0056] The information IsFirstDrillingBhaOfSection* may be particularly sensitive to late updates, considering that it depends on the current state of the wellbore geometry segment that the current BhaRun refers to, and on the history of past wellbore geometry sections related to the past sequence of BhaRuns. Therefore, for this information to be accurate, the algorithm may capture an accurate history of the wellbore geometry segments related to the consecutive BhaRuns over time. #LimitedVisibilityOfBhaRunUpdates may easily be the limiting factor regarding the correctness of this information.Other helping outputs

[0057] Each output marked with an asterisk also has a " USEDFLAG" output flag channel telling whether the reported value was actually used or not to take the decision on activity state. If this flag is set to 1, and if there is a difference between the "OnActivityStateReleased" and "_RT"Attorney Docket No.: IS24.1872-WO versions of such an output, this is a confirmed case of data race which has an impact on the final activity state result.[ENG] Delay & memory management

[0058] In the algorithm, the complete algorithm state may have the ability to be saved upon request at any point in time in case load balancing has to be done. In such an event, the algorithm is re-instantiated from scratch and the saved state is deserialized and restored / reinjected. Therefore, the memory footprint of the state may remain minimal. State serialization / deserialization consumes time and should not be the bottleneck of the algorithm performance. Large states may easily cause computation and serialization to take more time than the computation period, thus, causing the system not to be able to keep up with the input streams, which in turn, causes increasing latencies and message accumulation compromising the entire system.

[0059] Therefore, to avoid storing too many raw values with high entropy until drill state is ready, which is problematic when:• Drill state has high latency.• Different distinct drill state transitions are used to take a decision on the final activity state output value.

[0060] Some intermediate values may be precomputed in real-time and stored as segments.

[0061] For instance, after a potentially long time "deltaT" (e.g., once the sequence of received drill states is recognized by activity state as a sequence for which it may take a decision in terms of output activity state code), a user may want to know if the bit is on bottom. Instead of caching the real-time-received values of bit depth and hole depth for a duration of deltaT, the method may precompute it and store the result in a dedicated IsOnBottom storage. This may be incrementally updated and consumed, while storing data in a compressed form.

[0062] "Pending" bit depth and hole depth storage buffered BEFORE optimization (e g., stored in buffers to compute IsOnBottom much later in the stream). Figure 4 illustrates a chart showing timekey, bit depth, and hole depth, according to an embodiment.

[0063] "Pending" storage AFTER optimization (e.g., IsOnBottom is precomputed and stored in a compressed segment form). Figure 5 illustrates a chart showing timekey and IsOnBottom, according to an embodiment.Attorney Docket No.: IS24.1872-WO

[0064] IsBhaLengthGreaterThanBitDepth is unique as it is computed before releasing activity state result, despite depending on BhaLength information which is derived from contextual data. Therefore, the level of maturity of BhaLength is not maximized before being consumed and used. This is an exception to avoid accumulating Bit Depth values until the activity state is ready to output. This may lead to inconsistencies in other places where BhaLength is used.

[0065] A potential improvement is "smart cache storage and queries upon cache miss." To avoid these kinds of inconsistencies while at the same time avoiding storing too much data in the cache for delayed input consumption, the algorithm may query the database for past values. However, this very querying principle may cause further inconsistencies. For example, the entire streaming network subset consuming the queried input should be updated in consequence. In this case for example, bit depth values could have changed in the past compared to the initial run, the local update of the output of one single computation within the streaming network of operators may cause further divergences and inconsistencies, as other consumers have not been updated with the latest values. The likelihood of such divergences has increased with the support of user-driven recomputation requests which modify past results in-place in the database.

[0066] Therefore, to increase consistency, the entire system may support synchronized recomputations for the dependencies of the queried items (e.g., "Pull support for state recovery"). Most of the time, this involves the sequence of the local and global states for each operator to be queryable as well, so they should be persisted outputs.[ENG] Reaction to received contextual data updates

[0067] The algorithm keeps in memory the list of received bhaRuns in terms of "start and stop" received as timekeys by the algorithm. Since the reception of the BhaRun information may be delayed, although BhaRun changes may not overlap with already-received BhaRuns from the past (#NoBhaRunOverlap), the method may still have scenarios where new BhaRun information has some impact on some past computed points.

[0068] Figure 6 illustrates a chart showing timekey and BHARunEntry, according to an embodiment. More particularly, considering that BhaRun 1 was received at timekey 0, and BhaRunl. FINAL at timekey 4999, if the current timekey is 6000, the storage may be seen in Figure 6.Attorney Docket No.: IS24.1872-WO

[0069] If the current timekey is 6000, the algorithm may still receive, at timekey 6001, a BHARun object with ‘StartTime’ equal to 5525.7. This still respects #NoBhaRunOverlap. If such a scenario occurs, the intended storage may be as shown in Figure 7.

[0070] Figure 7 illustrates a chart showing timekey, BHARunEntry, and comments, according to an embodiment. The current timekey may be 6001. In order to be able to update the storage in such a way, the list of the received timekeys / reference values received so far by the algorithm may be stored in the ReferenceValues objects. To overcome the same storage limitations, this storage may also be done in a compressed form, as shown in Figure 8, which illustrates a chart showing timekeys, according to an embodiment. This may be stored in a compressed “ReferenceValues” data structure, as shown in Figure 9. More particularly, Figure 9 illustrates a chart showing timekey, step, and count (computed), according to an embodiment.

[0071] This also allows the method to debug some situations and keep track of what is the next expected timekey to be received for delayed downstream algorithm. An error / exception / recover may be reported from empty state in case of mismatch / misalignment.

[0072] This structure is updated incrementally for each new incoming point in real time, and it supports continued iteration while appending. From client code, it may also be used just like a list of the exhaustive values, as it is indexable and implements the IReadOnlyList interface.

[0073] This scales well in memory in the context of the algorithm, considering that the sampling rate is supposed to remain the same for the complete duration of the well (e.g., with a few rare exceptions).

[0074] Using this compact structure, the method may easily and precisely update the BhaRun information table with the relevant timekeys even for BhaRun information arriving too late, while maintaining a small memory footprint.

[0075] In order to properly map the BHARuns onto the correct wellbore geometry section (e.g., = WellboreDiameterSegment in the algorithm), there may be a constant update of best candidate section that should be related to the current BhaRun.

[0076] The complete wellbore geometry may be kept in cache and updated when receiving new information. When a new wellbore geometry is received, the wellbore-geometry-derived information may be reevaluated across the BHA runs (e.g., due to #LimitedVisibilityOfBhaRunUpdates regarding BhaRun and tubular info). Otherwise, when a BhaRun boundary changes, the wellbore-geometry-derived information should be reevaluatedAttorney Docket No.: IS24.1872-WO across the two last bha runs. Otherwise, the wellbore geometry may be reevaluated for the last bha run only to take the latest timekey into account in order to find the mapped segment.

[0077] IsFirstDrillingBhaOfSection* may be sensitive to the timeliness and accuracy of the contextual data seen by the algorithm over time, and some algorithm limitations may now be the limiting factor for the accuracy of this information.Streaming - Integration and topology of the network of streaming operators - consumable information derived from contextual data

[0078] Figure 10 illustrates a flowchart of a network of streaming operators, according to an embodiment.Tubular: IsLinerString

[0079] In the algorithm, True if at least one component part of the current tubular assembly at the time of evaluation contains at least one component which is assignable to one of the two well- known liner subtypes defined in the library Drilling.DataObject. Tubular:• Drilling. DataObject.Tubular.LinerRunningTool• Drilling. DataObject.Tubular.LinerHangerEquipment -no other check is made based on the textual descriptive content of the component.Tubular: IsCasingString

[0080] In the algorithm, True if the tubular assembly type enumeration value related to the current tubular assembly at the time of evaluation is equal to"TubularAssemblyTypeEnum. Casing." No check is made based on the component runtime type nor from the textual descriptive content of the component. This approach is known to be inaccurate sometimes because of incomplete or incorrect tubular information. However, it favors missed "IsCasingString" detections instead of false positive ones (which have a more severe impact).

[0081] False positive detections used to happen with the past approach based on the individual runtime types of the components inside the tubular. For instance, the "Crossover" component type is used in DRILLING activities but is defined as a subtype of "CasingFamilyTool" which lead to a false positive.Attorney Docket No.: IS24.1872-WOTubular: BhaLength

[0082] The cumulative length of the tubular components from the bottom of the bit / bottommost component up to the bottom of the first drill pipe element above the jar. If there is no jar or if there is no drill pipe element above the jar, this may be the cumulative length of the tubular components from the bottom of the bit / bottommost element up to the bottom of the first non-heavyweight drillpipe.

[0083] A component is identified as ajar if it is assignable to the well-knownjar subtype defined in the library Drilling.DataObject.Tubular: Drilling.DataObject.Tubular.Jar.

[0084] A component is identified as a drill pipe if it is assignable to the well-known drillpipe subtype defined in the library Drilling.DataObject.Tubular: Drilling. DataObject.Tubular.DrillPipe.

[0085] A component is identified as a heavyweight drill pipe if it is assignable to the well-known heavyweight drillpipe subtype defined in the library Drilling.DataObject.Tubular: Drilling. DataObject.Tubular.HWDP.Wellbore geometry: IsFirstDrillingBhaOfSection

[0086] At the time of evaluation, the current WellboreGeometrySegment object returned by the algorithm (e.g., comparable to the concept of WITSML sections) is flagged as "openHole" and has a decrease in outer diameter value compared to the last drilled section. This may be used to trigger a reset for the value of "LastDrilledSectionlnitialTopOfCement". The new "top of cement" may be searched again starting from this point in time (e.g., as soon as IsFirstDrillingBhaOfSection transitions from false to true). The real-time updated list of potential candidates satisfy the condition IsWithinRigStateDrillingThresholds (e.g., condition on the flow, rpm, and torque).Wellbore geometry: IsRiser Activity

[0087] At the time of evaluation, the current WellboreGeometrySegment object returned by the algorithm is flagged as riser.Wellbore geometry: IsCasingActivity

[0088] At the time of evaluation, the current WellboreGeometrySegment object returned by the algorithm is flagged as casing.Attorney Docket No.: IS24.1872-WOWellbore geometry: IsOpenHol eActivity

[0089] At the time of evaluation, the current WellboreGeometrySegment object returned by the algorithm is flagged as openhole.Information computed in real timeRT : SatisfiesRigStateDrillingConditions

[0090] Consumed by ActivityState when searching for the top of cement - This is a condition on the FLOW, the RPM, and the TORQUE to select potential bit depth candidates for the top of cement. The received aligned data may be carried forward for up to 1 minute in case of missing values. The current condition is: FLOW is greater than FLOWLIMIT AND either: RPM is greater than RPMLIMIT or TORQUE is greater than TORQUELIMIT

[0091] Current hardcoded values: RPMLIMIT = 10 c / min; FLOWLIMIT = 0.01 m3 / s; TORQUELIMIT = 1000 N.m.

[0092] As discussed, it may be better to reuse the dynamic cutoffs computed by autostate engine. The results may be stored in a compressed and segmented form until they are ready to be consumed by activity state.RT: IsOnBottom

[0093] Precomputed Boolean value - True if the bit depth (e g., after heave correction of bottom if applicable and carry forward of the result for up to 1 minute) is strictly equal to the hole depth. The results may be stored in a compressed segmented form until they are ready to be consumed by activity State.Computation upon release of drill state: ActivityState. Drill StateBuffering

[0094] This part happens in several steps:1. Bha length (derived from contextual data) is consumed in order to precompute IsBitDepthGreaterThanBhaLength. Technically, BhaLength should be consumed later in order to maximize its maturity (see #MaximizeContextualDataConsumptionDelay), but this would involve caching the bit depth values for a long time. Doing this early allows to cache the segmented result which takes a lot less space in memory, (seeAttorney Docket No.: IS24.1872-WO#BhaLengthConsumptionIsTooEarly). When the result is false, this may be used to output the MU BHA and LD BHA states later downstream.2. If the activity state is currently searching for the top of cement (see IsFirstDrillingBhaOfSection), the 'potential top of cement' is set if IsWithinRigStateDrillingThresholds is true.3. The result of the comparison between 'bit depth' and 'potential top of cement' is appended in the compressed segment storage IsBitDepthGreaterThanPotentialTopOfCement for later consumption.4. The latest inbound drill state value is consumed, leading to several possibilities (disjunction): a. The latest inbound drill state code is drilling, nodrilling, or afterconnection i. There are no pending points (real time) => Activity State. Final(DRILLING) activity state may be output for the current / latest timekey. ii. The previous drill state code / the drill state code related to the last pending point is different from afterconnection => The complete set of pending points may be flushed as:Activity State. Final(UNKNOWN) activity and the latest / current timekey may be output as ActivityState.Final(DRILLING). iii. The previous drill state sequence associated with pending points is [Drilling ->] preconn -> conn [-> AfterConn] => The complete set of pending points may be flushed as ActivityState. Final (DRILLING) activity and the latest / current timekey may be output as ActivityState.Final(DRILLING) as well. iv. For the other cases => The complete set of pending points may be flushed as ActivityState.Final (UNKNOWN) activity and the latest / current timekey may be output as ActivityState.Final(DRILLING). b. The latest inbound drill state code is pulled out of hole (Pooh): i. There are no pending points (no delay on top of drill state) => the result of ActivityState.Final(ActivityState.BufferFlushedOrFlushing.POOH(x)) may be output for the current / latest timekey.Attorney Docket No.: IS24.1872-WO ii. The previous drill state code / the drill state code related to the last pending point is different from connection => The complete set of pending points may be flushed as ActivityState.Final(UNKNOWN) and the latest / current timekey may be output with the result ofActivity State.Final(ActivityState.BufferFlushedOrFlushing.POOH(x)). iii. The previous drill state code / the drill state code related to the last pending point is connection: a. The previous drill state sequence associated with pending points is[Drilling->] Precon->Conn [->Pooh] => The pending points within the Precon may be flushed as ActivityState. Final(CirculationBottom), the remaining ones, including latest / current timekey may be output with the result ofActivity State.Final(ActivityState.BufferFlushedOrFlushing.POOH(x)). b. For the other cases => The pending points before the connection (if any) may be flushed as ActivityState.Final(UNKNOWN), the remaining ones, including the connection and the latest / current timekey may be output with the result ofActivity State.Final(ActivityState.BufferFlushedOrFlushing.POOH(x)). c. The latest inbound drill state code is Rih i. There are no pending points (no delay on top of drill state) => the result of Activity State.Final(ActivityState.BufferFlushedOrFlushing.RIH(x)) may be output for the current / latest timekey. ii. The pending drill state code sequence / the drill state codes related to the set of the current pending points is the connection and the processed drill state preceding the connection was Rih => the points, including pending ones and the latest / current timekey may be flushed and output with the result of Activity State.Final(ActivityState.BufferFlushedOrFlushing.RIH(x)). iii. For the other cases => The complete set of pending points may be flushed asActivityState.Final(UNKNOWN) activity and the latest / current timekey may be output with the result ofActivityState.Final(ActivityState.BufferFlushedOrFlushing.RIH(x)).Attorney Docket No.: IS24.1872-WO d. The latest inbound drill state code is Wiper: i. There are no pending point (no delay on top of drill state) => the result of ActivityState.Final(ActivityState.BufferFlushedOrFlushing.Wiper(x)) may be output for the current / latest timekey. ii. The pending drill state code sequence / the drill state codes related to the set of the current pending points is the connection and the processed drill state preceding the connection was Rih or Pooh (expecting either [Rih ->] conn [-> WIPER] or [Pooh ->] conn [-> WIPER]) => the pending connection points may be flushed as ActivityState.Final(Circulation), and the latest / current timekey may be flushed and output with the result ofActivityState.Final(ActivityState.BufferFlushedOrFlushing.Wiper(x)). iii. For the other cases => The complete set of pending points may be flushed asActivityState.Final(UNKNOWN) activity and the latest / current timekey may be output with the result ofActivity State.Final(ActivityState.BufferFlushedOrFlushing.Wiper(x)). e. For the other cases, append the latest inbound point to the list of pending points as no decision may be taken yet.Computation upon identification of a sufficient drill state sequence

[0095] Activity State. BufferFlushedOrFlushing

[0096] When the sequence of drill states code received over time has been identified, several intermediate processing functions may be applied on the pending input points being flushed before outputting the final activity state in ActivityState. Final.ActivityState.BufferFlushedOrFlushing.POOH

[0097] Reads the value of the precomputed IsBhaLengthGreaterThanBitDepth. If true, it may output the result may be LayDownBha. Otherwise, it may be Pooh. Within the calling context, this result may be passed to Activity State. Final function to output the final activity state value.ActivityState.BufferFlushedOrFlushing.RihAttorney Docket No.: IS24.1872-WO

[0098] Reads the value of the precomputed IsBhaLengthGreaterThanBitDepth. If true, it may output MakeUpBha. Otherwise, it may outputActivite.BufferFlushedOrFlushing.Rih.RihNonMakeUpBha(x). Within the calling context, this result may be passed to ActivityState. Final function to output the final activity state value.Activity. BufferFlushedOrFlushing.Rih.RihNonMakeUpBha

[0099] Reads the value of IsFirstDrillingBhaOfSection. If the value is true now, but was not the case for the previous point, resets the LastSectionlnitialTopOfCement because it has to be searched again. Also, another internal state HasDrilledlnSection is reset to false. After that, if IsFirstBhaOfSection is currently true, it may output Activity State.BufferFlushedOrFlushing.Rih.RihNonMakeUpBha.FirstDrilllingBhaOfSection(x). Otherwise, (e g., if IsFirstBhaOfSection is currently false), it may output Rih. Within calling context, this result may be passed to ActivityState. Final function to output the final activity state value.ActivityState.BufferFlushedOrFlushing.Rih.RihNonMakeUpBha.FirstDrilllingBhaOfSection

[0100] Step-by-step logical description of the function: a. IsOnBottom is true now: i. SatisfiesRigStateDrillingConditions is true => may return Circulation ii. SatisfiesRigStateDrillingConditions is false and LastSectionlnitialTopOfCement is known => may return CutCement b. IsOnBottom is false now: i. HasDrilledlnSection is true, (meaning already output ACTIVITY STATE = drilling in for the current section: we may no longer be drilling in cement) => may return Rih ii. HasDrilledlnSection is false a. SatisfiesRigStateDrillingConditions is true and LastSectionlnitialTopOfCement is unknown => LastSectionlnitialTopOfCement is set to the current bit depth, and CutCement may be returned.Attorney Docket No.: IS24.1872-WO b. LastSectionlnitialTopOfCement is known, and IsBitDepthGreaterThanPotentialTopOfCement is true => may return CutCement. c. For the other cases, may return Rih

[0101] Within the calling context, this result may be passed to Activity State. Final function to output the final activity state value.Activity State.BufferFlushedOrFlushing, Wiper

[0102] Reads the value of the precomputed IsOnBottom. If true, it may output CirculationBottom activity state. Otherwise, it may output Circulation. Within the calling context, this result may be passed to ActivityState. Final function to output the final activity state value.Activity State.Final

[0103] This is the final stage of the activity state algorithm, where the contextual data is finally read (e.g., except for BhaLength, see #BhaLengthConsumptionIsTooEarly). Considering a call to ActivityState.Final(x), in order:

[0104] If IsRiser Activity is evaluated to true (defaults to false if may not be evaluated) => RISER activity state code may be output. If IsCasingActivity is evaluated to true (defaults to false if may not be evaluated) => CASING activity state code may be output. If IsOpenHol eActivity is evaluated to false (defaults to true if may not be evaluated) => UNKNOWN activity state code may be output. If IsCasingString is evaluated to true (defaults to false if may not be evaluated) => CsgRun RIH casing activity state code may be output. If IsLinerString is evaluated to true (defaults to false if may not be evaluated) => CsgRun RIH liner activity state code may be output. The nominal case: the input 'x' activity state code given as an input of this function may be output 'as is' (If x is Drilling, HasDrilledlnSection may be set to 'true' as well).Other known facts, issues and limitations1. Incorrect drill states code or incorrect drill state sequences may lead to wrong activity state results. Fixing the drill state may allow for a better activity state in some cases.2. Activity state adds another delay on top of drill state computation, and is subject to data races regarding contextual data, (see #MaximizeContextualDataConsumptionDelay).Attorney Docket No.: IS24.1872-WO3. BhaLength is not consumed at the latest possible time (see #BhaLengthConsumptionIsTooEarly), and making autostate stream -friendly may make this worse, as a user may not be able to rely on cached input data to cache the result of the precomputed IsBhaLengthGreaterThanBitDepth after drill state is released. It may have to be done before that (e.g., actually in real time).4. WBG-related contextual data consumption is not implemented yet in the algorithm.5. If output codes are subject to change or if they overlap too much (e.g., meaning that consumers of activity state codes have to test for several codes to check one single condition / they would ideally want a different type of segmentation), then the code itself may not be public. Instead, the output code may be an implementation detail and more meaningful services may be exposed directly: IsRih, IsPooh, IsDrillingCement, etc. A problem remains for consumers of the activity state channel outside of the algorithm: after importing the results in Techlog for instance, a deserialization / conversion library should be delivered to match with given service / underlying code versions, so that Techlog® may make sense of the results and convert them to the relevant values to be stored. This is the common software problem regarding version control of serializable object.Exemplary Method

[0105] Figure 11 illustrates a flowchart of a method for determining an activity state of a tubular assembly in a wellbore, according to an embodiment. An illustrative order of the method 1100 is provided below; however, one or more portions of the method 1100 may be performed in a different order, simultaneously, repeated, or omitted. At least a portion of the method 1100 may be performed with a computing system (described below). Figure 12, 13, 14A, and 14B illustrate portions of the method 1100. More particularly, Figure 12 illustrates a wellsite 1200 with a tubular assembly 1240 extending from a drilling rig 1210 into a wellbore 1230, according to an embodiment. Figure 13 illustrates a drilling log 1300 showing (from top to bottom) a well state 1350, an activity state 1340, a drill state 1330, a rig state 1320, and raw sensor data 1310, according to an embodiment.

[0106] The method 1100 includes receiving input data, as at 1110. The input data may include (e.g., raw) sensor data 1310 captured by one or more sensors 1220. The one or more sensors 1220 may be positioned at a drilling floor 1270 above the wellbore 1230 and / or by the BHA 1250 in theAttorney Docket No.: IS24.1872-WO wellbore 1230. The raw sensor data 1310 may include a number of rotations per minute (RPM) of the tubular assembly 1240, a flow rate through the tubular assembly 1240, a depth of a drill bit 1260 below the tubular assembly 1240, a torque on the tubular assembly 1240, a vertical movement of the tubular assembly 1240, or a combination thereof. The tubular assembly 1240 may be or include a drill string, a liner string, a casing string, or a combination thereof. The drill string may include (or have coupled thereto) the bottom hole assembly (BHA) 1250.

[0107] The raw sensor data 1310 may also or instead include contextual information including (1) a length and / or a type of the tubular assembly 1240 and / or (2) a well activity that is being performed using the tubular assembly 1240. The well activity may be or include performing a first run of the tubular assembly 1240 in a section of the wellbore 1230.

[0108] The method 1100 may also include determining a drill state 1330 based upon the input data, as at 1120. The drill state 1330 may be determined by conducting a time log analysis. The drill state 1330 may be at a stand level.

[0109] The method 1100 may also include automatically determining the activity state 1340 of the tubular assembly 1240 based upon the well activity and / or the drill state 1330, as at 1130. The activity state 1340 is at a run level. The stand level is smaller than the run level.

[0110] The method 1100 may also include displaying the activity state, as at 1140. The activity state 1340 may be displayed in a column or row with different bands representing different activity states. The different bands have different colors or shadings. Table 1 below illustrates codes, names, and descriptions of different activity states. Each row may have its own color or shading in the activity state 1340.Attorney Docket No.: IS24.1872-WO

[0111] The method 1100 may also include performing an action in response to the well activity, the drill state, the activity state, or a combination thereof, as at 1150. The action may include generating and / or transmitting a signal that recommends, instructs, or causes a physical action to occur at the drilling floor 1270 and / or in the wellbore 1230. The physical action may be or include switching to a different activity state. For example, in response to determining that the activity state is “make up or lay down BHA,” the physical action at the rig site may include the selection and / or assembly of the BHA equipment. In another example, in response to determining that the activity state is running in hole casing, the physical action at the rig site may include the selection or assembly of the casing equipment.

[0112] Figures 14A and 14B illustrate a plurality of scenarios including contextual information, drill state, and activity state, according to an embodiment. In a first example, the tubular assembly 1240 may be or include a liner, the drilling state may be or include the liner not being run into the wellbore 1230 to a depth of the wellbore 1230 minus a first predetermined amount, and the activity state may be determined to be surface activity. The first predetermined amount is between about 25 meters to about 35 meters (i.e., the length of a stand of the tubular assembly 1240). The surface activity may include BOP testing, wireline or rig maintenance, etc.

[0113] In another example, the tubular assembly 1240 may be or include the liner, the drilling state may be or include the liner being run into the wellbore 1230 to a depth of the wellbore 1230 minus the first predetermined amount, and the activity state may be determined to be running the liner into the wellbore 1230.

[0114] In another example, the tubular assembly 1240 may be or include a casing, the drilling state may be or include the casing not being run into the wellbore 1230 to a depth of the wellbore minus the first predetermined amount, and the activity state may be determined to be surface activity.Attorney Docket No.: IS24.1872-WO

[0115] In another example, the tubular assembly 1240 may be or include the casing, the drilling state may be or include the casing being run into the wellbore 1230 to a depth of the wellbore 1230 minus the first predetermined amount, and the activity state may be determined to be running the casing into the wellbore 1230.

[0116] In another example, the tubular assembly 1240 may be or include the BHA 1250, the drilling state may be or include the BHA 1250 not being run into the wellbore 1230 to a length of the BHA 1250, and the activity state may be determined to be surface activity.

[0117] In another example, the tubular assembly 1240 may be or include the BHA 1250, the drilling state may be or include the BHA 1250 being run into the wellbore 1230 to a length of the BHA 1250, and the activity state may be determined to be making up the BHA 1250.

[0118] In another example, the tubular assembly 1240 may be or include the BHA 1250, the drilling state may be or include the BHA 1250 not being run into the wellbore 1230 until a depth of the drill bit 1260 is greater than a length of the BHA 1250 and less than a depth of the wellbore 1230, and the activity state may be determined to be running the BHA 1250 into the wellbore 1230.

[0119] In another example, the tubular assembly 1240 may be or include the BHA 1250, the drilling state may be or include the BHA 1250 being run into the wellbore 1230 until a depth of the drill bit 1260 is greater than a length of the BHA 1250 and less than a depth of the wellbore 1230, and the activity state may be determined to be drilling.

[0120] In another example, the tubular assembly 1240 may be or include the BHA 1250, the drilling state may be or include circulating through the BHA 1250 in the wellbore 1230 with a depth of the drill bit 1260 greater than a length of the BHA 1250 and less than a depth of the wellbore 1230, and wherein the activity state may be determined to be circulating in the wellbore 1230 through the BHA 1250.

[0121] In another example, the tubular assembly 1240 may be or include the BHA 1250, the drilling state may be or include circulating through the BHA 1250 in the wellbore 1230 with a depth of the drill bit 1260 minus a depth of the wellbore 1230 being less than a second predetermined amount, and the activity state may be determined to be circulating on a bottom of the wellbore 1230 through the BHA 1250. The second predetermined amount may be between about 50 meters and about 70 meters.

[0122] In another example, the tubular assembly 1240 may be or include the BHA 1250, the drilling state may be or include pulling the BHA 1240 out of the wellbore 1230 (i.e., POOH) withAttorney Docket No.: IS24.1872-WO a depth of the drill bit 1260 minus a depth of the wellbore 1230 being greater than the second predetermined amount, and the activity state may be determined to be pulling the BHA 1250 out of the wellbore 1230.

[0123] In another example, the tubular assembly 1240 may be or include the BHA 1250, the drilling state may be or include pulling the BHA 1250 out of the wellbore 1230 with a depth of the drill bit 1260 being less than a length of the BHA 1250, and the activity state may be determined to be laying down the BHA 1250.Exemplary Computing System

[0124] In some embodiments, the methods of the present disclosure may be executed by a computing system. Figure 15 illustrates an example of such a computing system 1500, in accordance with some embodiments. The computing system 1500 may include a computer or computer system 1501A, which may be an individual computer system 1501A or an arrangement of distributed computer systems. The computer system 1501A includes one or more analysis modules 1502 that are configured to perform various tasks according to some embodiments, such as one or more methods disclosed herein. To perform these various tasks, the analysis module 1502 executes independently, or in coordination with, one or more processors 1504, which is (or are) connected to one or more storage media 1506. The processor(s) 1504 is (or are) also connected to a network interface 1507 to allow the computer system 1501A to communicate over a data network 1509 with one or more additional computer systems and / or computing systems, such as 1501B, 1501C, and / or 1501D (note that computer systems 1501B, 1501C and / or 1501D may or may not share the same architecture as computer system 1501A, and may be located in different physical locations, e.g., computer systems 1501A and 1501B may be located in a processing facility, while in communication with one or more computer systems such as 1501C and / or 150 ID that are located in one or more data centers, and / or located in varying countries on different continents).

[0125] A processor may include a microprocessor, microcontroller, processor module or subsystem, programmable integrated circuit, programmable gate array, or another control or computing device.

[0126] The storage media 1506 may be implemented as one or more computer-readable or machine-readable storage media. Note that while in the example embodiment of Figure 15 storageAttorney Docket No.: IS24.1872-WO media 1506 is depicted as within computer system 1501 A, in some embodiments, storage media 1506 may be distributed within and / or across multiple internal and / or external enclosures of computing system 1501 A and / or additional computing systems. Storage media 1506 may include one or more different forms of memory including semiconductor memory devices such as dynamic or static random access memories (DRAMs or SRAMs), erasable and programmable read-only memories (EPROMs), electrically erasable and programmable read-only memories (EEPROMs) and flash memories, magnetic disks such as fixed, floppy and removable disks, other magnetic media including tape, optical media such as compact disks (CDs) or digital video disks (DVDs), BLURAY® disks, or other types of optical storage, or other types of storage devices. Note that the instructions discussed above may be provided on one computer-readable or machine-readable storage medium, or may be provided on multiple computer-readable or machine-readable storage media distributed in a large system having possibly plural nodes. Such computer-readable or machine-readable storage medium or media is (are) considered to be part of an article (or article of manufacture). An article or article of manufacture may refer to any manufactured single component or multiple components. The storage medium or media may be located either in the machine running the machine-readable instructions, or located at a remote site from which machine-readable instructions may be downloaded over a network for execution.

[0127] In some embodiments, computing system 1500 contains one or more method execution module(s) 1508. In the example of computing system 1500, computer system 1501A includes the method execution module 1508. In some embodiments, a single method execution module may be used to perform some aspects of one or more embodiments of the methods disclosed herein. In other embodiments, a plurality of method execution modules may be used to perform some aspects of methods herein.

[0128] It should be appreciated that computing system 1500 is merely one example of a computing system, and that computing system 1500 may have more or fewer components than shown, may combine additional components not depicted in the example embodiment of Figure 15, and / or computing system 1500 may have a different configuration or arrangement of the components depicted in Figure 15. The various components shown in Figure 15 may be implemented in hardware, software, or a combination of both hardware and software, including one or more signal processing and / or application specific integrated circuits.Attorney Docket No.: IS24.1872-WO

[0129] Further, the steps in the processing methods described herein may be implemented by running one or more functional modules in information processing apparatus such as general purpose processors or application specific chips, such as ASICs, FPGAs, PLDs, or other appropriate devices. These modules, combinations of these modules, and / or their combination with general hardware are included within the scope of the present disclosure.

[0130] Computational interpretations, models, and / or other interpretation aids may be refined in an iterative fashion; this concept is applicable to the methods discussed herein. This may include use of feedback loops executed on an algorithmic basis, such as at a computing device (e.g., computing system 1500, Figure 15), and / or through manual control by a user who may make determinations regarding whether a given step, action, template, model, or set of curves has become sufficiently accurate for the evaluation of the subsurface three-dimensional geologic formation under consideration.

[0131] The foregoing description, for purpose of explanation, has been described with reference to specific embodiments. However, the illustrative discussions above are not intended to be exhaustive or limiting to the precise forms disclosed. Many modifications and variations are possible in view of the above teachings. Moreover, the order in which the elements of the methods described herein are illustrated and described may be re-arranged, and / or two or more elements may occur simultaneously. The embodiments were chosen and described in order to best explain the principles of the disclosure and its practical applications, to thereby enable others skilled in the art to best utilize the disclosed embodiments and various embodiments with various modifications as are suited to the particular use contemplated.

Claims

Attorney Docket No.: IS24.1872-WOCLAIMSWhat is claimed is:

1. A method for determining an activity state of a tubular assembly in a wellbore, the method comprising: receiving input data comprising: sensor data captured by a sensor at a drilling floor above the wellbore; and contextual information comprising (1) a length and a type of the tubular assembly and (2) a well activity that is being performed using the tubular assembly; determining a drill state based upon the input data; and determining the activity state of the tubular assembly based upon the well activity and the drill state.

2. The method of claim 1 , wherein the sensor data comprises a number of rotations per minute (RPM) of the tubular assembly, a flow rate through the tubular assembly, a depth of a drill bit below the tubular assembly, a torque on the tubular assembly, a vertical movement of the tubular assembly, or a combination thereof, and wherein the tubular assembly comprises a drill string, a liner string, a casing string, or a combination thereof.

3. The method of claim 2, wherein the tubular assembly comprises the drill string, and wherein the drill string comprises a bottom hole assembly (BHA).

4. The method of claim 1, wherein the well activity comprises performing a first run of the tubular assembly in a section of the wellbore.

5. The method of claim 1, wherein the drill state is at a stand level, wherein the activity state is at a run level, and wherein the stand level is smaller than the run level.

6. The method of claim 1, further comprising:Attorney Docket No.: IS24.1872-WO displaying the activity state, wherein the activity state is displayed in a column or row with different bands representing different activity states, and wherein the different bands have different colors or shadings; and performing an action in response to the activity state, wherein the action comprises generating and / or transmitting a signal that recommends, instructs, or causes a physical action to occur at the drilling floor and / or in the wellbore, and wherein the physical action comprises switching to a different activity state.

7. The method of claim 1, wherein the tubular assembly comprises a liner, wherein the drill state comprises the liner not being run into the wellbore to a depth of the wellbore minus a predetermined amount, wherein the predetermined amount is a length of a drill stand, and wherein the activity state is determined to be surface activity.

8. The method of claim 1, wherein the tubular assembly comprises a liner, wherein the drill state comprises the liner being run into the wellbore to a depth of the wellbore minus a predetermined amount, wherein the predetermined amount is a length of a drill stand, and wherein the activity state is determined to be running the liner into the wellbore.

9. The method of claim 1, wherein the tubular assembly comprises a casing, wherein the drill state comprises the casing not being run into the wellbore to a depth of the wellbore minus a predetermined amount, wherein the predetermined amount is a length of a drill stand, and wherein the activity state is determined to be surface activity.

10. The method of claim 1, wherein the tubular assembly comprises a casing, wherein the drill state comprises the casing being run into the wellbore to a depth of the wellbore minus a predetermined amount, wherein the predetermined amount is a length of a drill stand, and wherein the activity state is determined to be running the casing into the wellbore.

11. A computing system, comprising: one or more processors; andAttorney Docket No.: IS24.1872-WO a memory system comprising one or more non -transitory computer-readable media storing instructions that, when executed by at least one of the one or more processors, cause the computing system to perform operations, the operations comprising: receiving input data, wherein the input data comprises: raw sensor data captured by a sensor at a drilling floor above a wellbore, wherein a tubular assembly comprises a drill string, and wherein the drill string comprises a bottom hole assembly (BHA); and contextual information comprising (1) a length and a type of the tubular assembly and (2) a well activity that is being performed using the tubular assembly, wherein the well activity comprises performing a first run of the tubular assembly in a section of the wellbore; determining a drill state based upon the input data, wherein the drill state is determined by conducting a time log analysis, and wherein the drill state is at a stand level; and automatically determining an activity state of the tubular assembly based upon the well activity and the drill state, wherein the activity state is at a run level, and wherein the stand level is smaller than the run level.

12. The computing system of claim 11, wherein the tubular assembly comprises the BHA, wherein the drill state comprises the BHA not being run into the wellbore to a length of the BHA, and wherein the activity state is determined to be surface activity.

13. The computing system of claim 11, wherein the tubular assembly comprises the BHA, wherein the drill state comprises the BHA being run into the wellbore to a length of the BHA, and wherein the activity state is determined to be making up the BHA.

14. The computing system of claim 11, wherein the tubular assembly comprises the BHA, wherein the drill state comprises the BHA not being run into the wellbore until a depth of a drill bit is greater than a length of the BHA and less than a depth of the wellbore, and wherein the activity state is determined to be running the BHA into the wellbore.Attorney Docket No.: IS24.1872-WO15. The computing system of claim 11 , wherein the tubular assembly comprises the BHA, wherein the drill state comprises the BHA being run into the wellbore until a depth of a drill bit is greater than a length of the BHA and less than a depth of the wellbore, and wherein the activity state is determined to be drilling.

16. A non-transitory computer-readable medium storing instructions that, when executed by one or more processors of a computing system, cause the computing system to perform operations, the operations comprising: receiving input data, wherein the input data comprises: raw sensor data captured by a sensor at a drilling floor above a wellbore, wherein a tubular assembly comprises a drill string, and wherein the drill string comprises a bottom hole assembly (BHA); and contextual information comprising (1) a length and a type of the tubular assembly and (2) a well activity that is being performed using the tubular assembly, wherein the well activity comprises performing a first run of the tubular assembly in a section of the wellbore; determining a drill state based upon the input data, wherein the drill state is determined by conducting a time log analysis, and wherein the drill state is at a stand level; and automatically determining an activity state of the tubular assembly based upon the well activity and the drill state, wherein the activity state is at a run level, and wherein the stand level is smaller than the run level.

17. The non-transitory computer-readable medium of claim 16, wherein the tubular assembly comprises the BHA, wherein the drill state comprises circulating through the BHA in the wellbore with a depth of a drill bit greater than a length of the BHA and less than a depth of the wellbore, and wherein the activity state is determined to be circulating in the wellbore through the BHA.

18. The non-transitory computer-readable medium of claim 16, wherein the tubular assembly comprises the BHA, wherein the drill state comprises circulating through the BHA in the wellbore with a depth of a drill bit minus a depth of the wellbore being less than a predetermined amount, wherein the predetermined amount is between about 50 meters and about 70 meters, and whereinAttorney Docket No.: IS24.1872-WO the activity state is determined to be circulating on a bottom of the wellbore through the BHA.

19. The non-transitory computer-readable medium of claim 16, wherein the tubular assembly comprises the BHA, wherein the drill state comprises pulling the BHA out of the wellbore with a depth of a drill bit minus a depth of the wellbore being greater than a predetermined amount, wherein the predetermined amount is between about 50 meters and about 70 meters, and wherein the activity state is determined to be pulling the BHA out of the wellbore.

20. The non-transitory computer-readable medium of claim 16, wherein the tubular assembly comprises the BHA, wherein the drill state comprises pulling the BHA out of the wellbore with a depth of a drill bit being less than a length of the BHA, and wherein the activity state is determined to be laying down the BHA.