男单 618

生活象筒装的卫生纸,开始的时候怎么扯都不觉得在转,后来转的越来越快。

关于FY2D_IJToLatLon.NOM文件的补充说明

with one comment

FY2D_IJToLatLon.NOM来自http://fy3.satellite.cma.gov.cn/PortalSite/StaticContent/DocumentDownload.aspx,被称为“风云二号标称格式文件(NOM)经纬度对照表”,用于查找全圆盘标称图像文件上每一点的经纬度。
关于该文件的原说明文件如下:

FY-2D全圆盘标称图经纬度查照表

文件名:FY2D_IJToLatLon.NOM

文件格式说明

行数:2288
列数:2288
说明:该文件数据采用二进制4字节浮点型方式存储,按照全部点经度,全部点纬度的方式排列。
星下点经度为:86.5E

需要补充一点,就是文件存放浮点数据的方式是低字节存放数据的高字节。

Written by amao

2010/07/14 at 21:24

Posted in 其他

调用u.nu的api缩短网址

without comments

Python语言: 调用u.nu的api缩短网址
#!/usr/bin/python
#coding: utf-8

import sys
import urllib2

api_address = 'http://u.nu/unu-api-simple?url='

for org_url in sys.argv[1:]:
    request = urllib2.urlopen(api_address + urllib2.quote(org_url))
    short_url = request.read()
    if short_url.startswith('http'):
        print org_url, '–> ', short_url
    else:
        print 'Error'

Written by amao

2010/07/04 at 20:13

Posted in python, 软件

Tagged with , ,

Beamer中使用verbatim环境

without comments

\begin{frame}[fragile]

Written by amao

2010/07/02 at 10:25

Posted in LaTeX相关

Tagged with , ,

使用lxml解析html文件

without comments

之前一直搞错了,实际上只需要使用lxml.html模块,读入html文件后,直接调用xpath定位所需要的内容就行了,不再需要etree什么的了。具体看下面的例子:

Python语言: 使用lxml解析html文件

01 #coding: utf-8
02
03 from lxml import *
04 import lxml.html as H
05 import urllib2
06
07 def getart(url):
08     f = urllib2.urlopen(url)
09     content = f.read()
10    
11     art = []
12     doc = H.document_fromstring(content)
13     p = doc.xpath(‘/html/body/div[2]/div[2]/div/div/ul/li/div[2]/p’)
14     for i in p:
15         tmp = i.text_content()
16         tmp = tmp.encode(‘utf-8′)
17         tmp = tmp.replace(\r, \n)
18         art.append(tmp)
19     return art
20
21 if __name__ == ‘__main__’:
22     urls = ['http://www.douban.com/group/topic/12018319/',
23             'http://www.douban.com/group/topic/12018319/?start=100']
24     outfile = open(‘zheda.txt’, ‘w’)
25     for url in urls:
26         art = getart(url)
27         for item in art:
28             outfile.write(item+\n)
29     outfile.close()

附:浙大夜惊魂6月26日更新至101章
hotfile: http://hotfile.com/dl/50704792/39ca85e/626101.txt.html
xun6: http://is.gd/d4Ym0

Written by amao

2010/06/27 at 0:00

Posted in python, 软件

使用Firebug+XPather进行手工采集

without comments

Firebug和XPather都是Firefox的插件。
用Firebug查找页面内容的xpath路径,复制后,到XPather中执行,提取页面中其他内容,然后,在“Web Clipping”页中复制所有内容即可。

上面的方法对于提取连载的小说特别管用。

Written by amao

2010/06/26 at 21:28

Posted in 软件

Learning Python – 01

without comments

Python中处理变量的方式和其他语言有很大的不同,尽管这些区别看上去没有那么明显。

