Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

question about channel filtering behavior #79

Open
dylanmikesell opened this issue Jul 19, 2021 · 7 comments
Open

question about channel filtering behavior #79

dylanmikesell opened this issue Jul 19, 2021 · 7 comments

Comments

@dylanmikesell
Copy link
Contributor

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!

@smousavi05
Copy link
Owner

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

@dylanmikesell
Copy link
Contributor Author

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.

@smousavi05
Copy link
Owner

@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"]

@Bryanrt-geophys
Copy link

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)

@smousavi05
Copy link
Owner

@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.

@Bryanrt-geophys
Copy link

Bryanrt-geophys commented Jul 25, 2021

@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?

@smousavi05
Copy link
Owner

@Bryanrt-geophys thanks. No simulation is not easy. Jut try downloading the same data using Obspy and see if you get those missing traces.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants