SeisIO v0.1.3
get_data
for Web Requests
Web requests for time-series data (formerly IRISget
, FDSNget
) now uniformly use the function get_data
(or, equivalently, get_data!
with an existing SeisData object).
get_data
works as a mass downloader with FDSN dataselect queries:- Long requests are fully supported.
- Specify subrequest length in days with keyword
nd
(default:nd=1
).
- Specify subrequest length in days with keyword
- Rectangular region data queries can be done with keyword
reg
. - Radial data queries around a central point can be done with keyword
rad
.
- Long requests are fully supported.
- FDSN methods now support the full list of standard FDSNWS servers.
- Type
?seis_www
for server list and correspondence.
- Type
- Minor changes:
- Station XML is now written to file "FDSNsta.xml" by default; change the filename with keyword
xml_file
. - Deprecated keyword
q
(quality) due to breakingly non-standard implementation.
- Station XML is now written to file "FDSNsta.xml" by default; change the filename with keyword
Float32 Support
- Arrrays in the "data" field of a SeisData object (
:x
) can now be either Array{Float64,1} or Array{Float32,1}. readsac
,readsegy
,readuw
, andreadwin32
now rMajor changes since last release:
get_data
for Web Requests
Web requests for time-series data (formerly IRISget
, FDSNget
) now uniformly use the function get_data
(or, equivalently, get_data!
with an existing SeisData object).
get_data
works as a mass downloader with FDSN dataselect queries:- Long requests are fully supported.
- Specify subrequest length in days with keyword
nd
(default:nd=1
).
- Specify subrequest length in days with keyword
- Rectangular region data queries can be done with keyword
reg
. - Radial data queries around a central point can be done with keyword
rad
.
- Long requests are fully supported.
- FDSN methods now support the full list of standard FDSNWS servers.
- Type
?seis_www
for server list and correspondence.
- Type
- Minor changes:
- Station XML is now written to file "FDSNsta.xml" by default; change the filename with keyword
xml_file
. - Deprecated keyword
q
(quality) due to breakingly non-standard implementation.
- Station XML is now written to file "FDSNsta.xml" by default; change the filename with keyword
Float32 Support
- Arrrays in the "data" field of a SeisData object (
:x
) can now be either Array{Float64,1} or Array{Float32,1}. readsac
,readsegy
,readuw
, andreadwin32
now read into single-precision channels, consistent with each file format's native precision.- SEED files and SEED data (e.g. SeedLink,
readmseed
, FDSN requests) use double-precision channels. - Data processing operations preserve the precision of SeisData channels.
Data Formats
Mini-SEED
- Added support for blockette types:
- [300] Step Calibration Blockette (60 bytes)
- [310] Sine Calibration Blockette (60 bytes)
- [320] Pseudo-random Calibration Blockette (64 bytes)
- [390] Generic Calibration Blockette (28 bytes)
- [395] Calibration Abort Blockette (16 bytes)
- [2000] Variable Length Opaque Data Blockette
- Added support for Geoscope, CDSN, SRO, and DWWSSN decoders.
- Improved time gap handling. For data sampled at fs, with δ = 1.0/fs, a time gap is now recorded when the gap between the end of one packet and the start of the next exceeds 1.5x the sample rate δ (i.e. when total drift > 0.5δ).
- Blockettes of unrecognized types are now skipped; they should no longer throw errors.
Other
- Win32
readwin32
is now orders of magnitude faster and uses orders of magnitude less memory.- Use kw
jst=false
to NOT apply a 9h correction to win32 data times.
- SEG Y
- Dictionary keys with
full=true
are now comprehensible.
- Dictionary keys with
- SAC
- readsac now supports bigendian files
New functions
find_regex
adds OS-agonsticfind
functionality.equalize_resp!
translates instrument frequency responses to a given complex response matrix.detrend!
removes a linear trend from each channel in a SeisData object.demean!
removes the mean from each channel of a SeisData object.
Minor Changes
FDSNevt
has been rewritten.- The built-in
ls
now behaves like Bash ls but outputs full paths in returned file names.- Most invocations of
ls
still invokereaddir
orisile
. - Partial file name wildcards (e.g. "
ls(data/*.sac)
) now invokeglob
. - Path wildcards (e.g.
ls(/data/*/*.sac)
) invokefind_regex
to circumvent glob limitations. - Passing only "*" as a filename (e.g. "
ls(/home/*)
) invokesfind_regex
to recursively search subdirectories, as in the Bash shell.
- Most invocations of
- Improved read methods for
rseis
.
merge!
Functionality, robustness, and speed have been greatly improved.
- Channels are no longer combined if they have different (non-empty) values for resp, units, or loc, or if they have different fs values.
- Channels with no data (:x empty) or time info (:t empty) are deleted during a merge.
- The data array (:x) of each merged channel is now aligned in memory at the end of the merge process.
sync!
Functionality, robustness, and speed have been greatly improved.
- No longer calls
ungap!
or requires ungapped data - No longer has an option to resample data
RandSeis
The "randseis" functions are now a submodule, SeisIO.RandSeis
. Functions have been renamed:
randseischannel
-->RandSeis.randSeisChannel
randseisdata
-->RandSeis.randSeisData
randseishdr
-->RandSeis.randSeisHdr
randseisevent
-->RandSeis.randSeisEvent
- Minor changes:
randSeisEvent
now uses the same keywords asrandSeisData
Bug Fixes
- Mini-SEED:
- Timing information from mini-SEED blockette type 500 (Timing Blockette) is now saved in the :misc dictionary for the appropriate channel.
- Fixed parsing of event detection blockettes.
- Now correctly handles SEED volumes in which record endianness changes.
- Fixed bug #7.
- SEG Y:
- Fixed how elevation are set for PASSCAL SEG Y.
- Fixed several breaking
readwin32
issues. - Irregularly-sampled data should now be handled correctly by processing routines.
isempty
is no longer defined forSeisEvent
.rseis
,wseis
:- The
:loc
field is no longer assumed to contain length-5 vectors. - The :resp field is once again read from file correctly.
wseis
no longer fails to write channels with very few data points.
- The
SeisData
:SeisData(n)
now always allocates memory correctly and uniquely.- Creation of SeisData objects from multiple SeisChannels works again.
- Consolidated methods for channel delete; standardized syntax.
Consistency and Performance
- Web functions now use standardized keywords (
?'SeisIO.kw
for a list) - Bad web requests no longer throw exceptions.
- When reading/writing strings from/to SeisIO composite types, the SeisIO native file format now support all Unicode characters supported by the Juila language.
- Addition of SeisChannel and SeisData objects is once again commutative.
- Exported functions are now more consistent and complete.
- SeedLink keywords are now more intuitive.
SeisData
objects:- Can now be created from
SeisEvent
objects, incorporating (only) the:data
subfield. - SeisData() no longer sets any fields.
SeisData(1)
andSeisData(SeisChannel())
are now identical.isempty
redefined in a self-consistent way.
- Can now be created from
gcdist
now returns an array, rather than a tuple of vectors.get_pha
is now correctly exported.note!
is a factor of 4 faster due to rewriting the time stamper.readsegy
now always returns a SeisData object.