I did a code in which I pick P-wave seismic waveform, basically is a time pick along waveform, also compute the signal-to-noise and other variables.
Here is part of my code.
for tr in st:
tr_cut = tr.trim(A, B) #cut the waveform from A to B section
#Here starts to compute the P time, Signal-to-noise, etc
scnl, picks, polarity, snr, uncert = picker.picks(tr_cut)
all_ = []
for i in range(len(picks)):
print (scnl, picks[i], polarity, snr, uncert) # this is the output
# Here I try to append the data inside a DataFrame
all_.append(
{
'scnl': scnl,
'picks': picks[i],
'snr': snr,
'polarity': polarity,
'uncert': uncert
}
)
pd.DataFrame(all_)
But I am not being able to append the output from the function I specify here
scnl, picks, polarity, snr, uncert = picker.picks(tr_cut)
However if I print the output of the function I get the results
print (scnl, picks[i], polarity, snr, uncert) gives an output like this:
BBOJ.SHZ.BO., UTCDateTime(2020, 11, 10, 13, 9, 59, 200000), '', 8.1999993, 0.02
BBOD.SHZ.BO., UTCDateTime(2020, 11, 10, 13, 10, 4, 260000), 'D', 9.5, 0.02
BBOB.SHZ.BO., UTCDateTime(2020, 11, 10, 13, 10, 7, 620000), 'C', 8.90004, 0.040000
The aim of my idea is to append all this output inside the DataFrame but I can not do it. Moreover while I try to convert my DataFrame to CSV I get the following error.
‘list’ object has no attribute ‘to_csv’
Would you mind give me feedback what I am doing wrong, thank you Tonino
Advertisement
Answer
In order to make it work I modified a little the code with @Deep suggestions.
all_ = []
for tr in st:
tr_cut = tr.trim(A, B) #cut the waveform from A to B section
#Here starts to compute the P time, Signal-to-noise, etc
scnl, picks, polarity, snr, uncert = picker.picks(tr_cut)
for i in range(len(picks)):
print (scnl, picks[i], polarity, snr, uncert) # this is the output
# Here I try to append the data inside a DataFrame
all_.append(
{
'scnl': scnl,
'picks': picks[i],
'snr': snr,
'polarity': polarity,
'uncert': uncert
}
)
df = pd.DataFrame.from_dict(all_, orient='columns')
df.to_csv("Picks.csv")
Moving the variable all_ = []
outside of the first loop solved my issue