Newer
Older
Fit your code to this project
=============================
Take the main survey (MSC) as an example.
A demo structure is shown below.
.. code-block:: shell
msc
├── __init__.py
├── data.py
│ └── CsstMscImgData class
└── processor.py
└── CsstMscImgL0Proc class
The data class
--------------
For each instrument, a specific data class should be constructed.
`CsstData` class is the root class.
.. code-block:: shell
CsstData
└── CsstMscData
└── CsstMscImgData
The pipeline
------------
A pipeline should have the structure like below. (see csst/)
.. code-block:: python
from csst.core.processor import CsstProcessor
class CsstProcDemo(CsstProcessor):
def prepare(self, **args):
# prepare the environment
# for example, if you make use of some third-party software like SEXTRACTOR,
# do your preparation here.
pass
def run(self, CsstData, *args, **kwargs):
# run your pipeline here
# make sure that your input data should be a child class instance of CsstData.
pass
def cleanup(self, **kwargs):
# clean up environment
pass
Include your data/config files
------------------------------
added on 2022-04-07
Example: the current astrometry module uses `scamp` to calibrate position.
In your module, use :
.. code-block:: python
from .. import PACKAGE_PATH
CONFIG_SCAMP = PACKAGE_PATH + "/msc/config/scamp.default"
In `setup.py`:
.. code-block:: python
package_data={"": ["LICENSE", "README.md"],
"csst": ["msc/config/*",
"msc/deepcr_model/*"
]},
Notes
-----
* DO NOT use `try-except` excessively, particularly in low level code.