33 TimeDepthModel(
const TimeDepthModel&);
34 virtual ~TimeDepthModel();
36 TimeDepthModel& operator=(
const TimeDepthModel&);
37 virtual bool isOK()
const;
39 int size()
const {
return sz_; }
41 bool setModel(
const float* dpths,
const float* times,
int sz);
43 float getDepth(
float time)
const;
44 float getTime(
float depth)
const;
45 float getVelocity(
float depth)
const;
46 float getFirstTime()
const;
47 float getLastTime()
const;
49 static float getDepth(
const float* dpths,
const float* times,
int sz,
51 static float getTime(
const float* dpths,
const float* times,
int sz,
53 static float getVelocity(
const float* dpths,
const float* times,
57 float getDepth(
int idx)
const;
58 float getTime(
int idx)
const;
62 static float convertTo(
const float* dpths,
const float* times,
int sz,
63 float z,
bool targetistime);
115 void calcZ(
const float*,
int inpsz,
135 virtual ~MoveoutComputer() {}
137 virtual int nrVariables()
const = 0;
138 virtual const char* variableName(
int)
const = 0;
140 virtual bool computeMoveout(
const float* variables,
142 const float* offsets,
143 float* res)
const = 0;
144 float findBestVariable(
float* variables,
int variabletochange,
146 const float* offsets,
const float* moveout )
const;
160 int nrVariables()
const {
return 3; }
161 const char* variableName(
int idx)
const 166 case 1:
return "RMO";
167 case 2:
return "Reference offset";
172 bool computeMoveout(
const float*,
int,
const float*,
float*)
const;
173 static bool computeMoveout(
float d0,
float rmo,
float refoffset,
174 int,
const float*,
float*);
186 int nrVariables()
const {
return 3; }
187 const char* variableName(
int idx )
const 192 case 1:
return "Vrms";
193 case 2:
return "Effective anisotrophy";
198 bool computeMoveout(
const float*,
int,
const float*,
float*)
const;
199 static bool computeMoveout(
float t0,
float Vrms,
float effectiveanisotropy,
200 int,
const float*,
float*);
208 const float* t,
int nrlayers,
float* Vint);
220 virtual bool compute(
const float* Vrms,
float t0,
float v0,
221 const float* t,
int nrlayers,
float* Vint) = 0;
236 bool compute(
const float* Vrms,
float t0,
float v0,
237 const float* t,
int nrlayers,
float* Vint)
238 {
return computeDix( Vrms, t0, v0, t, nrlayers, Vint ); }
247 int nrvels,
float* Vint);
254 const float* t,
int nrlayers,
float* Vint);
260 int nrvels,
float* Vrms);
267 int nrlayers,
float* Vrms);
274 const float* t_in,
int nr_in,
276 float* Vout,
int nr_out);
284 int nrvels,
float* Vavg);
292 int nrvels,
float* Vint);
315 int nroffsets,
bool outputdepth,
316 const float* offsets,
float* output);
323 float reference_z,
bool zisdepth,
float& V_0,
324 float& gradient,
float& error);
331 mGlobal(Algo)
void resampleZ(
const float* zarr,
const float* tord_in,
int nr_in,
340 int nr_out,
float* voutarr);
347 int nr_out,
float* outarr);
352 int nr_out,
float* outarr);
360 int sz,
float* res );
367 int sz,
float* res );
#define mExpClass(module)
Definition: commondefs.h:157
mODTextTranslationClass(DixConversion) public bool compute(const float *Vrms, float t0, float v0, const float *t, int nrlayers, float *Vint)
Definition: velocitycalc.h:236
Rms velocity to interval velocity conversion.
Definition: velocitycalc.h:214
int sz_
Definition: velocitycalc.h:65
float * times_
Definition: velocitycalc.h:67
#define mODTextTranslationClass(clss)
Definition: uistring.h:37
bool computeLinearD2T(double v0, double dv, double v0depth, const SamplingData< float > &depthsampling, int sz, float *res)
#define mGlobal(module)
Definition: commondefs.h:160
mODTextTranslationClass(MoveoutComputer) public
Definition: velocitycalc.h:133
uiString errmsg_
Definition: velocitycalc.h:70
bool computeVrms(const float *Vint, const SamplingData< double > &sd, int nrvels, float *Vrms)
SamplingData< double > sd_
Definition: velocitycalc.h:124
#define mDefaultFactoryInstantiation(baseclss, clss, keywrd, usernm)
Definition: factory.h:287
bool fitLinearVelocity(const float *Vint, const float *z_in, int nr_in, const Interval< float > &zlayer, float reference_z, bool zisdepth, float &V_0, float &gradient, float &error)
Definition: uistring.h:88
float firstvel_
Definition: velocitycalc.h:119
float lastvel_
Definition: velocitycalc.h:120
Base class for computing a moveout curve.
Definition: velocitycalc.h:132
virtual bool isOK() const
Definition: valseries.h:36
Computes moveout in depth from RMO at a certain reference offset.
Definition: velocitycalc.h:157
void computeResidualMoveouts(float z0, float rmo, float refoffset, int nroffsets, bool outputdepth, const float *offsets, float *output)
virtual mODTextTranslationClass(Vrms2Vint) public ~Vrms2Vint()
Definition: velocitycalc.h:218
bool regularinput_
Definition: velocitycalc.h:122
Interface to a series of values.
Definition: odmemory.h:15
void sampleEffectiveThomsenPars(const float *vinarr, const float *t_in, int nr_in, const SamplingData< double > &sd_out, int nr_out, float *voutarr)
void sampleIntvThomsenPars(const float *inarr, const float *t_in, int nr_in, const SamplingData< double > &sd_out, int nr_out, float *outarr)
bool computeDix(const float *Vrms, float t0, float v0, const float *t, int nrlayers, float *Vint)
uiString toUiString(const DBKey &ky)
Definition: dbkey.h:117
Converts between time and depth given a model.
Definition: velocitycalc.h:78
#define mDefineFactoryInClass(T, funcname)
Definition: factory.h:424
void resampleZ(const float *zarr, const float *tord_in, int nr_in, const SamplingData< double > &sd_out, int nr_out, float *zsampled)
Computes moveout with anisotropy, according to the equation by Alkhalifah and Tsvankin 1995...
Definition: velocitycalc.h:183
bool sampleVint(const float *Vint, const float *t_in, int nr_in, const SamplingData< double > &sd_out, float *Vout, int nr_out)
bool computeLinearT2D(double v0, double dv, double v0depth, const SamplingData< float > ×ampling, int sz, float *res)
FixedString Time()
Definition: keystrs.h:129
Rms velocity to interval velocity conversion using the Dix formula.
Definition: velocitycalc.h:229
bool convertToVintIfNeeded(const float *inpvel, const VelocityDesc &veldesc, const StepInterval< float > &zrange, float *outvel)
bool sampleVrms(const float *Vin, float t0_in, float v0_in, const float *t_in, int nr_in, const SamplingData< double > &sd_out, float *Vout, int nr_out)
bool computeVint(const float *Vavg, float t0, const float *t, int nrvels, float *Vint)
bool computeVavg(const float *Vint, float t0, const float *t, int nrvels, float *Vavg)
const char * errMsg() const
Definition: horizontracker.h:59
int size() const
Definition: velocitycalc.h:39
bool sampleVavg(const float *Vavg, const float *t_in, int nr_in, const SamplingData< double > &sd_out, float *Vout, int nr_out)
Converts between time, depth and velocity given a model. The velocity model can be either RMO-velocit...
Definition: velocitycalc.h:29
int sz_
Definition: velocitycalc.h:123
float * depths_
Definition: velocitycalc.h:68
void resampleContinuousData(const float *inarr, const float *t_in, int nr_in, const SamplingData< double > &sd_out, int nr_out, float *outarr)
FixedString Depth()
Definition: keystrs.h:58