You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
97 lines
3.1 KiB
Plaintext
97 lines
3.1 KiB
Plaintext
1 year ago
|
/**
|
||
|
@page page-examples Examples
|
||
|
|
||
|
@tableofcontents
|
||
|
|
||
|
@section examples-overview Overview
|
||
|
|
||
|
The most basic usage of the library is illustrated in the @ref
|
||
|
page-tutorial. This page contains full example programs that utilize
|
||
|
the library for common tasks. These examples are included in the
|
||
|
source distribution and (most) are used in the test suite.
|
||
|
|
||
|
While these are full working programs the aspects not related to
|
||
|
library usage, e.g. argument parsing, are often minimized and left
|
||
|
uncommented as they will change in real world usage.
|
||
|
|
||
|
@section example-mseedview Read miniSEED from files
|
||
|
|
||
|
A simple program to read miniSEED from files and print details from
|
||
|
each record:
|
||
|
|
||
|
@include mseedview.c
|
||
|
|
||
|
@section example-lm_read_selection Reading with selections
|
||
|
|
||
|
Read miniSEED with @ref data-selections used to limit what is read.
|
||
|
Additionally, this program reads data into a @ref trace-list and
|
||
|
illustrates traversing the entries.
|
||
|
|
||
|
@include lm_read_selection.c
|
||
|
|
||
|
@section example-lm_read_recordlist Reading with record lists
|
||
|
|
||
|
Read miniSEED a file in 2 passes:
|
||
|
-# Read the file and construct a @ref trace-list without unpacking the
|
||
|
data samples and constructing a @ref record-list
|
||
|
-# Unpack the data samples for each segment individually.
|
||
|
|
||
|
This pattern allows the caller to selectively unpack the data by
|
||
|
segment if desired.
|
||
|
|
||
|
While this example unpacks the data into a buffer allocated by the
|
||
|
library, the unpacking routine mstl3_unpack_recordlist() also allows
|
||
|
data samples to be placed directly into caller-specified memory
|
||
|
buffers.
|
||
|
|
||
|
While this example uses ms3_readtracelist() for reading data from a
|
||
|
file, the same functionality exists in mstl3_readbuffer() for reading
|
||
|
data from a memory buffer.
|
||
|
|
||
|
@include lm_read_recordlist.c
|
||
|
|
||
|
@section example-lm_read_buffer Reading from memory buffers
|
||
|
|
||
|
Read miniSEED from memory buffers. In this case a file is read into a
|
||
|
buffer simply to illustrate reading from a buffer. In practice this
|
||
|
would functionality would be used with data received via a network
|
||
|
connection or some other, non-file, mechanism.
|
||
|
|
||
|
@include lm_read_buffer.c
|
||
|
|
||
|
@section example-lm_pararead Reading files in parallel
|
||
|
|
||
|
Read miniSEED in parallel using re-entrant interfaces and POSIX threading.
|
||
|
|
||
|
@include lm_pararead.c
|
||
|
|
||
|
@section example-lm_pack Writing miniSEED
|
||
|
|
||
|
An example of creating miniSEED. Static data with known signal is
|
||
|
used for input for illustration and testing.
|
||
|
|
||
|
@include lm_pack.c
|
||
|
|
||
|
@section example-lm_pack_rollingbuffer Writing miniSEED with rolling buffer
|
||
|
|
||
|
An example of creating miniSEED using a ::MS3TraceList as a rolling
|
||
|
buffer of data. This pattern is useful for generating miniSEED in a
|
||
|
streaming fashion for scenarios where holding all data in memory is
|
||
|
not possible or practical. For example, very large data sets or
|
||
|
continuous, streaming data.
|
||
|
|
||
|
An input file of miniSEED is used as a convenient data source.
|
||
|
::MS3Record containers can be constructed for any arbitrary data and
|
||
|
follow the same pattern of record generation.
|
||
|
|
||
|
@include lm_pack_rollingbuffer.c
|
||
|
|
||
|
@section example-lm_sids Working with Source Identifiers
|
||
|
|
||
|
An example of mapping between source identifiers (SIDs) and SEED
|
||
|
identifier codes.
|
||
|
|
||
|
@include lm_sids.c
|
||
|
|
||
|
*/
|