forked from crotwell/seisFile
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME.txt
85 lines (48 loc) · 3.48 KB
/
README.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
SeisFile
SeisFile is a library for reading and writing seismic file formats in java. Currently support exists for SAC, MiniSEED and PSN with limited support for full SEED. Support for the IRIS DMC DataSelect, USGS LISS and Geofon SeedLink protocols are also included. These are low level routines that provide basic parsing of the file formats into objects that closely mirror those formats. Full SEED support was not intended, however there are cases of almost miniseed, such a one or two control records before the data records. SeisFile can handle the basic structure of these control records, allowing these mixed files to be read without crashing, but not all blockettes are parsed into fields. Support for the many blockette types in full SEED could be added in the future, although there is a large amount of bookkeeping to implement that and seisFile was intended to be small and focused.
SeisFile is release under the GNU Public License, v3 or later.
Example Apps
There are several example applications included, showing how to use seisFile in different ways. The clients, located in the bin directory, are:
1. saclh - prints all the header fields of sac files
2. mseedlh - prints the header and blockettes of seed control and data records
3. seedlinkclient - connects to a SeedLink server and retrieves miniseed data from it
4. lissclient - connects to a liss server and retrieves miniseed data from it
5. dswsclient - connects to the data select web service and retrieves miniseed data from it
SAC
SAC supports both reading of binary SAC datafiles, as well as poles and zeros.
SacTimeSeries sac = new SacTimeSeries(filename);
or
DataInput dis = ...
SacTimeSeries sac = new SacTimeSeries(dis)
and reading a polezero file:
SacPoleZero spz = new SacPoleZero(filename);
SEED and MiniSEED
Miniseed support is good for straight miniseed, ie only binary "data records" and no ascii "control records". It is less complete for the control blockettes in full SEED. SeisFile also does not include routines to decompress seed data, please see SeedCodec for these routines. A miniseed file can be read like this.
DataInput dis = new DataInputStream(new BufferedInputStream(new FileInputStream(filename)));
PrintWriter out = new PrintWriter(System.out, true);
try {
while (true) {
SeedRecord sr = SeedRecord.read(inStream, 4096);
// maybe print it out...
sr.writeASCII(out);
if (sr instanceof DataRecord) {
DataRecord dr = (DataRecord)sr;
// now do something with the data...
}
}
} catch (EOFException e) {
}
PSN
PSNDataFile psnData = new PSNDataFile(filename);
SeedLink
An example of seedlink support is in src/main/java/edu/sc/seis/seisFile/seedlink/Client.java which can also be run as a client. For example:
bin/seedlinkclient -n II -c BHZ -m 8
will print a summary of 8 packets from the II network and
bin/seedlinkclient -n IU -s KONO -c BHZ -o kono.mseed -m 8
will store the next 8 packets for KONO in a miniseed file.
Usage is:
java edu.sc.seis.seisFile.seedlink.Client [-n net][-s sta][-l loc][-c chan][-h host][-p port][-o outfile][-m maxpackets][--verbose][--version][--help]
Download
the distribution can be downloaded here: http://www.seis.sc.edu/downloads/seisFile and the jar file will be in the lib subdirectory.
seisFile can be recompiled with the gradlew script, like ./gradlew jar which will place a recompiled jar in the build/libs directory. See gradle.org for more information.
If you have any comments, please email us.