|
OpenZGY/C++ API and Internals (ALPHA)
Access seismic data stored in ZGY format.
|
IZgyReader, IZgyWriter, and other user visible classes. More...
#include <cstdint>#include <vector>#include <array>#include <ostream>#include <iostream>#include <functional>#include <memory>#include <string>#include "declspec.h"Go to the source code of this file.
Classes | |
| class | OpenZGY::SampleStatistics |
| Statistics of all sample values on the file. More... | |
| class | OpenZGY::SampleHistogram |
| Histogram of all sample values on the file. More... | |
| class | OpenZGY::ZgyWriterArgs |
| Argument package for creating a ZGY file. More... | |
| class | OpenZGY::IZgyMeta |
| Base class of IZgyReader and IZgyWriter. More... | |
| class | OpenZGY::IZgyTools |
| Base class of IZgyReader and IZgyWriter. More... | |
| class | OpenZGY::IZgyReader |
| Main API for reading ZGY files. More... | |
| class | OpenZGY::IZgyWriter |
| Main API for creating ZGY files. More... | |
| class | OpenZGY::IZgyUtils |
| Operations other than read and write. More... | |
| class | OpenZGY::ProgressWithDots |
| Simple progress bar. More... | |
Namespaces | |
| OpenZGY | |
| The entire public API is in this namespace. | |
| OpenZGY::Errors | |
| Exceptions that can be thrown by OpenZGY. | |
| OpenZGY::Impl | |
| Implementation of the abstract interfaces in OpenZGY. | |
| OpenZGY::Formatters | |
| operator<< for readable output of enums etc. | |
| InternalZGY | |
| Implementation not visible to clients. | |
Functions | |
| std::ostream & | OpenZGY::Formatters::operator<< (std::ostream &os, SampleDataType value) |
| Output the string representation of the input enum type. | |
| std::ostream & | OpenZGY::Formatters::operator<< (std::ostream &os, UnitDimension value) |
| Output the string representation of the input enum type. | |
| std::ostream & | OpenZGY::Formatters::operator<< (std::ostream &os, DecimationType value) |
| Output the string representation of the input enum type. | |
Variables | |
| unknown = 1000 | |
| int8 = 1001 | |
| int16 = 1002 | |
| float32 = 1003 | |
| time = 2001 | |
| length = 2002 | |
| arcangle = 2003 | |
| LowPass = 100 | |
| Lowpass Z / decimate XY. | |
| WeightedAverage | |
| Weighted averaging (depends on global stats). | |
| Average | |
| Simple averaging. | |
| Median | |
| Somewhat more expensive averaging. | |
| Minimum | |
| Minimum value. | |
| Maximum | |
| Maximum value. | |
| MinMax | |
| Checkerboard of minimum and maximum values. | |
| Decimate | |
| Simple decimation, use first sample. | |
| DecimateSkipNaN | |
| Use first sample that is not NaN. | |
| DecimateRandom | |
| Random decimation using a fixed seed. | |
| AllZero | |
| Just fill the LOD brick with zeroes. | |
| WhiteNoise | |
| Fill with white noise, hope nobody notices. | |
| MostFrequent | |
| The value that occurs most frequently. | |
| MostFrequentNon0 | |
| The non-zero value that occurs most frequently. | |
| AverageNon0 | |
| Average value, but treat 0 as NaN. | |
IZgyReader, IZgyWriter, and other user visible classes.
This file contains the public OpenZGY API.
The API is modeled roughly after the API exposed by the Python wrapper around the existing C++ ZGY-Public API. This is probably just as good a starting point than anything else. And it makes testing simpler for those tests that compare the old and new behavior.
OpenZGY::ZgyMetaAndTools extends IZgyMeta
OpenZGY::ZgyReader extends ZgyMetaAndTools with read, readconst, close OpenZGY::ZgyWriter extends ZgyMetaAndTools with write, writeconst, finalize, close
Note that enums and exceptions are problematic when it comes to encapsulation. Enums might be:
Exceptions have similar issues. It is possible to catch all exceptions raised in the impl layer and convert those to exceptions owned by the api layer. But re-throwing an exception makes debuggig harder.
1.8.17