算法艺术创作
algorithmic-art
通过代码和可调参数创作生成艺术与交互式视觉效果。
travel-times-and-imaging【设计与创意】Teaches a Researcher to compute ObsPy TauP arrivals, ray paths, pierce points, geodetic distances, azimuths, and headless waveform, spectrum, beachball, and optional map visualizations.
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
Use this skill when the task asks for theoretical seismic arrivals, ray geometry, source/receiver geodesy, or a reproducible scientific figure. Keep the input coordinates, model, phases, units, plotting backend, and output filenames in the analysis record. This skill is offline by default: it does not retrieve data or open a GUI.
TauPyModel.get_travel_times with source depth (km),
epicentral distance (degrees), and an explicit phase_list such as ['P', 'S'].get_ray_paths for sampled path points, or
get_pierce_points for model-boundary/additional-depth intersections.locations2degrees for a spherical great-
circle distance, or gps2dist_azimuth for WGS84 distance in metres plus forward
and reverse azimuths. The TauPyModel.*_geo methods convert coordinates to a
TauP distance; they still calculate travel time/path on a spherical model.Arrivals.plot_rays/plot_times, plot_ray_paths, or
plot_travel_times for TauP; Stream.plot/Trace.plot for waveforms;
Trace.spectrogram or obspy.imaging.spectrogram.spectrogram for spectra;
and obspy.imaging.beachball.beachball for focal mechanisms. Use show=False
(or MPLBACKEND=Agg) and an explicit outfile for automation.[-90, 90], normalize/document longitudes, and state
whether depth is below the surface in km. Do not silently treat metres as km.TauPyModel(model='iasp91'); model
loading is comparatively expensive. Reuse it for multiple queries.len(arrivals), each arrival.name,
arrival.time (seconds), arrival.distance (degrees), and the relevant
path/pierce record array before plotting or selecting an arrival.| Need | Public call | Output/validation signal |
|---|---|---|
| Time | TauPyModel.get_travel_times(...) | Arrivals; arrival time is seconds |
| Path | get_ray_paths(...) | arrival.path fields p,time,dist,depth |
| Pierce | get_pierce_points(..., add_depth=[...]) | arrival.pierce record array |
| Geographic time/path | get_travel_times_geo / get_ray_paths_geo | geographic distance/azimuth metadata when supported |
| Distance/azimuth | locations2degrees / gps2dist_azimuth | degrees, or (metres, azimuth, backazimuth) |
| Waveform | stream.plot(outfile=..., show=False) | non-empty image; input remains unchanged |
| Spectrum | trace.spectrogram(samp_rate=..., outfile=..., show=False) | non-empty image; window must fit data |
| Focal mechanism | beachball([strike,dip,rake], outfile=...) | non-empty image or bytes with format= |
See taup-models.md for phase/model/depth details, geodetics-and-imaging.md for plotting recipes and optional Cartopy behavior, and troubleshooting.md for recovery. Run the bundled offline helper for a tiny end-to-end check:
python scripts/taup_and_plot_smoke.py --help
MPLBACKEND=Agg python scripts/taup_and_plot_smoke.py --output-dir ./obspy-imaging-smoke
The helper creates only its selected output directory, uses shipped model data and synthetic samples, and reports whether Cartopy is available without trying to download map data.
waveform-processing or signal-analysis; this skill only plots/inspects
waveforms in support of imaging.formats-and-metadata.data-access.