我开始将python用作天文学家,并且一直在使用numdisplay软件包在SAO ds9上显示和处理图像。
我大学的计算机实验室最近将linux版本更新为Debian 7.1。
我正在用python 0.13.1和numdisplay v.1.5.6,pyds9 v.1.7和pyfits v2.3.1运行python 2.7.3。
我正在使用http://stsdas.stsci.edu/perry/pydatatut.pdf中给出的显示过程。
加载适合图像并打开ds9界面后,我尝试在ds9上显示图像,但ds9崩溃。
此后,我在交互模式下使用的步骤:
在[2]中:将pyfits导入为pf
在[3]中:将numdisplay导入为nd
在[4]中:导入ds9
在[5]中:ds9.ds9()
Out [5]:位于0xa3e870c的ds9.ds9
在[6]中:im = pf.getdata('M52b.fit')
在[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]:
有谁能够帮助我?
谢谢
马可
最佳答案
错误消息的意思是“我正在发送数据,但远程端突然关闭了连接。”
因此,您需要检查服务器的错误日志以找出问题所在。这并不意味着客户端正确与否(客户端可能会将非法数据发送到服务器,从而使其崩溃),但是您需要首先调试服务器,以查明连接中断的原因是什么。