README.md 7.09 KB
Newer Older
BO ZHANG's avatar
BO ZHANG committed
1
## csst_proto 
BO ZHANG's avatar
BO ZHANG committed
2
[![Documentation Status](https://readthedocs.org/projects/csst-proto/badge/?version=latest)](https://csst-proto.readthedocs.io/en/latest/?badge=latest)
BO ZHANG's avatar
BO ZHANG committed
3
 
BO ZHANG's avatar
BO ZHANG committed
4
CSST L1 pipeline prototype.
BO ZHANG's avatar
BO ZHANG committed
5

BO ZHANG's avatar
BO ZHANG committed
6
## homepage
BO ZHANG's avatar
BO ZHANG committed
7

BO ZHANG's avatar
BO ZHANG committed
8
This code is available at *CSST GitLab*:
BO ZHANG's avatar
BO ZHANG committed
9
- [https://csst-tb.bao.ac.cn/code/csst-l1/csst_proto](https://csst-tb.bao.ac.cn/code/csst-l1/csst_proto).
BO ZHANG's avatar
BO ZHANG committed
10

BO ZHANG's avatar
BO ZHANG committed
11
## documentation
BO ZHANG's avatar
BO ZHANG committed
12

BO ZHANG's avatar
BO ZHANG committed
13
14
A sphinx-based documentation is available at
- [https://csst-proto.readthedocs.io/en/latest/](https://csst-proto.readthedocs.io/en/latest/)
BO ZHANG's avatar
BO ZHANG committed
15
16

## installation
BO ZHANG's avatar
BO ZHANG committed
17

BO ZHANG's avatar
BO ZHANG committed
18
19
20
21
`csst_proto` can be installed with the following shell command

```bash
git clone https://csst-tb.bao.ac.cn/code/csst-l1/csst_proto.git
BO ZHANG's avatar
BO ZHANG committed
22
cd csst_proto
BO ZHANG's avatar
BO ZHANG committed
23
24
25
26
27
28
29
30
pip install -r requirements.txt
python setup.py install
```

or a single-line command

```bash
sh -c "$(curl -fsSL https://csst-tb.bao.ac.cn/code/csst-l1/csst_proto/-/raw/main/install.sh)"
BO ZHANG's avatar
BO ZHANG committed
31
32
```

BO ZHANG's avatar
BO ZHANG committed
33
34
35
36
37
## instruction

A simple example on how to use this package:

```python
BO ZHANG's avatar
BO ZHANG committed
38
from csst_proto.top_level_interface import flip_image
BO ZHANG's avatar
BO ZHANG committed
39
40
41
from astropy.io import fits

# read an L0 image
BO ZHANG's avatar
BO ZHANG committed
42
img = fits.getdata("CSST_MS_SCI_06_L0_img.fits")
BO ZHANG's avatar
BO ZHANG committed
43
44
45
46
# flip the image
img_flipped = flip_image(img=img)
```

BO ZHANG's avatar
BO ZHANG committed
47
## algorithm description
BO ZHANG's avatar
BO ZHANG committed
48
49

The `csst_proto` uses an awesome algorithm based on `numpy.ndarray` indices to flip images.
BO ZHANG's avatar
BO ZHANG committed
50

BO ZHANG's avatar
BO ZHANG committed
51
---
BO ZHANG's avatar
BO ZHANG committed
52
53
54

## timeline

BO ZHANG's avatar
BO ZHANG committed
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
| file / directory   | description                     | urgent | C6  | C7  |
|--------------------|---------------------------------|--------|-----|-----|
| `csst_proto/`      | source code & data              | √√     | √   |     |
| `doc/`             | sphinx-based documentation      |        |     | √   |
| `example/`         | code examples                   | -      | -   | -   |
| `tests/`           | unit tests                      |        |     | √   |
| `.gitignore`       | git file                        |        | √   |     |
| `.gitlab-ci.yml`   | gitlab CI/CD pipeline           |        |     | √   |
| `LICENSE`          | code license                    |        | √   |     |
| `README.md`        | readme file                     | √√     | √   |     |
| `install.sh`       | single-line installation script |        | √   |     |
| `install_local.sh` | local installation script       |        | √   |     |
| `readthedocs.yml`  | readthedocs.io configuration    |        |     | √   |
| `requirements.txt` | code requirements               | √      | √   |     |
| `setup.py`         | sphinx-based documentation      | √√     | √   |     |
BO ZHANG's avatar
BO ZHANG committed
70

BO ZHANG's avatar
BO ZHANG committed
71
## important stages
BO ZHANG's avatar
BO ZHANG committed
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
- stage 1:
  - finished main code
  - good code style
  - `top_level_interface` available
- stage 2:
  - finished `setup.py`
  - can be installed with `pip install <package_name/package_link>` from gitlab
- stage 3:
  - finished instruction
  - `README.md`
- stage 4:
  - finished unittest
  - local unit test passed with `pytest`
- stage 5:
  - gitlab CI/CD pipeline available
  - auto unit tests passed with `.gitlab-ci.yml`
- stage 6:
  - *sphinx-based documentation available
  - `doc/`
  - `readthedocs.yml`

## progress

| module name              | stage 1<br>(source code) | stage 2<br>(installation) | stage 3<br>(instruction) | stage 4<br>(unit tests) | stage 5<br>(gitlab pipeline) | stage 6<br>(sphinx doc) |
|--------------------------|--------------------------|---------------------------|--------------------------|-------------------------|------------------------------|-------------------------|
| `csst_proto`             | √                        | √                         | √                        | √                       | √                            | √                       |
| `csst_ms_mbi_instrument` |                          |                           |                          |                         |                              |                         |
| `csst_ms_mbi_distortion` | √                        | √                         | √                        |                         |                              |                         |
| `csst_ms_mbi_position`   |                          |                           |                          |                         |                              |                         |
| `csst_ms_mbi_flux`       |                          |                           |                          |                         |                              |                         |
| `csst_ms_mbi_photometry` |                          |                           |                          |                         |                              |                         |
| ``                       |                          |                           |                          |                         |                              |                         |
| ``                       |                          |                           |                          |                         |                              |                         |
| ``                       |                          |                           |                          |                         |                              |                         |


BO ZHANG's avatar
BO ZHANG committed
108

BO ZHANG's avatar
BO ZHANG committed
109
## useful links
BO ZHANG's avatar
BO ZHANG committed
110
111
112
113
114
115
116
- python packaging user guide: https://packaging.python.org/en/latest/
- packaging binary extensions (C/C++): https://packaging.python.org/en/latest/guides/packaging-binary-extensions
- `setuptools`: https://packaging.python.org/en/latest/tutorials/installing-packages/
- recommended IDEs
  - PyCharm: https://www.jetbrains.com/pycharm/
  - VS Code: https://code.visualstudio.com/
- `git`: https://git-scm.com/
BO ZHANG's avatar
BO ZHANG committed
117
118
119
120
  - Pro Git: https://git-scm.com/book/en/v2
- Numpydoc: https://numpydoc.readthedocs.io/en/latest/format.html
  - for C: https://peps.python.org/pep-0007/
  - for Python: https://peps.python.org/pep-0008/
BO ZHANG's avatar
BO ZHANG committed
121
122
123
124
125
- `unittest`: https://docs.python.org/3.8/library/unittest.html
- gitlab CI/CD pipeline: https://docs.gitlab.com/ee/ci/pipelines/
- gitlab runners: https://docs.gitlab.com/runner/
- `sphinx`: https://www.sphinx-doc.org/en/master/index.html
- markdown: https://www.markdownguide.org/
BO ZHANG's avatar
BO ZHANG committed
126
- restructured text: https://docutils.sourceforge.io/rst.html
BO ZHANG's avatar
BO ZHANG committed
127
- readthedocs: https://readthedocs.io/ or https://rtfd.io/
BO ZHANG's avatar
BO ZHANG committed
128

BO ZHANG's avatar
BO ZHANG committed
129
## `data manager` for MS MBI
BO ZHANG's avatar
BO ZHANG committed
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159

```python
import os
from csst.ms.data_manager import CsstMscDataManager
from csst.ms.backbone import CCD_ID_LIST

# initialize data manager
dm = CsstMscDataManager(
    ver_sim="C5.1", dir_l0="/data/sim_data/MSC_0000100", dir_l1="/home/user/L1Pipeline/msc/work")
# process all CCDs
dm.set_ccd_ids(CCD_ID_LIST)

print("----- available ccd_ids -----")
print(dm.available_ccd_ids)
for ccd_id in dm.target_ccd_ids:
    print("----- L0 images -----")
    print(dm.l0_ccd(ccd_id=ccd_id))
    print(os.path.exists(dm.l0_ccd(ccd_id=ccd_id)))
    print("----- L0 crs -----")
    print(dm.l0_crs(ccd_id=ccd_id))
    print(os.path.exists(dm.l0_ccd(ccd_id=ccd_id)))
    print("----- L0 input cat -----")
    print(dm.l0_cat(ccd_id=ccd_id))
    print(os.path.exists(dm.l0_cat(ccd_id=ccd_id)))
    print("----- L0 input log -----")
    print(dm.l0_log(ccd_id=ccd_id))
    print(os.path.exists(dm.l0_log(ccd_id=ccd_id)))
    print("----- L1 images -----")
    print(dm.l1_ccd(ccd_id, post="img.fits"))
```