earthworm module


   We are using the earthworm client to connect to a server, when we do it in a machine that is NOT running earthworm we are able to get waveforms from the EW server, but if we try to run the same script on a machine running EW and trying to connect to another EW server we get a socket timeout message, any ideas why this happens?

this is my flow:

In [1]: from obspy.earthworm import Client

In [2]: from obspy.core import UTCDateTime

In [3]: client = Client("", 16022)

In [4]: nw = client.availability("BC", "*", "*")

In [5]: print nw[35]
('BC', 'SFX', '--', 'HNZ', UTCDateTime(2012, 11, 5, 15, 53, 46, 705000), UTCDateTime(2012, 11, 14, 21, 11, 59, 975000))

In [6]: now = UTCDateTime()

In [7]: now2 = now - 120

In [8]: st = client.getWaveform("BC", nw[35][1], '', nw[35][3], now2, now)
socket timeout in getSockCharLine()


Sergio A.


You may have already checked this, but for us these kind of problems are almost always firewall issues on the target. Can you connect from non-ew machines to both earthworms? Are they all on the same network? Can you ssh from client on ew machine to desired server? 'nmap' is a good tool to sort these kind of issues.



    Just to close this thread, the problem was a bug in the Linux port of obspy, according to this:

So the solution was to change the line that's indicated in the bug report, and now works just fine

Best regards

Sergio A.

Hi Sergio,

thanks for the feedback. Indeed, I just checked, this bugfix was after
the last stable release for obspy.earthworm. A new obspy release is
planned for early december and of course incorporating this fix then.