manim_1

本文章是基于bilibili up:乐正垂星 的manim教学视频编写,仅为本人学习过程。

首先我们尝试一下这段代码

1
2
3
4
5
6
7
8
9
10
11
from manim import *
class Try(Scene): # 继承自Scene的类
def construct(self): # 生成动画的代码
c = Circle(fill_opacity=1) # 定义圆,内部不透明度设置为1
s = Square(color=YELLOW , fill_opacity=1) # 定义正方形,内部设置为黄色,内部不透明度为10
self.play(FadeIn(c)) # 淡入输入圆形
self.wait() # 画面等待1秒钟
self.play(ReplacementTransform(c,s)) # 把c转化为s
self.wait() # 等待1秒
self.play(FadeOut(s)) #淡出
self.wait()

这里演示的是一段基于manim生成动画的代码,由这里我们可以看到三大类

  • Scene:给动画提供一个播放的场景
  • Moject:场景中的各种物体,如:圆、正方形等
  • Animation:作用在 Moject 之上,用这些物体制作一些动画

[注]:命令行参数 manim demo.py -p,如果拥有多个 Scene 则可以把类的名字作为命令行参数,放在文件路径后面 manim demo.py Try -p ,若不想写类名则会询问渲染的 Scene 的序号

1.Scene

Scene的几种用法:

  • add :针对 Moject 从场景中添加
  • remove :针对 Moject 从场景中移除
  • play :针对 Animation 播放一个或多个动画,同时传入多个可以同时播放
  • wait :让画面等待一段时间,默认是1秒,可传入参数改变等待的秒数

2.Animation

  • FadeIn()
  • FadeOut()
  • ReplaceTransform(a, b, run_time=3, rate_func=there_and_back) 若rate_func需要在FadeOut将参数改回a

3.Moject

可以设置很多参数,比如:

  • Line(LEFT, RIGHT, path_arc=0)
  • Text(‘blue,red,yellow’, t2c={‘blue’:BLUE, ‘red’:RED, ‘yellow’:YELLOW})
  • ParametricFunction(…)
  • Circle(…)

Markdown高级技巧

14.支持的HTML元素

不在Markdown语言涵盖范围之内的标签都可以直接在文档里面用HTML编写

类型 格式
文本居中 <centre>
快捷键显示 <kbd>
加粗 <b>
倾斜 <i>
上标 <sup>
下标 <sub>
填充的黑色箭头 &#x27A4;
右箭头 @>>>
……

更多见LATEX


15.转义

在Markdown中为了避免部分符号与格式冲突,使用反斜杠\进行转义

1
2
**Markdown**
\*\*Markdown\*\*

示例:
Markdown
**Markdown**

以下符号可以使用反斜杠转义使其能够显示

符号 释义
\ 反斜线
` 反引号
* 星号
_ 下划线
{} 花括号
[] 方括号
() 小括号
# 井字号
+ 加号
- 减号
. 英文句点
! 感叹号

16。流程图

需要使用 typora 的源码,在VSCode看不到效果(-_-|)

1
2
3
4
5
6
graph LR
A[方形]==>B(圆角)
B==>C{条件a}
C-->|a=1|D[结果1]
C-->|a=2|E[结果2]
F[横向流程图]

流程图问题此处不做赘述,或许后续会添加

Markdown进阶

8.Markdown列表

Markdown 支持有序列表和无序列表,列表之间可以嵌套
所谓有序列表是指以数字为开头的,而无序列表是以符号为前缀标志
补充:还有一类任务列表,但目前对笔者用处不大、、、

有序列表

有序列表和Word的编号功能类似,以数字为前缀,格式为:数字+. 比如

1
2
3
1. 第一项
2. 第二项
3. 第三项

示例:

  1. 第一项
  2. 第二项
  3. 第三项

无序列表

无序列表以星号*,加号+或减号-为前缀,不需要英文句号,显示为句子前面有一个点 ·

1
2
3
* 第一项
+ 第二项
- 第三项

示例:

  • 第一项
  • 第二项
  • 第三项

任务列表

任务列表是在-的基础上加一个空中括号,中括号中能够用x赋值,括号后跟随的是任务内容

1
2
- []  吃早餐
- [x] 背单词
  • 吃早餐
  • 背单词

列表的嵌套

有序列表和无序列表可以成为彼此的嵌套,嵌套需要进行4个字符的缩进

1
2
3
4
5
6
1. 第一项
+ 第二项

- 第一项
1. 第二项
* 第三项

示例:

  1. 第一项
    • 第二项
  • 第一项
    1. 第二项
      • 第三项

9.Markdown区块

Markdown 区块引用是在段落开头使用 > 符号,然后后面紧跟一个空格符号,类似列表,同样可以采用嵌套,且区块和列表可以相互嵌套

区块及其嵌套

区块的嵌套如果要重新区分为一个新的嵌套,相当于重新设置了一个新的区块,需要间隔一行

1
2
3
4
5
> 第一行
>> 第二行
>>> 第三行

> 第四行

示例:

第一行

第二行

第三行

第四行

区块和列表嵌套

区块内可以嵌套列表,列表中也能嵌套区块,但是同一区块内的列表需要关联该区块,在列表前添加>即可,不需要缩进;而列表内嵌套区块需要缩进4个字符

1
2
3
4
5
> 第一行
> 1. 第二行

* 第一行
> 第二行

示例:

第一行

  1. 第二行
  • 第一行

    第二行

(hexo显示和Vscode的Markdown功能显示的不太一样,hexo中显示的是居中的内容-_-.)


10.Markdown代码

在 Markdown 中显示代码需要使用反引号 ` 括起来

