2014年2月21日星期五

Spitzer IRAC photometry problems

If you have questions about the unit of IRAC photometry, you can check this website first:
http://coolwiki.ipac.caltech.edu/index.php/Units#Aside_on_fluxes_and_flux_densities
Also see https://irsasupport.ipac.caltech.edu/index.php?/Knowledgebase/Article/View/97/0/can-you-please-explain-how-the-irac-zmags-were-derived and the IRAC handbook
Need AB magnitude?  check upwebsite and read the following if you need more information:

(1) Explanation of AB magnitude and Vega magnitude
http://www.mattiavaccari.net/simstuff/simstuff05/node9.html
(2) Get the magnitude from IRAC image. obtain micro-Jy/pixel flux densities!
http://sohelp2.ipac.caltech.edu/support/index.php?/Knowledgebase/Article/View/30/8/how-do-i-convert-my-irac-images-into-flux-density-units-what-corrections-do-i-need-to-worry-about-how-do-i-convert-the-flux-densities-into-magnitudes


Last, here is the formula:

 The formula in the IRAC handbook is in Vega magnitude. Thus the zero points are different with different wavelength (Zeropoints can be found in Table 4.1 in the IRAC handbook). By the way, the unit in IR band is Jy.
 While I use the AB magnitude, the zero point is always 3631 Jy for all band (http://en.wikipedia.org/wiki/AB_magnitude).

 Thus one can use the following formula to get the AB magnitude:
    m_AB = -2.5*log10(f/3631 Jy)  

 For IRAC images which are in unit of  mJy/sr:

   m_AB 
   = -2.5*log10(f*1e6/(3361/8.461595  Jr/pixel) ) 
   = -2.5*log10(f)+ 21.581423

2014年2月17日星期一

VIM中常用的查找、替换、删除模式总结

1,简单替换表达式
去掉所有的行尾空格:   %s/\s\+$//
去掉所有的空白行:       %s/\(\s*\n\)\+/\r/
去掉所有的"//"注释:     %s!\s*//.*!!
去掉所有的"/*...*/"注释:     %s!\s*/ \*\_.\{-}\*/\s*! !g
删除DOS方式的回车^M :%s/r//g
:%s= *$== 删除行尾空白:
:%s/^(.*)n1/1$/ 删除重复行:
:%s/^.{-}pdf/new.pdf/ 只是删除第一个pdf:
:%s/<!--_.{-}-->// 又是删除多行注释(咦?为什么要说「 」呢?)
:g/s*
 
^ $/d 删除所有空行 :这个好用有没有人用过还有其他的方法吗?
:g!/^dd/d 删除不含字符串'dd'的行
:v/^dd/d 同上 (译释:v == g!,就是不匹配!)
:g/str1/,/str2/d 删除所有第一个含str1到第一个含str2之间的行
:v/./.,/./-1join 压缩空行
:g/^$/,/./-j 压缩空行

2,简单删除命令 
ndw 或 ndW 删除光标处开始及其后的 n-1 个字符。
d0 删至行首。
d$ 删至行尾。
ndd 删除当前行及其后 n-1 行。
x 或 X 删除一个字符。
Ctrl+u 删除输入方式下所输入的文本。
^R 恢复u的操作
J 把下一行合并到当前行尾
V 选择一行
^V 按下^V后即可进行矩形的选择了
aw 选择单词
iw 内部单词(无空格)
as 选择句子
is 选择句子(无空格)
ap 选择段落
ip 选择段落(无空格)
D 删除到行尾
x,y 删除与复制包含高亮区
dl 删除当前字符(与x命令功能相同)
d0 删除到某一行的开始位置
d^ 删除到某一行的第一个字符位置(不包括空格或TAB字符)
dw 删除到某个单词的结尾位置
d3w 删除到第三个单词的结尾位置
db 删除到某个单词的开始位置
dW 删除到某个以空格作为分隔符的单词的结尾位置
dB 删除到某个以空格作为分隔符的单词的开始位置
d7B 删除到前面7个以空格作为分隔符的单词的开始位置
d) 删除到某个语句的结尾位置
d4) 删除到第四个语句的结尾位置
d( 删除到某个语句的开始位置
d) 删除到某个段落的结尾位置
d{ 删除到某个段落的开始位置
d7{ 删除到当前段落起始位置之前的第7个段落位置
dd 删除当前行
d/text 删除从文本中出现“text”中所指定字样的位置,
一直向前直到下一个该字样所出现的位置(但不包括该字样)之间的内容
dfc 删除从文本中出现字符“c”的位置,一直向前直到下一个该字符所出现的位置(包括该字符)之间的内容
dtc 删除当前行直到下一个字符“c”所出现位置之间的内容
D 删除到某一行的结尾
d$ 删除到某一行的结尾
5dd 删除从当前行所开始的5行内容
dL 删除直到屏幕上最后一行的内容
dH 删除直到屏幕上第一行的内容
dG 删除直到工作缓存区结尾的内容
d1G 删除直到工作缓存区开始的内容
:s/str1/str2/       用字符串 str2 替换行中首次出现的字符串 str1
:s/str1/str2/g      用字符串 str2 替换行中所有出现的字符串 str1
:.,$ s/str1/str2/g  用字符串 str2 替换正文当前行到末尾所有出现的字符串 str1
:1,$ s/str1/str2/g  用字符串 str2 替换正文中所有出现的字符串 str1
:g/str1/s//str2/g   功能同上
从上述替换命令可以看到:g 放在命令末尾,表示对搜索字符串的每次出现进行替换;不加 g ,表示只对搜索
字符串的首次出现进行替换;g 放在命令开头,表示对正文中所有包含搜索字符串的行进行替换操作。
给出一个字符串,可以通过搜索该字符串到达指定行。如果希望进行正向搜索,将待搜索的字符串置于两个“
/” 之间;如果希望反向搜索,则将字符串放在两个“?” 之间。例如:
:/str/                      正向搜索,将光标移到下一个包含字符串 str 的行
:?str?                      反向搜索,将光标移到上一个包含字符串 str 的行
:/str/w file                正向搜索,并将第一个包含字符串 str 的行写入 file 文件
:/str1/,/str2/w file        正向搜索,并将包含字符串 str1 的行至包含字符串 str2 的行写入 file 文件




1,简单替换表达式
替换命令可以在全文中用一个单词替换另一个单词:
:%s/four/4/g
“%” 范围前缀表示在所有行中执行替换。最后的 “g” 标记表示替换行中的所有匹配点。如果仅仅对当前行进行操作,那么只要去掉%即可
   如果你有一个象 “thirtyfour” 这样的单词,上面的命令会出错。这种情况下,这个单词会被替换成”thirty4″。要解决这个问题,用 “\<” 来指定匹配单词开头:
        :%s/\<four/4/g
显然,这样在处理 “fourty” 的时候还是会出错。用 “\>” 来解决这个问题:
        :%s/\<four\>/4/g
如果你在编码,你可能只想替换注释中的 “four”,而保留代码中的。由于这很难指定,可以在替换命令中加一个 “c” 标记,这样,Vim 会在每次替换前提示你:
        :%s/\<four\>/4/gc
2,删除多余的空格
要删除这些每行后面多余的空格,可以执行如下命令:
        :%s/\s\+$//
命令前面指明范围是 “%”,所以这会作用于整个文件。”substitute” 命令的匹配模式是
“\s\+$”。这表示行末($)前的一个或者多个(\+)空格(\s)。替换命令的 “to” 部分是空的:”//”。这样就会删除那些匹配的空白字符。
3,匹配重复性模式
星号项 “*” 规定在它前面的项可以重复任意次。因此:
        /a*
匹配 “a”,”aa”,”aaa”,等等。但也匹配 “” (空字串),因为零次也包含在内。星号 “*” 仅仅应用于那个紧邻在它前面的项。因此 “ab*” 匹配 “a”,”ab”,”abb”,”abbb”,等等。如要多次重复整个字符串,那么该字符串必须被组成一个项。组成一项的方法就是在它前面加 “\(”,后面加 “\)”。因此这个命令:
        /\(ab\)*
匹配: “ab”,”abab”,”ababab”,等等。而且也匹配 “”。
要避免匹配空字串,使用 “\+”。这表示前面一项可以被匹配一次或多次。
        /ab\+
匹配 “ab”,”abb”,”abbb”,等等。它不匹配 后面没有跟随 “b” 的 “a”。
要匹配一个可选项,用 “\=”。 例如:
        /folders\=
匹配 “folder” 和 “folders”。
4,指定重复次数
要匹配某一项的特定次数重复,使用 “\{n,m}” 这样的形式。其中 “n” 和 “m” 都是数字。在它前面的那个项将被重复 “n” 到 “m” 次 (|inclusive| 包含 “n” 和 “m”)。例如:
        /ab\{3,5}
匹配 “abbb”,”abbbb” 以及 “abbbbb”。
   当 “n” 省略时,被默认为零。当 “m” 省略时,被默认为无限大。当 “,m” 省略时,就表示重复正好 “n” 次。例如:
        模式           匹配次数
        \{,4}            0,1,2,3 或 4
        \{3,}            3,4,5,等等
        \{0,1}           0 或 1,同 \=
        \{0,}            0 或 更多,同 *
        \{1,}            1 或 更多,同 \+
        \{3}             3
5,多选一匹配
在一个查找模式中,”或” 运算符是 “\|”。例如:
        /foo\|bar
这个命令匹配了 “foo” 或 “bar”。更多的抉择可以连在后面:
        /one\|two\|three
匹配 “one”,”two” 或 “three”。
   如要匹配其多次重复,那么整个抉择结构须置于 “\(” 和 “\)” 之间:
        /\(foo\|bar\)\+
这个命令匹配 “foo”,”foobar”,”foofoo”,”barfoobar”,等等。
   再举个例子:
        /end\(if\|while\|for\)
这个命令匹配 “endif”,”endwhile” 和 “endfor”。

vi/vim 中可以使用 :s 命令来替换字符串。以前只会使用一种格式来全文替换,今天发现该命令有很多种写法(vi 真是强大啊,还有很多需要学习),记录几种在此,方便以后查询。

:s/vivian/sky/ 替换当前行第一个 vivian 为 sky
:s/vivian/sky/g 替换当前行所有 vivian 为 sky

:n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky
:n,$s/vivian/sky/g 替换第 n 行开始到最后一行中每一行所有 vivian 为 sky
n 为数字,若 n 为 .,表示从当前行开始到最后一行

:%s/vivian/sky/(等同于 :g/vivian/s//sky/) 替换每一行的第一个 vivian 为 sky
:%s/vivian/sky/g(等同于 :g/vivian/s//sky/g) 替换每一行中所有 vivian 为 sky

可以使用 # 作为分隔符,此时中间出现的 / 不会作为分隔符
:s#vivian/#sky/# 替换当前行第一个 vivian/ 为 sky/

:%s+/oradata/apras/+/user01/apras1+ (使用+ 来 替换 / ): /oradata/apras/替换成/user01/apras1/

1.:s/vivian/sky/ 替换当前行第一个 vivian 为 sky
:s/vivian/sky/g 替换当前行所有 vivian 为 sky

2. :n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky
:n,$s/vivian/sky/g 替换第 n 行开始到最后一行中每一行所有 vivian 为 sky
(n 为数字,若 n 为 .,表示从当前行开始到最后一行)

3. :%s/vivian/sky/(等同于 :g/vivian/s//sky/) 替换每一行的第一个 vivian 为 sky
:%s/vivian/sky/g(等同于 :g/vivian/s//sky/g) 替换每一行中所有 vivian 为 sky

4. 可以使用 # 作为分隔符,此时中间出现的 / 不会作为分隔符
:s#vivian/#sky/# 替换当前行第一个 vivian/ 为 sky/

5. 删除文本中的^M
问题描述:对于换行,window下用回车换行(0A0D)来表示,Linux 下是回车(0A)来表示。这样,将window上的文件拷到Unix 上用时,总会有个^M.请写个用在unix下的过滤Windows 文件的换行符(0D)的shell或c程序。
· 使用命令:cat filename1 | tr -d “^V^M” > newfile;
· 使用命令:sed -e “s/^V^M//” filename > outputfilename。需要注意的是在1、2两种方法中,^V和^M指的是Ctrl+V和Ctrl+M。你必须要手工进行输入,而不是粘贴。
· 在vi中处理:首先使用vi打开文件,然后按ESC键,接着输入命令:%s/^V^M//。
· :%s/^M$//g
如果上述方法无用,则正确的解决办法是:
· tr -d "\r" < src >dest
· tr -d "\015" dest
· strings A>B

6. 其它
利用 :s 命令可以实现字符串的替换。具体的用法包括:
:s/str1/str2/ 用字符串 str2 替换行中首次出现的字符串 str1
:s/str1/str2/g 用字符串 str2 替换行中所有出现的字符串 str1
:.,$ s/str1/str2/g 用字符串 str2 替换正文当前行到末尾所有出现的字符串 str1
:1,$ s/str1/str2/g 用字符串 str2 替换正文中所有出现的字符串 str1
:g/str1/s//str2/g 功能同上
从上述替换命令可以看到:g 放在命令末尾,表示对搜索字符串的每次出现进行替换;不加 g,表示只对搜索
字符串的首次出现进行替换;g 放在命令开头,表示对正文中所有包含搜索字符串的行进行替换操作。


From: http://a280606790.iteye.com/blog/770314

2014年2月13日星期四

英文写作常见错误以及检查事项

句法

(1) So作为句子的开头太频繁,可以适当使用“Therefore”, “Hence”, “Consequently”, “Thus”, “As a result”
(2) And”, “But”作为句子的开头太频繁,读起来很难受,可以适当使用 “However”“Nevertheless” 等。

(3) 科技论文中不用下列口语化的用法,应该在科技论文中避免:it's, can't, couldn't”,“doesn't等应该改成“it is”, “canno(t 美式英语)或者can no(t 英式或者欧式英语)”, “could not”,“does not”


(4) We作为句子的开头太频繁:只有作者特别想强调是我们做的,而不是别人做的时 候才使用“We”作为句子的开头,在一篇文章的开始总结部分可以适当地使用一些,正文 中间一般都是使用倒装句字。


(5) 要表达的主要含义放句子前面, 目的、位置、原因和时间等放句子后面。 

ADDITION:
(6) 不要用数字作为句子的开始。“One of the most prominent spectral features in star- burst galaxies is the presence of strong emission lines ...

作图

(1) figure, plot, picture, photo, illustration, schematic, diagram, flow chart 的区别 “figure”是统称 “plot”指数据点或者曲线画出的图, “picture”“photo”指图片或者照片或者 图片, “illustration”, “schematic”, “diagram” 都是指示意图,“flow chart”指流程图。

常用句型

(1) “A 随着B 增加而增加的正确翻译是:A increases with increasing B.或者“A increases with B.” 
(2)  不规则变化
单数
复数
单数
复数
datum
data
nucleus
nuclei
spectrum
spectra
focus
foci
medium
media
radius
radii
nova
novae
locus
loci
formula
formulae
torus
tori
index
indices
modulus
moduli
continuum
continua
(3) 科技文章中为了避免歧义,一般情况下使用单词的第一个意思。
    (a) for的意思包括为了因为,但是在科技文章里面只使用为了。需要因为的时 候用“because”或者“since”。再比如“as”的意思包括作为因为等,但是在科技文章里面 只使用作为
    (b) while主要有两个意思:...... 时候然而。但是科技英文尽可能使用单词的第一 个意思,因此建议只使用“while”...... 时候,当需要使用然而的时候用whereas
 (4) 大部分学生都知道even有几个意思,但是很多学生不清楚如何使用。举几个例子:
[1] Even though (虽然) a scientist does not make a lot of money, I still choose doing research
because ...
[2] Even if (尽管) this book costs a lot of money, I will still buy it because ...
[3] This book is very good, even (甚至) better than the most popular book written by... 
(5) similar to,different fromdiffer from”经常被误用为similar with或者“similar as”,different withdiffer with


标点符号
(1) 由于方程是句子的一部分,前后(主要是方程后面) 必须有标点符号
(2) 文件里面正确输入引号。正确的做法:`test’生成ps或者PDF
文件之后是‘test’. 但是大部分学生都是输入:’test’. 类似的情况是: ``test"而不是”test”.
(3) 为了避免一个句子太长,或者强调主要的内容,通常英文中分号后面是对前面的补充(中
文的分号是排比).分号“;”也常用于分隔的含有逗号的并列成分
(4)  短破折号en dash的使用. 也就是数学的负号(latex里面用 --,注意是两个-连着,或者$-$。 天体源的名字里面通常都有短破折号,但是通常都被错误地写成了连字符(见下面), 比如 GRO J1655--40,通常被错误地写成了GRO J1655-40Cyg X--1,通常被错误地写成 了Cyg X-1.


2014年2月7日星期五

GALFIT_Sextractor_aperture photometry_BCG substraction


How to make the aperture photometry for this faint galaxies???
Try galfit
Try sextractor check image
Try image-image method
Try image-selfsmooth method
Try image-selfsmooth+correction method
Try smooth > galfit method (large smooth or small smooth?)
THEN Try photometry!
However, the best method is still my own method. Could be published soon.

To be continued.

2014年2月5日星期三

Relations in my work


 the virial mass 
Mvir = creσ2/G, where we assume c=5 from the local calibration by Cappellari et al. (2006).  

 the size vs mass 


vi tips

插入一列  
:1, $ s/\%2c/ /