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