1
`print()`

示例:
print()

代码区块

代码区块使用两次三反引号```包裹,第一个三反引号可以指定语言,当然也可以不指定,该文章中的代码区块都是使用 bash 注释

1
```bash <回车> 代码内容 <回车> ```

指定语言还可以

1
```python <回车> 代码内容 <回车> ```

1
代码内容

11.Markdown链接

在 Markdown 中使用超链接需要使用中括号[]和小括号(),中括号中赋值名称,小括号中赋值网址;另外还有一种方法就是使用尖括号<>,尖括号则不需要给名字

1
2
[Bilibili](https://www.bilibili.com/)
<https://www.bilibili.com/>

示例:
Bilibili
https://www.bilibili.com/
(可能是因为Markdown链接和Markdown脚注格式冲突,目前如果使用脚注格式会解释为链接,因此Markdown_basic中的脚注部分会变成指向脚注内容的网址,自然是不存在这个网址的,除非脚注内容指向了网址)

高级链接

对于链接我们还可以通过变量赋值来实现,变量赋值在文档末尾进行

1
2
使用1作为网址变量:[Bilibili][1]
[1]: https://www.bilibili.com/

使用1作为网址变量:[Bilibili][1]
[1]: https://www.bilibili.com/


12.Markdown图片

Markdown中可以插入图片,插入时需要注明图片的路径,格式与链接相同,但是前面多一个感叹号!,可以支持gif、jpg、png等格式的图片。但是由于Markdown没有办法指定图片的高度和宽度,所以可以使用一般的<img>标签进行调整

1
2
{% asset_img "2.png" "cool" %}
<img src="./Markdown2/2.png" width="50%">

示例:


13.Markdown表格

Markdown使用|来制作表格,使用-区分表头和其他行

1
2
3
| 第一列 | 第二列 |
|- | - |
|学习 | 矩阵 |
第一列 第二列
学习 矩阵

对齐方式

  • -:设置标题和内容居右对齐
  • :-设置标题和内容居左对齐
  • -:-设置标题和内容居中对齐
    在分隔表头和其他行的那一行进行操作
    1
    2
    3
    | 第一列 | 第二列 | 第三列 |
    | -: | :- | :-: |
    |学习 | 矩阵 | 狄拉克 |
    第一列 第二列 第三列
    学习 矩阵 狄拉克

Heasoft使用与CIAO软件包使用(一)

本文主要演示了Heasoft和CIAO部分功能的使用,涉及数据获取、彩图合成、光变曲线提取与光谱提取(X-ray方面)

Step1.数据获取

数据获取网址:https://heasarc.gsfc.nasa.gov/cgi-bin/W3Browse/w3browse.pl

记住这里的obsid编号,稍后需要使用,我们取4875为例子

数据下载

进入Linux环境,打开终端,我们先创建一个工作目录并进入

1
2
mkdir xray
cd xray/

先前下载好了heasoft软件包和CIAO软件包,CIAO软件包是专门为Chandra X-ray望远镜设计的一套软件包,建立好了进入环境的快捷指令,直接运行即可进入CIAO环境

1
ciao

我们安装Mrk1210的光谱数据,在先前我们获取了Mrk1210的编号4875

1
2
download_chandra_obsid 4875 #安装指令,下载到当前工作目录
chandra_repro 4875 outdir='' #解压缩

包含蟹状星云数据在内,工作目录应该有红框内的文件夹

Step2.数据成像

这一模块列举蟹状星云和Mrk1210的成像,截取了特定能量范围的光谱数据作为RGB三原色的FITS文件进行叠加,再通过色彩调整得到一幅伪彩色图。

Crab

1
2
cd 198/
cd primary/

我们可以看到有一个名称是acisf00198N005_evt2.fits.gz的压缩文件,无需解压,我们在终端命令行操作即可
提取不同能段的图像,由于X-ray能段并没有可见光那样的颜色,我们选取特定范围的X-ray作为不同的颜色,这样我们可以合成一张伪彩色的图片2

  • soft:0.2-1.5keV 红色
  • medium:1.5-2.5keV 绿色
  • hard: 2.5-8keV 蓝色
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    punlearn dmcopy
    # 提取三种波段的fits
    dmcopy infile='acisf00198N005_evt2.fits[energy=200:1500]' outfile='red_198.fits'

    dmcopy infile='acisf00198N005_evt2.fits[energy=1500:2500]' outfile='green_198.fits'

    dmcopy infile='acisf00198N005_evt2.fits[energy=2500:8000]' outfile='blue_198.fits'

    # RGB合并
    heasoft #进入heasoft环境,ds9是heasoft里的一个图像显示的软件
    ds9 -rgb -red red_198.fits -green green_198.fits -blue blue_198.fits
    效果如图:

调色

我们在左侧工具框中选择Lock,选中色阶图例Smooth,然后按住鼠标右键在图上拖动,使颜色鲜艳,还可以在‘色阶’功能选择合适的颜色,或者在分析功能中选择Smooth Parameters进行调整

增加图例坐标轴

分析工具中,我们选择坐标格线参数Type一栏中,选中分析和两个Exterior Axes,在Grid中取消显示网格线

添加其他望远镜图样

回到主菜单,选择影像视窗合重,这样可以显示多个图像,选择空白图像,我们在分析一栏的Archive选择一个望远镜,输入目标名称,选择其中一个图像载入即可

最终效果


Mrk1210

处理流程类似蟹状星云,仅展示最终效果图

1
2
3
4
5
6
7
8
9
10
11
12
13
cd
cd ./xray/4875/primary/
punlearn dmcopy
# 提取三种波段的fits
dmcopy infile='acisf04875N004_evt2.fits[energy=200:1500]' outfile='red_4875.fits'

dmcopy infile='acisf04875N004_evt2.fits[energy=1500:2500]' outfile='green_4875.fits'

dmcopy infile='acisf04875N004_evt2.fits[energy=2500:8000]' outfile='blue_4875.fits'

# RGB合并
heasoft #进入heasoft环境,ds9是heasoft里的一个图像显示的软件
ds9 -rgb -red red_4875.fits -green green_4875.fits -blue blue_4875.fits

Step3.光变曲线提取

能谱和光变曲线都能够从acisf04875_repro_evt2.fits提取出来。CIAO提供了一个很方便的教程Click_Here

选取目标源和背景区域范围

1
2
3
cd 
cd ./xray/4875/repro/
ds9 acisf04875_repro_evt2.fits

打开ds9后选择编辑区域,选中源的位置,适当调整大小保证目标在圆圈内,然后选择区域功能的Save Selection,保存为src.reg,选择格式为CIAO。

在源周围再选定一个框,但不可覆盖源,重复上述步骤,保存为bkg.reg

提取lc

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# 检查相机id,确认我们选取的源和背景的范围是在那个CCD芯片上(芯片的序号)
punlearn dmstat
dmstat "acisf04875_evt2.fits[sky=region(src.reg)][cols ccd_id]"
### 检查id为7

dmlist acisf04875_evt2.fits #查看时间范围,选取

#提取减掉背景信号的源的光变曲线
punlearn dmextract
pset dmextract infile="acisf04875_evt2.fits[ccd_id=7,sky=region(src.reg)][bin time=194800731.1376200020:194801731.1376200020:20]" #起始时间:最终时间:分bin时间
pset dmextract outfile="src_sub_lc.fits" #输出文件名称
pset dmextract bkg="acisf04875_evt2.fits[ccd_id=7,sky=region(bkg.reg)]" #引入背景
pset dmextract opt="ltc1" #光变曲线文件格式
dmextract #执行

dmlist src_sub_lc.fits cols #检查生成文件

#画图,使用heasoft的lcurve
heasoft #进入环境
lcurve 1 src_sub_lc.fits

# 运行信息,rebinning和interval的乘积就是选定的时间区间
$ Name of the window file ('-' for default window) ##默认回车可看到一些时间等信息
$ Newbin Time or negative rebinning 20 ##输入重新并合的时间bin大小
$ Number of Newbins/Interval 50 ##输入时间重新bin后可用的通道数
$ Name of output file ##输入输出文件名或默认回车
$ Do you want to plot your results? ##输入yes或回车
$ Enter PGPLOT device ##默认回车或输入 /xw

#修改文件头
punlearn dmhedit
dmhedit src_sub_lc.fits filelist='' operation=add key=object value=JHCao_mrk1210

#保存
hardcopy

最终成图

Step4.能谱拟合

工作目录依然是repro,因此不需要其他操作

方法一:一步提取点光源

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
CIAO #进入环境

#提取点源光谱
#specextract 可以从事件文件的头文件中确定辅助文件(宽高比解决方案、坏像素、掩码),这意味着只需提供源文件、输出目录和可能的背景文件即可:
punlearn specextract
pset specextract infile="acisf04875_repro_evt2.fits[sky=region(src.reg)]" #src.reg和bkg.reg都是刚才使用ds9提取的点源和背景文件
pset specextract bkgfile="acisf04875_repro_evt2.fits[sky=region(bkg.reg)]"
pset specextract outroot=mrk1210
pset specextract correctpsf=yes
pset specextract weight=no
# weight 参数设置为 “no ”是为了告诉脚本做一个点样的 ARF,而 correctpsf 参数设置为 “yes ”是为了运行 arfcorr 来修正 ARF。这些参数必须更改,因为默认行为是 weight=yes 和 correctpsf=no。
specextract #运行

dmstat "acisf04875_repro_evt2.fits[sky=region(src.reg)][bin sky=2]"
pget dmstat out_max_loc #确定中心点

# specextract步骤生成的文件应该有:
$ mrk1210.pi :ungrouped source spectrum
$ mrk1210.arf :source ARF, no PSF corrections
$ mrk1210.corr.arf :source ARF, with PSF corrections applied
$ mrk1210.rmf :source RMF
$ mrk1210_grp.pi :grouped source spectrum

$ mrk1210_bkg.pi :background spectrum
$ mrk1210_bkg.arf :background ARF
$ mrk1210_bkg.rmf :background RMF

mrk1210_grp.pi就是我们最终需要的光谱文件

方法二:step by step

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
#提取源光谱
#我们提取标准脉冲不变(PI)通道的光谱。这样就绘制出了计数数与 PI 信道的直方图:
pset dmextract infile="acisf04875_repro_evt2.fits[sky=region(src.reg)][bin pi]"
pset dmextract outfile=step_by_step.pi #生成文件
pset dmextract op=pha1 #格式
dmextract #运行

#设置 ardlib.par (acis_set_ardlib)
#坏像素和坏列信息存储在 bpix1.fits 文件中。该文件被多个工具使用,可通过 ardlib.par 参数文件访问。在处理单个数据集时,chandra_repro 默认会用正确的坏像素文件自动设置 ardlib.par 文件。但是,如果其他观测数据已经过重新校准,则 ardlib.par 文件可能无法指向正确的文件。
punlearn ardlib
acis_set_ardlib acisf04875_repro_bpix1.fits absolute=no


#定位中心点(dmstat 和 dmcoords)
#由于各芯片的校准情况不尽相同,我们需要找到源的中心点(以芯片坐标为单位)。创建 ARFs 和选择使用 mkrmf 计算 RMFs 的 FEF(FITS 嵌入函数)时都需要这一信息。
dmstat "acisf04875_repro_evt2.fits[sky=region(src.reg)][bin sky=1]" centroid=yes
# 输出得到中心点坐标x=4064.3547562,y=4150.6423499 重要!!!

punlearn dmcoords #然后将其转换为 CHIP 坐标
dmcoords acisf13858_repro_evt2.fits op=sky x=4064.3547562 y=4150.6423499 #使用刚才得到的坐标
pget dmcoords chip_id chipx chipy
#输出:7 272.6542441495169 496.3159845780768 近似为272和496


#计算 RMFs
#望远镜使用的观测数据是在 -120 摄氏度焦平面温度下拍摄的,光源位于 ACIS-7 上,是一个背照式芯片。因此,可以使用 mkacisrmf 创建 RMF 文件。
pset mkacisrmf infile=CALDB
pset mkacisrmf wmap=none
pset mkacisrmf obsfile=acisf04875_repro_evt2.fits
pset mkacisrmf ccd_id=7 chipx=272 chipy=496
pset mkacisrmf chantype=PI channel=1:1024:1 energy=0.3:11.0:0.01
pset mkacisrmf outfile=step_by_step.rmf
mkacisrmf #运行


#使用 mkrmf(acis_fef_lookup、mkrmf)首先需要 acis_fef_lookup 来确定正确的输入校准文件,即 FITS 嵌入函数或 FEF。
pset acis_fef_lookup infile=acisf04875_repro_evt2.fits
pset acis_fef_lookup chipid=7 chipx=272 chipy=496
acis_fef_lookup
pset mkrmf infile=")acis_fef_lookup.outfile"
pset mkrmf axis1=energy=0.3:11.0:0.01
pset mkrmf axis2=pi=1:1024:1
pset mkrmf outfile=step_by_step_fef.rmf
mkrmf # 运行


#计算ARFs
#计算高宽比直方图(asphist)现在我们需要创建高宽比直方图,它是观测过程中高宽比运动的分档表示。
#高宽比直方图使用事件文件中的 “良好时间间隔”(GTI)信息。由于有多个 GTI,每个 CCD_ID 都有一组,因此我们需要用正确的 CCD_ID 过滤器过滤事件文件,以选择正确的 GTI。
pset asphist infile=pcadf04875_001N001_asol1.fits
pset asphist evtfile="acisf04875_repro_evt2.fits[ccd_id=7]"
pset asphist outfile=asp7.hist
asphist #运行


#制作ARFs
punlearn mkarf
pset mkarf asphistfile=asp7.hist
pset mkarf sourcepixelx=4064.3547562 sourcepixely=4150.6423499 #中心点坐标
pset mkarf engrid=0.3:11.0:0.01
pset mkarf obsfile=acisf04875_repro_evt2.fits
pset mkarf detsubsys="ACIS-7"
pset mkarf maskfile=acisf04875_001N004_msk1.fits
pset mkarf outfile=step_by_step_mkarf.arf
mkarf #运行


#修正源 ARF (arfcorr)
#arfcorr 计算源的能量相关点源孔径校正(PSF 分数),并将校正结果应用于 ARF 文件。运行 mkarf 时使用的 (x,y) 位置会输入到 arfcorr,源光谱使用的提取区域也是如此。需要输入图像来设置将要生成的 PSF 图像的大小和比例。
pset arfcorr infile="acisf04875_repro_evt2.fits[sky=region(src.reg)][bin sky]"
pset arfcorr region="region(src.reg)"
pset arfcorr x=4064.3547562 y=4150.6423499 #中心点坐标
pset arfcorr arf=step_by_step_mkarf.arf
pset arfcorr outfile=step_by_step_corrected.arf #输出
arfcorr #运行


#打包点源光谱
punlearn dmgroup
pset dmgroup infile=step_by_step.pi
pset dmgroup outfile=step_by_step_grp.pi
pset dmgroup grouptype=NUM_CTS
pset dmgroup grouptypeval=15
pset dmgroup xcolumn=channel
pset dmgroup ycolumn=counts
dmgroup
#更新头文件
punlearn dmhedit
dmhedit step_by_step.pi filelist="" operation=add key=ANCRFILE value=step_by_step_corrected.arf
dmhedit step_by_step.pi filelist="" operation=add key=RESPFILE value=step_by_step.rmf
dmhedit step_by_step_grp.pi filelist="" operation=add key=ANCRFILE value=step_by_step_corrected.arf
dmhedit step_by_step_grp.pi filelist="" operation=add key=RESPFILE value=step_by_step.rmf


#提取背景光谱
dmextract "acisf04875_repro_evt2.fits[sky=region(bkg.reg)][bin pi]" step_by_step_bkg.pi op=pha1


#计算背景ARFs,创建一个ARF的权重图
pset sky2tdet asphist=asp7.hist
pset sky2tdet infile="acisf04875_repro_evt2.fits[sky=region(bkg.reg)][energy=300:2000][bin sky]"
pset sky2tdet outfile="step_by_step_tdet_bkg.wmap[wmap]"
sky2tdet #运行


#制作ARF
#输出文件中附加的 [wmap] 指定输出块名称应为 wmap。这样做是为了避免 mkwarf 发出一些非致命警告。
pset mkwarf egrid=0.3:11.0:0.01
pset mkwarf mskfile=acisf04875_001N004_msk1.fits
pset mkwarf infile=step_by_step_tdet_bkg.wmap
pset mkwarf outfile=step_by_step_bkg.warf
pset mkwarf feffile=CALDB
pset mkwarf weight=step_by_step_bkg.wghts
mkwarf


#制作背景RMFs
#使用 mkacisrmf 创建加权 RMF 也需要 WMAP。不过,由于 RMF 并不是在与 ARF 相同的空间尺度上进行校准的,因此用户可以通过 mkacisrmf 使用分档更粗的 wmap。wmap 可以在使用 dmextract 提取光谱的同时创建,也可以像这里显示的那样即时计算:
pset mkacisrmf infile=CALDB
pset mkacisrmf wmap="acisf04875_repro_evt2.fits[sky=region(bkg.reg)][energy=300:2000][bin tdet=8]"
pset mkacisrmf obsfile=acisf04875_repro_evt2.fits
pset mkacisrmf ccd_id=7 chipx=272 chipy=496 # these parameter value are required by not used
pset mkacisrmf chantype=PI channel=1:1024:1 energy=0.3:11.0:0.01
pset mkacisrmf outfile=step_by_step_bkg.rmf
mkacisrmf #运行


#打包背景光谱
pset mkrmf infile=CALDB
pset mkrmf weight=step_by_step_bkg.wghts
pset mkrmf axis1=energy=0.3:11.0:0.01
pset mkrmf axis2=pi=1:1024:1
pset mkrmf outfile=step_by_step_fef_bkg.rmf
mkrmf

pset dmgroup infile=step_by_step_bkg.pi
pset dmgroup outfile=step_by_step_bkg_grp.pi
pset dmgroup grouptype=BIN
pset dmgroup binspec=1:1024:20
pset dmgroup xcolumn=channel
pset dmgroup ycolumn=counts
dmgroup #运行

绘制能谱

使用heasoft的Xspec对刚才输出的光谱进行能谱拟合

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
heasoft #进入环境
xspec #快捷指令进入xspec模块
cpd /xw #打开画板
data step_by_step_grp.pi #读取光谱文件
plot ldata #画出光谱
setplot energy #设置很坐标为energy,默认为channel
plot ldata ##重新画出光谱
setplot command rescale y 0.001 0.2 #后两位为纵坐标的上下范围
setplot command rescale x 0.4 9 #后两位为横坐标的上下范围
setplot command lab top caojh_mrk1210 #设置光谱图上方的显示字样,自定义名称
setplot add #设置显示模型成分,默认为noadd不显示
model phabs(mekal+pow+zphabs(pow+gau)) ##利用模型拟合,回车后,要求输入红移的,输入红移值,第一个phabs的参数值,可以在高能网站查询

# 查询得到红移量为0.013496,nH为3.85E+20,此处nH单位是10^22因此换算为3.85E-02

fit #利用上面定义的模型去拟合
plot ld res #画出拟合后的光谱和残差,如设置了显示模型成分,会同时显示模型成分,这里只显示可以相加的模型的成分,相乘的成分不显示
hardcopy #保存画板中显示的内容

红移量查询网站 https://ned.ipac.caltech.edu/
nH查询网站 https://heasarc.gsfc.nasa.gov/cgi-bin/Tools/w3nh/w3nh.pl

最终成图

xray

什么是X—rays

X-rays是光的一种形式

光子能量单位-keV
光子能量与波长的转换关系:1keV =

1999 Chandra 0.1-10keV
2002 XMM-Newton 0.15-12keV
2017 HXMT 1-350keV …heasoft

X-ray astrophysics research

active galaxies
binary star systems
black holes
cataclysmic variables
dark matter
etc.

X-ray probe

  • image analysis
  • spectral model fitting
  • variability curve

Data reduction & process

原始观测数据的处理 level1
产生所需的标准文件

Homework

  1. x射线图像(蟹状星云或其他星云)
  2. 选取一个Sy2星系的Chandra或Nustar数据,提取图像、光变和光谱
  3. 查看相关文献,对提取的光谱进行简单的拟合,并得到相关的物理参数

理论力学考试题

试题

本次考试共有6题,总分为100分。仔细阅读题目,解答请写在答题纸上,不够请附页。


一、简答题(每题5分,共40分)

  1. (5分)考虑一个质点在势能的一维空间内运动,其中是常数。请写出该质点的函数,并给出相应的力学守恒量。

  2. (5分)考虑一个简谐振子,其势能为,质量为,弹簧常数为。请写出该简谐振子的拉格朗日函数,并求出其运动方程。该系统是否具有守恒量?如果有,请写出该守恒量表达式。

  3. (5分)对于一个保守力系统,,请根据理论力学的方法,给出其角动量守恒的推导过程。请使用公式表达。

  4. (5分)考虑一质点在势能函数为的二维平面运动,请问该系统的坐标自由度数是多少?其运动轨迹是否为平面内的闭合曲线?请给出分析/

  5. (5分)一个质量为的质点,处于一个势能为的二维平面时空中,其中为弹簧常数。请采用合适的广义坐标来给出系统的拉格朗日函数,并画出势能函数等值线。

  6. (5分)考虑一个质点在势能场中的运动,其中为常数,为整数。定义坐标缩放变换,时间缩放变换。求满足相似原理的之间的关系式,并说明时,运动周期能否保持不变。

  7. (5分)请用理论力学所学内容,说明对称和守恒的关系。

  8. (5分)奥陌陌是人类探测到的首个来自太阳系外的星际天体。它于2017年10月18日被泛星1号望远镜发现。请根据所学习的知识,说明这个天体的运行轨道的形状,为什么说这个天体是来自太阳系外?

二.(10分)设势能为零的空间,从相同的时空点,请说明质点所走过的路径作用量取极值。

三.(10分)一个质量为的小球,被一条轻质无质弦(质量可忽略)系住,弦的一段固定在原点,另一端系在小球上。假设小球在均匀重力场(加速度为)中运动,请选择合适的广义坐标,写出小球的拉格朗日函数,并利用拉格朗日方程得到其运动方程。

四.(10分)考虑一个质量为的物点,受到势能的作用,其中为常数。请写出该系统的拉格朗日函数,并求解运动方程,给出该系统的运动轨迹方程。

五.(15分)考虑一个质量为的物点,受到势能的作用。请写出该系统的哈密顿函数,并在相空间中画出几条不同能量的等能线。给定一组初条件,求出质点的运动轨迹方程。

六.(15分)六个质量都为的小球布置在边长为 的正八面体的顶点上,这些小球之间用质量可忽略的轻杆连接。求这个系统相对于通过其几何中心过定轴的转动惯量张量。

Gildas_soft

Gildas是一个具有强大功能的天文数据处理软件包,可以处理单张光谱,批量处理光谱,抑或是输出FITS图像文件

开始前,我们首先进入文件的文件夹作为工作目录

1
cd radio/ #your_folder_name/ 

然后启动gildas

1
class #直接输入class即可直接进入Gildas环境

Step1.单个谱线数据处理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
file in G000.31.30m #输入谱线文件,由于G000.31.30m就在当前工作目录,相对路径即可
find #将G000.31.30m文件内所存储的数据输入缓存
list #将缓存中的内容列表输出

set tele *e0*li* #只读取带有e0的字符串,这是读取特定望远镜的数据
find #存入新筛选的数据,替换原来缓存的数据
list #查看
ave #将新选出的数据做平均处理

mod f 97980.953 #选定中心频率

# 设置图标坐标显示及画图
set unit v f #设置x轴显示速度和频率
set unit v #设置x轴仅显示速度
# set unit y t
set mod x -25 75 #设置坐标起始点和终点
set win -20 70
ba #拟合
plot #绘制谱线,可简写p
mod line C32S(2-1) #更改图像名称
label "T\dM\dB(K)" /Y #给予y轴标签

# 拟合曲线
line 2 #选定成分数量,然后在谱线图上选择对应成分分布范围
min #进行Gauss拟合
view #查看拟合曲线,简写v

# 保存图像
hardcopy C32S21.eps #存储图像为C32S21.eps

效果如图


Step2.批量处理谱线

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
file in G000.31.30m #打开数据文件
find #读入
set tele #设置所有望远镜数据
find #读入
set character 0.6 #设置字体大小
set unit v f #同Step1设置坐标标签
set unit v
set mod y t
set mod x -50 50 #同Step1
set win -45 45
set tele *e0*li* #选取数据
find
ave #同Step1

# 谱线97980.953
mod f 97980.953 #选定中心谱线
ba
# clear 若之前的图未清除可以使用clear清除
set view 0.3 0.7 0.7 0.9 #设置图像放置的位置,前两项数字为大小,后两项数字为位置
box n o #让box不绘制标签
spec #作图
line 1 #同Step1
min #做Gauss拟合
v /pen 1 #查看同时改变画笔颜色为红色

#谱线97172.063
## 步骤与97980.953相同
mod f 97172.063
ba
set view 0.3 0.7 0.5 0.7 #注意要将第二幅图往下画
box n o
spec
line 1
min
v /pen 1

#谱线96412.95
## 步骤与97980.953相同
mod f 96412.95
ba
set view 0.3 0.7 0.3 0.5 #注意要将第三幅图往下画
box n o
spec
line 1
min
ba /pen 1

#谱线92494.308
set tele *e0*lo* #谱线92494.308并不在上述的望远镜数据中,在另一个数据里,要进行切换
find
ave
list
ave
mod f 92494.308
ba
set view 0.3 0.7 0.1 0.3 #最后一幅图像
box #由于是最后一幅图,所以不需要隐藏坐标标签
line 1
min
v /pen 1

#补充说明
set character 0.6
draw text 10 18 G000.31 # 总谱线名称
draw text 17 18 "CS(2-1)" # 谱线97980.953名称
draw text 17 13.7 "C\u3\u3S(2-1)" # 谱线97172.063名称
draw text 17 9.5 "C\u3\u4S(2-1)" # 谱线96412.95名称
draw text 17 5.2 "\u1\u3CS(2-1)" # 谱线92494.308名称
set view 0.3 0.35 0.48 0.58
label "T\dM\dB(K)" /Y #y轴坐标标签
\sic dele g000.31.eps #若先前已经有这个文件则删除
hardcopy g000.31.eps #生成文件

效果如图


Step3.FITS彩图绘制

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
fil out test.bur single #创建一个test.bur
lmv OrionA_20171031L.fits #输入fits文件并转换
file in test.bur #将转换后的fits文件数据读入test.bur
list
find
list
set off 0 0 #设置中心位置
find
set unit v f
get f #选取中心位置的第一个scan
p
set mod x -50 50
p
set win -35 35
ba 1;p #基线拟合,数字表示基线拟合阶数
set off
set ang min
find
file out test.bas s #创建批量保存的数据文件
find
get n
for i 1 to found #对数据进行遍历
get n
bas 1 #即ba 1
write #写入数据
next #退出循环
# las\get n

#谱线绘制
file in test.bas
find
list
set mod y -0.2 1.5 #看谱线定值,X或Y必须给一个值,一般选择Y
clear #清除先前绘制查看的全谱线图
map /gr #画图

#输出data文件
file in test.bas
find
list
sic dele test.dat
print area -35 35 /output test.dat
exit #退出class

greg #进入greg环境,角分画图,使用相对路径
col x 2 y 3 z 4 /file test.dat #选定坐标轴
set box m #定义画框
lev 1 to 10 #强度划分
lim /rev x
rand 100 /blank -1 -1
box
lab "\gDL (arcmin)" /x #x轴标签
lab "\gDB (arcmin)" /y #y轴标签
set mar 3 2 0.2
plot /scalin lin -2 10
rgmap /per 10 #上色
wedge #强度分布栏

hardcopy H(41).eps /dev ps color #输出图像文件

效果如图

physical_astro

射电观测数据处理——分子谱线、分子谱线成图

系统:Windows、Linux or Unix

软件:Gildas / Class

数据处理过程、数据处理结果、、、

X射线观测数据处理——图像、光谱、光变

系统:Linux、Unix

软件:CIAO、SAS、HEASoft

光学观测数据处理——测光数据处理

系统:Linux或Unix

软件:IRAF

Logical_Regression

前置课程:KNN (K值选择)

LinearRegression

线性回归 vs 逻辑回归(e.g. Boston房价的一个量)

模型的建立与求解——理解逻辑回归

分类(classification)

通过目标函数来刻画预测标签与真实标签之间的差距

示例:
sklearn -> LogisticRegression

多变量与多分类——理解多变量

一个样本点有多个特征属性

多变量与多分类——理解多分类

One-vs-all VOA策略

示例:
LogisticRegression中的multi_class = ‘ovr’

1
2
def train(x,y):
model = LogisticRegression(...)

分类模型的评估

评价指标:准确率、精确率、召回率(TP、FN、FP、TN)

召回率越高该模型寻找正样本的能力越强

整体评估值:算术平均、加权平均

混淆矩阵:对角线上的值代表正确的量

示例:sklearn —— classification_report

逻辑回归求解

正则化:目的是为了防止过拟合

Sigmoid函数
$\beta_0$:截距

——————-分隔符———————–

20241212

机器学习算法之决策树

什么是决策树

几个概念

根节点、父节点、子节点、决策路径、分裂属性、叶子节点

根节点 -> 父节点 -> 子节点

节点的“不纯度”

节点内尽量都是“同类”的数据

用“不纯度”来度量

两个指标度量:1、entropy熵;2、Gini系数

$GINI = 1 - $ $\Sigma$ $p(i)^2$

$Entropy = -$ $\Sigma$ $p(i)log p(i)$

信息增益

信息增益Gain


20241219

降维:PCA

why to do PCA

机器学习算法的复杂度和数据的维数有着密切关系,甚至呈现指数级关联
实际机器学习中处理成千上万甚至几十万维的情况也并不罕见,但机器学习的资源消耗是不可接受的,必须对数据进行降维
降维当然意味着信息的丢失,要减少丢失的信息

PCA基本思想

在降维的同时将信息的损失尽量降低

主成分分析

主成分的特点

  • 主成分是原变量的线性组合
  • 各个主成分之间互不相关,不同的主成分轴之间相互正交
  • 主成分按照方差的大小依次排列,第一主成分对应最大的方差(特征值)
  • 每个主成分的均值为0
1
2
3
4
5
6
import pandas as pd
import numpy as np
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import train_test_split
data = pd.read_csv('./iris.csv')
print(data.head())