Python中所有东西都是对象,变量只是指向对象的指针。所以类型是跟着对象走的,而不是跟着变量走。比如下面的代码在Python中是完全正确的(尽管实际上很少有人这么写代码):
a = 300
a = ’spam’
a = 1.23
第一行,Python新建了一个整数对象,值为300,同时变量a指向这一对象。第二行,Python新建一个字符串对象’spam’,并且让变量a指向这一变量,并且,由于没有其他变量指向300这一对象,这一对象所占用的内容会被Python自动回收。第三行发生的事情是类似的。
好象也没什么,很多解释型的语言,似乎都是这样。下面再来看点不一样的东西。比较一下以下两段代码中的最后一行会返回什么:
代码1:
a = 300
b = 300
a is b
代码2:
a = 300
b = a
a is b
对于代码1,a is b返回False,也就是说,a和b指向了不同的对象,只是他们的值都300。对于代码2,a is b将返回True,a和b指向了同一个对象。如何说明他们确实是同一个对象呢?来看:
a = [1, 2, 3]
b = a
a.append(4)
这时,a等于[1,2,3,4],b也等于[1,2,3,4],因为他们指向的是同一个对象。再来看:
代码3:
a = 300
b = 300
a = a + 100
代码4:
a = 300
b = a
a = a + 100
问,执行完上面两段代码后,a、b各是多少?
毫无疑问,无论代码3还是4,执行后,a都应该是400,关键是b。对于代码3,由于已经知道a,b原来指向的就是不同的对象,因此,b应该还是300。对于代码4,或许有人认为b应该400,因为“a is b”是True,而且刚才也看到了list的例子。其实b还是等于300。
这里涉及到Python数据类型的另一个性质。Python中,整数对象是immutable的,也就是不可变的,一旦生成,其值是不可更改的。a = a + 100这一句的实际执行过程是,取出a当前指向对象的值300,加上100后为400,则新建一个值为400的整数对象,并令a指向该对象。也就是说,无论代码3还是代码4,a都不是原来的a了,只是在代码3中,这一点表现的并不明显。而在代码4中,由于b仍指向原来的300那个对象,因此,300不会被收回(每个对象有个计数器,自动记录有多少变量指向该对象,只有当计数器减为0时,Python才会自动回收该对象),b的值也不会改变。而刚才list的例子中,由于list是可变类型的,因此改变a,就是改变b。
Python越学越有趣了。

Written by amao

2010/06/26 at 0:27

Posted in python

PhET: Interactive Simulations

without comments

推荐一个在线物理、化学现象交互演示的网站PhET: http://phet.colorado.edu/ ,也可能我火星了。


Written by amao

2010/06/25 at 22:01

Posted in 科技, 网站推荐

Spyder: Python的科学计算IDE

without comments

Spyder(之前叫Pydee)是一个面向Python科学计算的IDE。跨平台,轻量级,提供了类似Matlab集成环境的功能。对于Windows平台的用户,可以考虑直接安装Python(x,y)这个发行版,集成了众多常用的与科学计算有关的Python包。

Written by amao

2010/06/24 at 21:59

Posted in python

Batch Commander–自动设置TeX文件的样式

with one comment

Batch Commander是一个自动设置TeX文件样式的GUI程序,这里是作者的视频讲解:Styling TeX documents with Batch Commander | River Valley TV

但是我安装不上,找不到QtPoppler这个模块。Google说可能是要装pypoppler,但是始终装不上去。哪位知道如何解决?

补充:
Batch Commander中自带了QtPoppler.so,可惜是32位的,我64位的系统用不了……
后来在这里:http://forum.ubuntuusers.de/topic/python-qt-frontend-templatesystem-fuer-latex-/#post-1959666,找到pypoppler-qt4源码,里面的so文件也是32位的。又安装了一堆依赖才编译成功。

Written by amao

2010/06/01 at 21:47

Posted in LaTeX相关

Tagged with ,

pdf文件自动剪裁(自动切白边)

without comments

可能用到的环境、工具:Ubuntu 10.04+TeXLive 2008+pdfcrop+CUPS打印驱动,用Windows的兄弟就不用看了,这些工具理论上在Windows下也有,但是还要另外装不少东西。

下面假设原文件(也就是打算切白边的文件)叫abc.pdf

  1. pdfcrop abc.pdf,默认会生成abc-crop.pdf文件,这个已经是切掉白边的了,要是你不嫌它大(或者它确实不大)的话,就完成了。
  2. 用阅读器(如evince)打开abc-crop.pdf,并通过CUPS打印到文件,打印时注意关闭所有和页面缩放有关的命令,并选中“使用文档的页面尺寸作为页面尺寸”。打印,完成。

说明:

  1. pdfcrop其实是TeXLive自带的。本质上是一个perl脚本。
  2. pdfcrop要调用gs(ghostscript)确定每页的白边大小。对于空白页,会报错,忽略即可。
  3. pdfcrop还可以在切的时候留若干像素,具体请–help。
  4. pdfcrop要调用pdftex以生成切白边后的文件。
  5. pdfcrop本质上(猜想,没有阅读源码)是先将abc.pdf展开成单页的pdf,调用gs切白边,再用tex文件直接调用pdf页面,最后用pdftex生成输出。
  6. pdfcrop直接生成的文件一般是原文件的20倍以上(本人测试的几个文件均是如此),虚拟打印到新的文件后,基本可以恢复到与原文件同样数量级的尺寸。
  7. 测试都是使用的内嵌字体的中英文PDF。扫描版的没试,估计够呛。

5月27日更新:
使用这个脚本PDF压缩脚本-Compress PDF,代替上面的第2步。简单,效果不错。

Written by amao

2010/05/25 at 0:43

Posted in linux, 软件

Tagged with , , ,