作为一名天文学家,我开始使用 python,并且一直在使用 numdisplay 包来显示和操作 SAO ds9 上的图像。 我大学的计算机实验室最近将linux版本更新到了Debian 7.1。 我正在运行 python 2.7.3 和 python 0.13.1 和 numdisplay v.1.5.6、pyds9 v.1.7 和 pyfits v2.3.1。
我正在使用 http://stsdas.stsci.edu/perry/pydatatut.pdf 中给出的显示程序.
加载合适的图像并打开 ds9 界面后,我尝试在 ds9 上显示该图像,但 ds9 崩溃了。 以下是我在交互模式下使用的步骤:
In [2]: import pyfits as pf
In [3]: import numdisplay as nd
In [4]: import ds9
In [5]: ds9.ds9()
Out[5]: ds9.ds9 at 0xa3e870c
In [6]: im = pf.getdata('M52b.fit')
In [7]: nd.display(im)
我收到以下错误消息:
error Traceback (most recent call last)
<ipython-input-7-6988a1e88909> in <module>()
----> 1 nd.display(im)
/usr/local/lib/python2.7/dist-packages/numdisplay/__init__.pyc in display(self, pix, name, bufname, z1, z2, transform, zscale, contrast, scale, offset, frame)
395
396 # Initialize the specified frame buffer
--> 397 _d.setFrame(self.frame)
398 _d.eraseFrame()
399
/usr/local/lib/python2.7/dist-packages/numdisplay/displaydev.pyc in setFrame(self, frame_num)
405
406 code = self._LUT | self._COMMAND
--> 407 self._writeHeader(self._IIS_WRITE, code, -1, 0, 0, 0, 0)
408
409 # Update with user specified frame number
/usr/local/lib/python2.7/dist-packages/numdisplay/displaydev.pyc in _writeHeader(self, tid, subunit, thingct, x, y, z, t)
540 sum = 0xffff - (sum & 0xffff)
541 a[3] = sum
--> 542 self._write(a.tostring())
543
544 def close(self, os_close=os.close):
/usr/local/lib/python2.7/dist-packages/numdisplay/displaydev.pyc in _write(self, s)
578 n = len(s)
579 while n>0:
--> 580 nwritten = self._socket.send(s[-n:])
581 n -= nwritten
582 if nwritten <= 0:
error: [Errno 104] Connection reset by peer
In [8]:
有人可以帮我吗?
谢谢
马可
最佳答案
错误消息的意思是“我正在发送数据,但远程端突然关闭了连接。”
所以你需要检查服务器的错误日志来找出问题所在。这并不意味着客户端正确与否(客户端可能会向服务器发送非法数据导致服务器崩溃),但您需要首先调试服务器以找出中止连接的原因。
关于python - numdisplay ds9 在 Debian Linux 上崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23061271/