public abstract class WitsmlLog extends WitsmlObject
The log object is used to capture the curves on a well log. It was designed primarily for MWD logs and is constrained to capturing curves from a single pass. See wellLog for more complex logging situations. This object is uniquely identified within the context of one wellbore object.
Logs can be instantiated in two different ways in JWitsml client programs:
// Get logs from remote server List<WitsmlLog> logs = witsmlServer.get(WitsmlLog.class, new WitsmlQuery(), wellbore);
// Create instance WitsmlLog log = witsmlServer.newInstance(WitsmlLog.class, "my log", wellbore); // Set properties log.setIndexType(WitsmlLog.IndexType.MEASURED_DEPTH); log.setRunNumber("1A"); log.setDescription("log description goes here"); // Create curves WitsmlLog.Curve logCurve1 = log.addCurve("md"); WitsmlLog.Curve logCurve2 = log.addCurve("density"); WitsmlLog.Curve logCurve3 = log.addCurve("gamma"); // Provide data log.addValues(140.0, 2.2, 0.03); log.addValues(120.0, 3.3, 0.02); log.addValues(100.0, 1.1, 0.01); // Add to remote server witsmlServer.add(log);
Modifier and Type | Class and Description |
---|---|
static class |
WitsmlLog.Curve
Model one specific curve within a log.
|
static class |
WitsmlLog.IndexDirection
These values represent the direction of movement within a wellbore.
|
static class |
WitsmlLog.IndexType
These values represent the type of data used as an index
value for a log.
|
Modifier and Type | Method and Description |
---|---|
abstract WitsmlLog.Curve |
addCurve(String name) |
void |
addValues(Object... values)
Add curve values to this log.
|
WitsmlLog.Curve |
findCurveByName(String curveName)
Find log curve with specified name.
|
Integer |
getBhaRunNumber()
Return the BHA run number of this log.
|
Date |
getCreationTime()
Return the creation time of this log.
|
List<WitsmlLog.Curve> |
getCurves()
Return the curves of this log.
|
String |
getDataDelimiter()
Return the data delimiter of this log.
|
String |
getDescription()
Return the description of this log.
|
Object |
getEndIndex()
Return the end index of this log.
|
WitsmlLog.Curve |
getIndexCurve()
Return the index curve of this log.
|
String |
getIndexCurveName()
Return the name of the index curve of this log.
|
WitsmlLog.IndexDirection |
getIndexDirection()
Return the index direction of this log.
|
WitsmlLog.IndexType |
getIndexType()
Return the index type of this log.
|
int |
getNCurves()
Return the number of curves of this log.
|
String |
getNoValue()
Return the no-value of this log.
|
Integer |
getNRows()
Return the number of rows of this log.
|
int |
getNValues()
Return number of values (rows) in this log, i.e.
|
String |
getPass()
Return the pass of this log.
|
String |
getRunNumber()
Return the run number of this log.
|
String |
getServiceCompany()
Return the service company of this log.
|
Object |
getStartIndex()
Return the start index of this log.
|
Value |
getStepIncrement()
Return the step increment of this log.
|
Boolean |
isGrowing()
Return if this log is growing.
|
void |
setBhaRunNumber(Integer bhaRunNumber)
Set the BHA run number of this log.
|
void |
setCreationTime(Date creationTime)
Set the creation time of this log.
|
void |
setDataDelimiter(String dataDelimiter)
Set the data delimiter of this log.
|
void |
setDescription(String description)
Set the description of this log.
|
void |
setEndIndex(Object endIndex)
Set the end index of this log.
|
void |
setGrowing(Boolean isGrowing)
Set if this log is is growing.
|
void |
setIndexDirection(WitsmlLog.IndexDirection indexDirection)
Set the index direction of this log.
|
void |
setIndexType(WitsmlLog.IndexType indexType)
Set the index type of this log.
|
void |
setNoValue(String noValue)
Set the no-value of this log.
|
void |
setPass(String pass)
Set the pass of this log.
|
void |
setRunNumber(String runNumber)
Set the run number of this log.
|
void |
setServiceCompany(String serviceCompany)
Set the service company of this log.
|
void |
setStartIndex(Object startIndex)
Set the start index of this log.
|
void |
setStepIncrement(Value stepIncrement)
Set the step increment of this log.
|
equals, getAddQuery, getAliases, getCitation, getCommonData, getEtpResource, getEtpServer, getId, getName, getParent, getParentId, getReadLock, getServer, getVersion, getWitsmlServer, getWitsmlType, getWriteLock, hashCode, newAliases, newCitation, newCommonData, setEtpResource, setName, toString
public Boolean isGrowing()
Corresponds to the WITSML property objectGrowing
:
Whether or not the log is growing. True ("true" or "1") indicates the that the log is still growing in size (that is, logData values are still being added). For example, it may be connected to a realtime stream. False ("false" or "0") indicates that the log is closed (that is, no further logData values will be added). Not given indicates that the status of the log is not known. This value is only relevant within the context of a server.
public void setGrowing(Boolean isGrowing)
Corresponds to the WITSML property objectGrowing
:
Whether or not the log is growing. True ("true" or "1") indicates the that the log is still growing in size (that is, logData values are still being added). For example, it may be connected to a realtime stream. False ("false" or "0") indicates that the log is closed (that is, no further logData values will be added). Not given indicates that the status of the log is not known. This value is only relevant within the context of a server.
isGrowing
- The is growing to set.
May be null indicating absent or unknown.public Integer getNRows()
Corresponds to the WITSML property dataRowCount
:
The number of data rows in the persistent log. If a value is specified for this element in a query then the server will limit the number of data rows in the result but the return value will still be the number of data rows in the persistent log.
Not part of WITSML 1.4 or later.
public String getServiceCompany()
Corresponds to the WITSML property serviceCompany
:
Name of contractor who provided the service.
public void setServiceCompany(String serviceCompany)
Corresponds to the WITSML property serviceCompany
:
Name of contractor who provided the service.
serviceCompany
- The service company to set.
May be null indicating absent or unknown.public String getRunNumber()
Corresponds to the WITSML property runNumber
:
Log run number. This should normally be a number; however some legacy systems encode other information in this value.
public void setRunNumber(String runNumber)
Corresponds to the WITSML property runNumber
:
Log run number. This should normally be a number; however some legacy systems encode other information in this value.
runNumber
- The run number to set.
May be null indicating absent or unknown.public Integer getBhaRunNumber()
Corresponds to the WITSML property bhaRunNumber
:
The bottom hole assembly run number associated with this log. This should match the run number on the BHA run object.
public void setBhaRunNumber(Integer bhaRunNumber)
Corresponds to the WITSML property bhaRunNumber
:
The bottom hole assembly run number associated with this log. This should match the run number on the BHA run object.
bhaRunNumber
- The BHA run number to set.
May be null indicating absent or unknown.public String getPass()
Corresponds to the WITSML property pass
:
Identifies the pass within the run.
public void setPass(String pass)
Corresponds to the WITSML property pass
:
Identifies the pass within the run.
pass
- The pass to set.
May be null indicating absent or unknown.public Date getCreationTime()
Corresponds to the WITSML property creationDate
:
Date and time that the log was created.
public void setCreationTime(Date creationTime)
Corresponds to the WITSML property creationDate
:
Date and time that the log was created.
creationTime
- The creation time to set.
May be null indicating absent or unknown.public String getDescription()
Corresponds to the WITSML property description
:
Description of item and details.
public void setDescription(String description)
Corresponds to the WITSML property description
:
Description of item and details.
description
- The description to set.
May be null indicating absent or unknown.public String getDataDelimiter()
Corresponds to the WITSML property dataDelimiter
:
The value delimiter in the data string. Defaults to a comma. Note that this does not affect any space delimited array data.
public void setDataDelimiter(String dataDelimiter)
Corresponds to the WITSML property dataDelimiter
:
The value delimiter in the data string. Defaults to a comma. Note that this does not affect any space delimited array data.
dataDelimiter
- The data delimiter to set.
May be null indicating absent or unknown.public WitsmlLog.IndexType getIndexType()
Corresponds to the WITSML property indexType
:
Primary index type.
The index may be a quantity type or it may be a dateTime type. At least one of the index sets must be given. If both are given then "indexType" and "indexCurve" must represent an elapsed time from "startDateTimeIndex". The start and end indexes are server query parameters and will be populated with valid values in a GetFromStore result.
public void setIndexType(WitsmlLog.IndexType indexType)
Corresponds to the WITSML property indexType
:
Primary index type.
The index may be a quantity type or it may be a dateTime type. At least one of the index sets must be given. If both are given then "indexType" and "indexCurve" must represent an elapsed time from "startDateTimeIndex". The start and end indexes are server query parameters and will be populated with valid values in a GetFromStore result.
indexType
- The index type to set.
May be null indicating absent or unknown.public Object getStartIndex()
Corresponds to the WITSML property startIndex/startDateTimeIndex
:
When the log header defines the direction as "Increasing", the startIndex is the starting (minimum) index value at which the first valid data point is located. When the log header defines the direction as "Decreasing", the startIndex is the starting (maximum) index value at which the first valid data point is located.
public void setStartIndex(Object startIndex)
Corresponds to the WITSML property startIndex/startDateTimeIndex
:
When the log header defines the direction as "Increasing", the startIndex is the starting
(minimum) index value at which the first valid data point is located.
When the log header defines the direction as "Decreasing", the startIndex is the starting
(maximum) index value at which the first valid data point is located.
startIndex
- The start index to set.
May be null indicating absent or unknown.public Object getEndIndex()
Corresponds to the WITSML property endIndex/endDateTimeIndex
:
When the log header defines the direction as "Increasing", the endIndex is the ending (maximum) index value at which the last valid data point is located. When the log header defines the direction as Decreasing, the endIndex is the ending (minimum) index value at which the last valid data point is located.
public void setEndIndex(Object endIndex)
Corresponds to the WITSML property endIndex/endDateTimeIndex
:
When the log header defines the direction as "Increasing", the endIndex is the ending (maximum)
index value at which the last valid data point is located. When the log header defines the
direction as Decreasing, the endIndex is the ending (minimum) index value at which the last
valid data point is located.
endIndex
- The end index to set.
May be null indicating absent or unknown.public WitsmlLog.IndexDirection getIndexDirection()
Corresponds to the WITSML property direction
:
The sort order of the data row index values in the XML instance. For an "Increasing" direction the index value of consecutive data nodes are ascending. For a "Decreasing" direction the index value of consecutive data nodes are descending. The default direction is "Increasing". The direction of a log cannot be changed once it has been created. That is, this value cannot be updated in a server.
public void setIndexDirection(WitsmlLog.IndexDirection indexDirection)
Corresponds to the WITSML property direction
:
The sort order of the data row index values in the XML instance. For an "Increasing" direction the index value of consecutive data nodes are ascending. For a "Decreasing" direction the index value of consecutive data nodes are descending. The default direction is "Increasing". The direction of a log cannot be changed once it has been created. That is, this value cannot be updated in a server.
indexDirection
- The index direction to set.
May be null indicating absent or unknown.public Value getStepIncrement()
Corresponds to the WITSML property stepIncrement
:
The sampling increment. Set to zero for unequal sampling. A non-zero value indicates that the data is regularly sampled even if it has an explicit index curve. If it is zero or not given then assume that it is non-regular even though it may be regular. The problem is that writers generally cannot guarantee the regularity of the log until after they have finished processing it For curves that are originally sampled at a constant increment, this value should be retained because calculated values may have cumulative errors.
public void setStepIncrement(Value stepIncrement)
Corresponds to the WITSML property stepIncrement
:
The sampling increment. Set to zero for unequal sampling. A non-zero value indicates that the data is regularly sampled even if it has an explicit index curve. If it is zero or not given then assume that it is non-regular even though it may be regular. The problem is that writers generally cannot guarantee the regularity of the log until after they have finished processing it For curves that are originally sampled at a constant increment, this value should be retained because calculated values may have cumulative errors.
stepIncrement
- The step increment to set.
May be null indicating absent or unknown.public String getNoValue()
Corresponds to the WITSML property nullValue
:
An empty string is the default representation of a null value for a curve (i.e. when the null value representation is not explicitly defined). If a null value representation is defined for a log, this becomes the default for all curves in that log (but can be overridden at the curve level). An empty string is always a valid null value representation in the comma delimited list. An empty string is not a valid null value representation within a space delimited array. Specifying a null value also makes it easier to transform data back to a legacy format without having to scan the data to insure that the null pattern does not exist in the data.
public void setNoValue(String noValue)
Corresponds to the WITSML property nullValue
:
An empty string is the default representation of a null value for a curve (i.e. when the null value representation is not explicitly defined). If a null value representation is defined for a log, this becomes the default for all curves in that log (but can be overridden at the curve level). An empty string is always a valid null value representation in the comma delimited list. An empty string is not a valid null value representation within a space delimited array. Specifying a null value also makes it easier to transform data back to a legacy format without having to scan the data to insure that the null pattern does not exist in the data.
noValue
- The no-value to set.
May be null indicating absent or unknown.public List<WitsmlLog.Curve> getCurves()
Corresponds to the WITSML property logCurveInfo
:
Container element for the log curve information.
public abstract WitsmlLog.Curve addCurve(String name)
public int getNCurves()
public String getIndexCurveName()
Corresponds to the WITSML property indexCurve
:
The mnemonic of the index curve plus the column index.
A column index of zero indicates an implied trace whose values start
at startIndex and increment by stepIncrement for each row.
public void addValues(Object... values)
TODO: More documentation to come.
values
- Values to add. One per existing curve.public WitsmlLog.Curve getIndexCurve()
public int getNValues()
public WitsmlLog.Curve findCurveByName(String curveName)
curveName
- Name of curve to find.Copyright © 2023 Petroware AS - https://petroware.no