EQTransformer
EQTransformer copied to clipboard
question about channel filtering behavior
I am running a download using a channel filter (I think anyways). I use the following.
channel_list=["HH[ZNE12]"]
However, I returned in the json file in json/ is the complete list of channels at a station. For example,
"REDW": {"network": "IW", "channels": ["HN1", "LN1", "LH1", "BH2", "LN2", "LHZ", "BH
1", "BHZ", "HN2", "HNZ", "LNZ", "LH2"], "coords": [43.3624, -110.8518, 2192.0]}
Can you please explain the behavior of channel_list to me? I am writing some other code to build a station file for hypoinverse from the json file, but the fact that there are these extra channels is screwing things up for me. I did update EQTransformer code today, so I am using EQTransformer==0.1.61.
Thanks!
Hi @dylanmikesell, your channel_list format looks fine. These are channel_priorities by the way and I do not know why it returns low frequency and broadband channels as well. Under the hood Obspy's mass downloader is being used these are the documentations https://docs.obspy.org/packages/autogen/obspy.clients.fdsn.mass_downloader.html
I think the mass_downloader call is fine. However, in utils/downloader.py there is the makeStationList() function. It looks to me like someone was trying to code in a channel filter given the channel_list
variable, but I do not think it is working. The function downloadMseeds() does only download the channel_list
channels. But I am not sure why channel_list
is an input to makeStationList() when it doesn't seem to filter the json file channels.
@dylanmikesell I see now. It seems the formatting conventions for channel list is different here. Could you try something like this: channel_list=["HHZ", "HHN", "HHE", "HH1", "HH2"]
I have a related question to this. I am creating my station list and finding a mix of stations with multiple channels and some with a single channel, which seems fine. However, when I run the downloader, I am only getting mseed files with single component data for every station on my station list. I don't believe I am using the downloader incorrectly but is there something I am doing that is causing only a single channel to be collected per station?
Example
Station MNHN from JSON list has channels HH2, HHZ, HH1
downloaded mseed file 'TX.MNHN.00.HHZ__20200501T000000Z__20200502T000000Z.mseed' only has the channel HHZ and is the only mseed downloaded for station MNHN.
Code
makeStationList(json_path=json_basepath,
client_list=["IRIS"],
min_lat=31.00,
max_lat=33.50,
min_lon=-105.00,
max_lon=-102.00,
start_time= start_time,
end_time=end_time,
channel_list=["HHZ", "HHE", "HHN", "EHZ", "HH1", "HH2", "EHE", "EHN", "EH1", "EH2"],
filter_network=["SY", "PN"],
filter_station=["DG01", "DG02", "DG03", "DG04", "DG05", "DG06", "DG07", "DG08", "DG09",
"MB01", "MB02", "MB04", "MB07",
"PB03", "PB04", "PB06", "PB02", "PB09", "PB10", "PB12", "PB13", "PB14", "PB15",
"PB16", "PB18", "PB19", "PB21", "PB28", "PB29", "PB30", "PB31", "PB32", "PB33"])
downloadMseeds(client_list=["IRIS"],
stations_json=json_basepath,
output_dir="downloads_mseeds",
min_lat=31.00,
max_lat=33.50,
min_lon=-105.00,
max_lon=-102.00,
start_time=start_time,
end_time=end_time,
chunk_size=1,
channel_list=["HHZ", "HHE", "HHN", "EHZ", "HH1", "HH2", "EHE", "EHN", "EH1", "EH2"],
n_processor=4)
@Bryanrt-geophys Hi Bryan, that sometimes happens just due to networking traffic. I have seen that behavior before but couldn't find any explanation/solution for it as it is mainly governed by Obspy API and IRIS fetching mechanism.
@smousavi05 Thanks Mustafa. It appears to have happened with every instance I have drawn on so far. I will try looking into Obspy and see if there is something I can figure out from there. If I find anything I will be sure to pass it on.
Also, as I am not a seismologist, I don't know if this is a horrible idea but can the missing components from a sensor be simulated easily from single component data?
@Bryanrt-geophys thanks. No simulation is not easy. Jut try downloading the same data using Obspy and see if you get those missing traces.