obspy.imaging.util._id_key
- _id_key(id_)[source]
Compare two trace IDs by network/station/location single character component codes according to sane ZNE/ZRT/LQT order. Any other characters are sorted afterwards alphabetically.
>>> networks = ["A", "B", "AB"] >>> stations = ["X", "Y", "XY"] >>> locations = ["00", "01"] >>> channels = ["EHZ", "EHN", "EHE", "Z"] >>> trace_ids = [] >>> for net in networks: ... for sta in stations: ... for loc in locations: ... for cha in channels: ... trace_ids.append(".".join([net, sta, loc, cha])) >>> from random import shuffle >>> shuffle(trace_ids) >>> trace_ids = sorted(trace_ids, key=_id_key) >>> print(" ".join(trace_ids)) A.X.00.Z A.X.00.EHZ A.X.00.EHN A.X.00.EHE A.X.01.Z A.X.01.EHZ A.X.01.EHN A.X.01.EHE A.XY.00.Z A.XY.00.EHZ A.XY.00.EHN A.XY.00.EHE A.XY.01.Z A.XY.01.EHZ A.XY.01.EHN A.XY.01.EHE A.Y.00.Z A.Y.00.EHZ A.Y.00.EHN A.Y.00.EHE A.Y.01.Z A.Y.01.EHZ A.Y.01.EHN A.Y.01.EHE AB.X.00.Z AB.X.00.EHZ AB.X.00.EHN AB.X.00.EHE AB.X.01.Z AB.X.01.EHZ AB.X.01.EHN AB.X.01.EHE AB.XY.00.Z AB.XY.00.EHZ AB.XY.00.EHN AB.XY.00.EHE AB.XY.01.Z AB.XY.01.EHZ AB.XY.01.EHN AB.XY.01.EHE AB.Y.00.Z AB.Y.00.EHZ AB.Y.00.EHN AB.Y.00.EHE AB.Y.01.Z AB.Y.01.EHZ AB.Y.01.EHN AB.Y.01.EHE B.X.00.Z B.X.00.EHZ B.X.00.EHN B.X.00.EHE B.X.01.Z B.X.01.EHZ B.X.01.EHN B.X.01.EHE B.XY.00.Z B.XY.00.EHZ B.XY.00.EHN B.XY.00.EHE B.XY.01.Z B.XY.01.EHZ B.XY.01.EHN B.XY.01.EHE B.Y.00.Z B.Y.00.EHZ B.Y.00.EHN B.Y.00.EHE B.Y.01.Z B.Y.01.EHZ B.Y.01.EHN B.Y.01.EHE