OpenZGY/C++ API and Internals (ALPHA)
Access seismic data stored in ZGY format.
Classes | Public Types | Public Member Functions | List of all members
InternalZGY::OrderedCornerPoints Class Reference

#include <cornerpoints.h>

Classes

struct  Element
 

Public Types

enum  { Min0Min1, Max0Min1, Min0Max1, Max0Max1 }
 
typedef std::int64_t index_type
 
typedef float annot_type
 
typedef double coord_type
 

Public Member Functions

 OrderedCornerPoints ()
 
 OrderedCornerPoints (annot_type il0, annot_type ilinc, size_t ilcnt, annot_type xl0, annot_type xlinc, size_t xlcnt, const std::array< std::array< coord_type, 2 >, 4 > &ocp)
 
 OrderedCornerPoints (annot_type il0, annot_type ilinc, size_t ilcnt, annot_type xl0, annot_type xlinc, size_t xlcnt, annot_type acp0il, annot_type acp0xl, coord_type acp0x, coord_type acp0y, annot_type acp1il, annot_type acp1xl, coord_type acp1x, coord_type acp1y, annot_type acp2il, annot_type acp2xl, coord_type acp2x, coord_type acp2y)
 
const Elementoperator[] (size_t i) const
 
std::array< std::array< coord_type, 2 >, 4 > index_coords () const
 corner coordinates in index space.
 
std::array< std::array< coord_type, 2 >, 4 > annot_coords () const
 corner coordinates in annotation space.
 
std::array< std::array< coord_type, 2 >, 4 > world_coords () const
 corner coordinates in world space.
 

Detailed Description

This class can be used to calculate the map projection (x, y) coordinates of the four corners of a cube from a set of arbitrary control points (ACP). The result is ordered according to the Petrel Ordered Corner Points (OCP) definition, which is as follows corresponding to bulk data access indices:

( 0, 0, ?) (size[0] - 1, 0, ?) ( 0, size[1] - 1, ?) (size[0] - 1, size[1] - 1, ?)

Ref: PetrelOrientationHandling

Member Typedef Documentation

◆ annot_type

Bulk-data index type.

◆ coord_type

Inline/crossline annotation index datatype.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum

Ordering

Enumerator
Max0Min1 

Lowest index in dimension 0 (I), lowest index in dimension 1 (J).

Min0Max1 

Highest index in dimension 0 (I), lowest index in dimension 1 (J).

Max0Max1 

Lowest index in dimension 0 (I), highest index in dimension 1 (J). Highest index in dimension 0 (I), highest index in dimension 1 (J).

Constructor & Destructor Documentation

◆ OrderedCornerPoints() [1/3]

InternalZGY::OrderedCornerPoints::OrderedCornerPoints ( )

Default constructor. Initializes OCPs to zero.

◆ OrderedCornerPoints() [2/3]

InternalZGY::OrderedCornerPoints::OrderedCornerPoints ( annot_type  il0,
annot_type  ilinc,
size_t  ilcnt,
annot_type  xl0,
annot_type  xlinc,
size_t  xlcnt,
const std::array< std::array< coord_type, 2 >, 4 > &  ocp 
)

Construct OCPs from cube extent in annotation space and four OCP coordinates.

Parameters
il0Inline annotation corresponding to bulk data index 0 along dimension 0 (I).
ilincInline annotation increment corresponding to bulk data index increment of 1 along dimension 0 (I).
ilcntNumber of samples along dimension 0 (I).
xl0Crossline annotation corresponding to bulk data index 0 along dimension 1 (J).
xlincCrossline annotation increment corresponding to bulk data index increment of 1 along dimension 1 (J).
xlcntNumber of samples along dimension 1 (J).
ocpFour sets of (x, y) map projection coordinates expected to be in correct OCP ordering.

◆ OrderedCornerPoints() [3/3]

InternalZGY::OrderedCornerPoints::OrderedCornerPoints ( annot_type  il0,
annot_type  ilinc,
size_t  ilcnt,
annot_type  xl0,
annot_type  xlinc,
size_t  xlcnt,
annot_type  acp0il,
annot_type  acp0xl,
coord_type  acp0x,
coord_type  acp0y,
annot_type  acp1il,
annot_type  acp1xl,
coord_type  acp1x,
coord_type  acp1y,
annot_type  acp2il,
annot_type  acp2xl,
coord_type  acp2x,
coord_type  acp2y 
)

Construct OCPs from cube extent in annotation space and three ACPs.

Parameters
il0Inline annotation corresponding to bulk data index 0 along dimension 0 (I).
ilincInline annotation increment corresponding to bulk data index increment of 1 along dimension 0 (I).
ilcntNumber of samples along dimension 0 (I).
xl0Crossline annotation corresponding to bulk data index 0 along dimension 1 (J).
xlincCrossline annotation increment corresponding to bulk data index increment of 1 along dimension 1 (J).
xlcntNumber of samples along dimension 1 (J).
acp0ilInline annotation for first ACP.
acp0xlCrossline annotation for first ACP.
acp0xX (easting) map coordinate for first ACP.
acp0yY (northing) map coordinate for first ACP.
acp1ilInline annotation for second ACP.
acp1xlCrossline annotation for second ACP.
acp1xX (easting) map coordinate for second ACP.
acp1yY (northing) map coordinate for second ACP.
acp2ilInline annotation for third ACP.
acp2xlCrossline annotation for third ACP.
acp2xX (easting) map coordinate for third ACP.
acp2yY (northing) map coordinate for third ACP.

holds (inline, crossline)

receives (x, y)

Member Function Documentation

◆ operator[]()

const Element& InternalZGY::OrderedCornerPoints::operator[] ( size_t  i) const

Get an OCP.

Parameters
iOCP index.
Returns
Element corresponding to ith OCP.

The documentation for this class was generated from the following files: