技能创建器
skill-creator
创建、改进和评估自定义技能,把专业流程转化为可重复使用的 AI 能力。
data-access【数据与研究】This skill guides bounded retrieval of ObsPy waveforms, station metadata, and events from FDSN, routing, local SDS/TSIndex, and SeedLink services.
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
Use this skill when a task must locate and retrieve seismic waveforms, station metadata, or event catalogs. It covers FDSN queries, FDSN routing, local SDS/TSIndex archives, and live SeedLink streams. It does not process waveforms, serialize event/inventory objects, or run signal algorithms; route those tasks to the corresponding sibling skills.
endtime <= starttime. Keep empty location codes distinct from
wildcards.--help
or --self-test, then inspect its JSON. It performs no HTTP, SeedLink, or
file writes. See query recipes.filename only
when raw server output is deliberately required. Do not add credentials to
a query plan or log.Stream, Inventory, or
Catalog is a data result to report, not permission to broaden the query.obspy.clients.fdsn.Client is the default for ordinary waveform,
station, and event requests. get_waveforms() returns a Stream,
get_stations() returns an Inventory, and get_events() returns a
Catalog. Use level="response" only when response metadata is needed.
FDSN selectors support comma-separated values and */? wildcards; use
-- for a blank location in a textual plan or query representation.RoutingClient("earthscope-federator") or
RoutingClient("eida-routing") can route waveform/station requests across
providers. It does not provide get_events(). Its filename and
attach_response options are not supported; use direct FDSN clients when
those are required. Include/exclude providers and a timeout when the
routing service is appropriate.obspy.clients.filesystem.sds.Client(<archive-root>) reads the local
SDS layout. Call get_waveforms() with UTC bounds; the client checks nearby
day files using its border settings. Missing day files are gaps, not a
reason to contact a remote service. Use get_availability_percentage() or
Stream.get_gaps() before handing data to processing.obspy.clients.filesystem.tsindex.Client(<database>, datapath_replace=(<indexed-prefix>, <local-prefix>)) reads an existing local
SQLite TSIndex. Use get_availability_extent(), get_availability(), or
has_data() before get_waveforms(). Keep the index and data path local;
there is no implicit FDSN fallback. Indexer is an archive-preparation
operation and is outside a read-only retrieval plan unless explicitly
requested.EasySeedLinkClient(<host>:<port>, autoconnect=False), explicitly connect,
select streams with select_stream(network, station, "EH?"), then run with
an on_data(trace) callback. run() is an unbounded loop; define external
stop/close ownership before using it. create_client() connects immediately
and is therefore not a planning primitive.For waveforms, check len(stream), each trace.id, start/end, and
stream.get_gaps(); preserve separate traces when gaps matter. For SDS and
TSIndex, compare the requested interval with availability APIs and distinguish
missing archive files from a provider 204/no-data response. For station and
event results, check object counts and the time/location filters before routing
metadata or serialization work elsewhere. Use the exact service exceptions
(FDSNNoDataException, timeout, authentication, request-too-large, or
service-unavailable variants) in troubleshooting rather than retrying every
failure.
Use the self-contained planner from a shell or Python environment:
python scripts/query_plan.py --help
python scripts/query_plan.py --self-test
python scripts/query_plan.py fdsn --service waveforms --base-url https://example.invalid \
--network IU --station 'A*' --location '' --channel 'BH?' \
--start 2020-01-01T00:00:00Z --end 2020-01-01T00:10:00Z
The helper emits deterministic JSON, never dispatches a request, and marks
local missing files without attempting network recovery. Replace the example
endpoint with a provider selected by the user; example.invalid is only a
non-routable planning fixture.
Read api-reference.md for signatures and return contracts, query-recipes.md for bounded FDSN/routing/SDS/TSIndex/SeedLink recipes, and troubleshooting.md for failure handling.