diff --git a/csst/msc/calib_flux.py b/csst/msc/calib_flux.py new file mode 100644 index 0000000000000000000000000000000000000000..c02a8edaedea995139bdbecc5cdaeb4528c4e48d --- /dev/null +++ b/csst/msc/calib_flux.py @@ -0,0 +1,19 @@ +from .. import PACKAGE_PATH +from ..core.processor import CsstProcessor + +path_config = PACKAGE_PATH + "/msc/astrometry_config/" + + +class CsstProcFluxCalibration(CsstProcessor): + + def __init__(self): + pass + + def prepare(self, **kwargs): + pass + + def run(self, **kwargs): + pass + + def cleanup(self): + pass \ No newline at end of file diff --git a/csst/msc/flux_calib_config/cali_default.conv b/csst/msc/flux_calib_config/cali_default.conv new file mode 100644 index 0000000000000000000000000000000000000000..f9d0ba3a3fa2e6ba3a5466155efcae3cce28f481 --- /dev/null +++ b/csst/msc/flux_calib_config/cali_default.conv @@ -0,0 +1,6 @@ +CONV NORM +# 3x3 convolution mask of a gaussian PSF with FWHM = 2.0 pixels. +0.260856 0.483068 0.260856 +0.483068 0.894573 0.483068 +0.260856 0.483068 0.260856 + diff --git a/csst/msc/flux_calib_config/cali_default.nnw b/csst/msc/flux_calib_config/cali_default.nnw new file mode 100644 index 0000000000000000000000000000000000000000..4b521bd432f70b333331b2c88b11b63cf38dc5b4 --- /dev/null +++ b/csst/msc/flux_calib_config/cali_default.nnw @@ -0,0 +1,28 @@ +NNW +# Neural Network Weights for the SExtractor star/galaxy classifier (V1.3) +# inputs: 9 for profile parameters + 1 for seeing. +# outputs: ``Stellarity index'' (0.0 to 1.0) +# Seeing FWHM range: from 0.025 to 5.5'' (images must have 1.5 < FWHM < 5 pixels) +# Optimized for Moffat profiles with 2<= beta <= 4. + + 3 10 10 1 + +-1.56604e+00 -2.48265e+00 -1.44564e+00 -1.24675e+00 -9.44913e-01 -5.22453e-01 4.61342e-02 8.31957e-01 2.15505e+00 2.64769e-01 + 3.03477e+00 2.69561e+00 3.16188e+00 3.34497e+00 3.51885e+00 3.65570e+00 3.74856e+00 3.84541e+00 4.22811e+00 3.27734e+00 + +-3.22480e-01 -2.12804e+00 6.50750e-01 -1.11242e+00 -1.40683e+00 -1.55944e+00 -1.84558e+00 -1.18946e-01 5.52395e-01 -4.36564e-01 -5.30052e+00 + 4.62594e-01 -3.29127e+00 1.10950e+00 -6.01857e-01 1.29492e-01 1.42290e+00 2.90741e+00 2.44058e+00 -9.19118e-01 8.42851e-01 -4.69824e+00 +-2.57424e+00 8.96469e-01 8.34775e-01 2.18845e+00 2.46526e+00 8.60878e-02 -6.88080e-01 -1.33623e-02 9.30403e-02 1.64942e+00 -1.01231e+00 + 4.81041e+00 1.53747e+00 -1.12216e+00 -3.16008e+00 -1.67404e+00 -1.75767e+00 -1.29310e+00 5.59549e-01 8.08468e-01 -1.01592e-02 -7.54052e+00 + 1.01933e+01 -2.09484e+01 -1.07426e+00 9.87912e-01 6.05210e-01 -6.04535e-02 -5.87826e-01 -7.94117e-01 -4.89190e-01 -8.12710e-02 -2.07067e+01 +-5.31793e+00 7.94240e+00 -4.64165e+00 -4.37436e+00 -1.55417e+00 7.54368e-01 1.09608e+00 1.45967e+00 1.62946e+00 -1.01301e+00 1.13514e-01 + 2.20336e-01 1.70056e+00 -5.20105e-01 -4.28330e-01 1.57258e-03 -3.36502e-01 -8.18568e-02 -7.16163e+00 8.23195e+00 -1.71561e-02 -1.13749e+01 + 3.75075e+00 7.25399e+00 -1.75325e+00 -2.68814e+00 -3.71128e+00 -4.62933e+00 -2.13747e+00 -1.89186e-01 1.29122e+00 -7.49380e-01 6.71712e-01 +-8.41923e-01 4.64997e+00 5.65808e-01 -3.08277e-01 -1.01687e+00 1.73127e-01 -8.92130e-01 1.89044e+00 -2.75543e-01 -7.72828e-01 5.36745e-01 +-3.65598e+00 7.56997e+00 -3.76373e+00 -1.74542e+00 -1.37540e-01 -5.55400e-01 -1.59195e-01 1.27910e-01 1.91906e+00 1.42119e+00 -4.35502e+00 + +-1.70059e+00 -3.65695e+00 1.22367e+00 -5.74367e-01 -3.29571e+00 2.46316e+00 5.22353e+00 2.42038e+00 1.22919e+00 -9.22250e-01 -2.32028e+00 + + + 0.00000e+00 + 1.00000e+00 diff --git a/csst/msc/flux_calib_config/cali_default.param b/csst/msc/flux_calib_config/cali_default.param new file mode 100644 index 0000000000000000000000000000000000000000..1a65b3de8c9ac2aa45684576821bbd0d88fb74ce --- /dev/null +++ b/csst/msc/flux_calib_config/cali_default.param @@ -0,0 +1,51 @@ +NUMBER +X_IMAGE +Y_IMAGE +ALPHA_J2000 +DELTA_J2000 +XWIN_IMAGE +YWIN_IMAGE +ALPHAWIN_J2000 +DELTAWIN_J2000 +MAG_AUTO +MAGERR_AUTO +MU_MAX +MAG_APER +MAGERR_APER +FLUX_APER +FLUXERR_APER +FLUX_RADIUS +BACKGROUND +FWHM_IMAGE +CLASS_STAR +FLAGS +ELLIPTICITY + +#VIGNET(63,63) + +#SNR_WIN +#ELONGATION + +#FLUX_AUTO +#FLUXERR_AUTO + +#FWHM_WORLD +#POLAR_WORLD + +#X2_WORLD +#Y2_WORLD +#XY_WORLD + +#A_WORLD +#B_WORLD +#THETA_WORLD + +#ERRX2_WORLD +#ERRY2_WORLD +#ERRXY_WORLD + +#ERRA_WORLD +#ERRB_WORLD +#ERRTHETA_WORLD + +#IMAFLAGS_ISO diff --git a/csst/msc/flux_calib_config/cali_default.sex b/csst/msc/flux_calib_config/cali_default.sex new file mode 100644 index 0000000000000000000000000000000000000000..69856bb484f2ac403278428c1a84a4790290ff31 --- /dev/null +++ b/csst/msc/flux_calib_config/cali_default.sex @@ -0,0 +1,107 @@ +# Default configuration file for SExtractor 2.12.4 +# EB 2010-10-10 +# + +#-------------------------------- Catalog ------------------------------------ + +CATALOG_NAME test.fits # name of the output catalog +CATALOG_TYPE FITS_LDAC # NONE,ASCII,ASCII_HEAD, ASCII_SKYCAT, + # ASCII_VOTABLE, FITS_1.0 or FITS_LDAC +PARAMETERS_NAME /home/zhouzm/data/csst/code/cali_default.param # name of the file containing catalog contents + +#------------------------------- Extraction ---------------------------------- + +DETECT_TYPE CCD # CCD (linear) or PHOTO (with gamma correction) +DETECT_MINAREA 3 # min. # of pixels above threshold +DETECT_MAXAREA 0 +THRESH_TYPE RELATIVE # threshold type: RELATIVE (in sigmas) + # or ABSOLUTE (in ADUs) +DETECT_THRESH 3.0 # or , in mag.arcsec-2 +ANALYSIS_THRESH 3.0 # or , in mag.arcsec-2 + +FILTER Y # apply filter for detection (Y or N)? +FILTER_NAME /home/zhouzm/data/csst/code/cali_default.conv # name of the file containing the filter + +DEBLEND_NTHRESH 64 # Number of deblending sub-thresholds +DEBLEND_MINCONT 0.0005 # Minimum contrast parameter for deblending + +CLEAN Y # Clean spurious detections? (Y or N)? +CLEAN_PARAM 0.5 # Cleaning efficiency + +MASK_TYPE CORRECT # type of detection MASKing: can be one of + # NONE, BLANK or CORRECT + +FITS_UNSIGNED Y # Force 16-bit FITS input data to be + # interpreted as unsigned integers +#-------------------------------- WEIGHTing ---------------------------------- + +WEIGHT_TYPE MAP_WEIGHT # type of WEIGHTing: NONE, BACKGROUND, + # MAP_RMS, MAP_VAR or MAP_WEIGHT +WEIGHT_IMAGE weight.fits # weight-map filename + +#------------------------------ Photometry ----------------------------------- + +# corresponding to diameters of [1.5,3,5,7,9,11.8,13,14.6] arcsec +# assuming 0.454 arcsec pixel scale +PHOT_APERTURES 10 # MAG_APER aperture diameter(s) in pixels +PHOT_AUTOPARAMS 2.5, 3.5 # MAG_AUTO parameters: , +PHOT_PETROPARAMS 2.0, 3.5 # MAG_PETRO parameters: , + # +PHOT_AUTOAPERS 0.0,0.0 # , minimum apertures + # for MAG_AUTO and MAG_PETRO + +SATUR_LEVEL 5000.0 # level (in ADUs) at which arises saturation +SATUR_KEY SATURATEabc # keyword for saturation level (in ADUs) + +MAG_ZEROPOINT 0.0 # magnitude zero-point +MAG_GAMMA 7.0 # gamma of emulsion (for photographic scans) +GAIN 1.5 # detector gain in e-/ADU +GAIN_KEY GAINabc # keyword for detector gain in e-/ADU +PIXEL_SCALE 0 # size of pixel in arcsec (0=use FITS WCS info) + +#------------------------- Star/Galaxy Separation ---------------------------- + +SEEING_FWHM 0.15 # stellar FWHM in arcsec +STARNNW_NAME /home/zhouzm/data/csst/code/cali_default.nnw # Neural-Network_Weight table filename + +#------------------------------ Background ----------------------------------- + +BACK_TYPE AUTO # AUTO or MANUAL +BACK_VALUE 0.0 # Default background value in MANUAL mode +BACK_SIZE 256 # Background mesh: or , +BACK_FILTERSIZE 3 # Background filter: or , + +BACKPHOTO_TYPE LOCAL # can be GLOBAL or LOCAL +BACKPHOTO_THICK 24 # thickness (pix) of background rectangular aperture for LOCAL + +#------------------------------ Check Image ---------------------------------- + +CHECKIMAGE_TYPE NONE # can be NONE, BACKGROUND, BACKGROUND_RMS, + # MINIBACKGROUND, MINIBACK_RMS, -BACKGROUND, + # FILTERED, OBJECTS, -OBJECTS, SEGMENTATION, + # or APERTURES +CHECKIMAGE_NAME check.fits # Filename for the check-image + +#--------------------- Memory (change with caution!) ------------------------- + +MEMORY_OBJSTACK 3000 # number of objects in stack +MEMORY_PIXSTACK 300000 # number of pixels in stack +MEMORY_BUFSIZE 1024 # number of lines in buffer + +#------------------------------- ASSOCiation --------------------------------- + +#ASSOC_NAME sky.list # name of the ASCII file to ASSOCiate +#ASSOC_DATA 2,3,4 # columns of the data to replicate (0=all) +#ASSOC_PARAMS 2,3,4 # columns of xpos,ypos[,mag] +#ASSOC_RADIUS 2.0 # cross-matching radius (pixels) +#ASSOC_TYPE NEAREST # ASSOCiation method: FIRST, NEAREST, MEAN, + # MAG_MEAN, SUM, MAG_SUM, MIN or MAX +#ASSOCSELEC_TYPE MATCHED # ASSOC selection type: ALL, MATCHED or -MATCHED + +#----------------------------- Miscellaneous --------------------------------- + +VERBOSE_TYPE NORMAL # can be QUIET, NORMAL or FULL +HEADER_SUFFIX .head # Filename extension for additional headers +WRITE_XML N # Write XML file (Y/N)? +XML_NAME sex.xml # Filename for XML output + diff --git a/csst/msc/flux_calib_config/cali_default0.param b/csst/msc/flux_calib_config/cali_default0.param new file mode 100644 index 0000000000000000000000000000000000000000..b91dcce0b1415fd7d0c63f80f30072456b83051a --- /dev/null +++ b/csst/msc/flux_calib_config/cali_default0.param @@ -0,0 +1,44 @@ +NUMBER +X_IMAGE +Y_IMAGE +ALPHA_J2000 +DELTA_J2000 +MAG_APER(8) +MAGERR_APER(8) +FLUX_APER(8) +FLUXERR_APER(8) +FLUX_RADIUS +BACKGROUND +FWHM_IMAGE +CLASS_STAR +FLAGS +ELLIPTICITY + +VIGNET(63,63) + +SNR_WIN +ELONGATION + +FLUX_AUTO +FLUXERR_AUTO + +FWHM_WORLD +POLAR_WORLD + +X2_WORLD +Y2_WORLD +XY_WORLD + +A_WORLD +B_WORLD +THETA_WORLD + +ERRX2_WORLD +ERRY2_WORLD +ERRXY_WORLD + +ERRA_WORLD +ERRB_WORLD +ERRTHETA_WORLD + +#IMAFLAGS_ISO diff --git a/csst/msc/flux_calib_config/cali_psf.psfex b/csst/msc/flux_calib_config/cali_psf.psfex new file mode 100644 index 0000000000000000000000000000000000000000..f4b255db359e2c1ce4af8bd533ff7bab9c3bd795 --- /dev/null +++ b/csst/msc/flux_calib_config/cali_psf.psfex @@ -0,0 +1,93 @@ +# Default configuration file for PSFEx 3.15.0 +# EB 2013-05-01 +# + +#-------------------------------- PSF model ---------------------------------- + +BASIS_TYPE PIXEL_AUTO # NONE, PIXEL, GAUSS-LAGUERRE or FILE +BASIS_NUMBER 20 # Basis number or parameter +BASIS_NAME basis.fits # Basis filename (FITS data-cube) +BASIS_SCALE 1.0 # Gauss-Laguerre beta parameter +NEWBASIS_TYPE NONE # Create new basis: NONE, PCA_INDEPENDENT + # or PCA_COMMON +NEWBASIS_NUMBER 8 # Number of new basis vectors +PSF_SAMPLING 0.0 # Sampling step in pixel units (0.0 = auto) +PSF_PIXELSIZE 1.0 # Effective pixel size in pixel step units +PSF_ACCURACY 0.01 # Accuracy to expect from PSF "pixel" values +PSF_SIZE 63,63 # Image size of the PSF model +PSF_RECENTER N # Allow recentering of PSF-candidates Y/N ? +MEF_TYPE INDEPENDENT # INDEPENDENT or COMMON + +#------------------------- Point source measurements ------------------------- + +CENTER_KEYS X_IMAGE,Y_IMAGE # Catalogue parameters for source pre-centering +PHOTFLUX_KEY FLUX_APER(4) # Catalogue parameter for photometric norm. +PHOTFLUXERR_KEY FLUXERR_APER(4) # Catalogue parameter for photometric error + +#----------------------------- PSF variability ------------------------------- + +PSFVAR_KEYS X_IMAGE,Y_IMAGE # Catalogue or FITS (preceded by :) params +PSFVAR_GROUPS 1,1 # Group tag for each context key +PSFVAR_DEGREES 2 # Polynom degree for each group +PSFVAR_NSNAP 9 # Number of PSF snapshots per axis +HIDDENMEF_TYPE COMMON # INDEPENDENT or COMMON +STABILITY_TYPE EXPOSURE # EXPOSURE or SEQUENCE + +#----------------------------- Sample selection ------------------------------ + +SAMPLE_AUTOSELECT Y # Automatically select the FWHM (Y/N) ? +SAMPLEVAR_TYPE SEEING # File-to-file PSF variability: NONE or SEEING +SAMPLE_FWHMRANGE 2.0,30.0 # Allowed FWHM range +SAMPLE_VARIABILITY 0.20 # Allowed FWHM variability (1.0 = 100%) +SAMPLE_MINSN 20 # Minimum S/N for a source to be used +SAMPLE_MAXELLIP 0.3 # Maximum (A-B)/(A+B) for a source to be used +SAMPLE_FLAGMASK 0x00fe # Rejection mask on SExtractor FLAGS +SAMPLE_WFLAGMASK 0x0000 # Rejection mask on SExtractor FLAGS_WEIGHT +SAMPLE_IMAFLAGMASK 0x0 # Rejection mask on SExtractor IMAFLAGS_ISO +BADPIXEL_FILTER N # Filter bad-pixels in samples (Y/N) ? +BADPIXEL_NMAX 0 # Maximum number of bad pixels allowed + +#----------------------- PSF homogeneisation kernel -------------------------- + +HOMOBASIS_TYPE NONE # NONE or GAUSS-LAGUERRE +HOMOBASIS_NUMBER 10 # Kernel basis number or parameter +HOMOBASIS_SCALE 1.0 # GAUSS-LAGUERRE beta parameter +HOMOPSF_PARAMS 2.0, 3.0 # Moffat parameters of the idealised PSF +HOMOKERNEL_DIR # Where to write kernels (empty=same as input) +HOMOKERNEL_SUFFIX .homo.fits # Filename extension for homogenisation kernels + +#------------------------------- Check-plots ---------------------------------- + +CHECKPLOT_DEV NULL # NULL, XWIN, TK, PS, PSC, XFIG, PNG, + # JPEG, AQT, PDF or SVG +CHECKPLOT_RES 0 # Check-plot resolution (0 = default) +CHECKPLOT_ANTIALIAS Y # Anti-aliasing using convert (Y/N) ? + +#CHECKPLOT_TYPE FWHM,ELLIPTICITY,COUNTS, COUNT_FRACTION, CHI2, RESIDUALS + # or NONE +#CHECKPLOT_NAME fwhm, ellipticity, counts, countfrac, chi2, resi + +CHECKPLOT_TYPE NONE + +CHECKIMAGE_TYPE NONE + +#------------------------------ Check-Images --------------------------------- +# +#CHECKIMAGE_TYPE SAMPLES,SNAPSHOTS_IMRES # CHI,PROTOTYPES,SAMPLES,RESIDUALS,SNAPSHOTS +# # or MOFFAT,-MOFFAT,-SYMMETRICAL +#CHECKIMAGE_NAME samp.fits,snap_imres.fits #chi.fits,proto.fits,samp.fits,resi.fits,snap.fits +# # Check-image filenames +#CHECKIMAGE_CUBE Y # Save check-images as datacubes (Y/N) ? +# +#----------------------------- Miscellaneous --------------------------------- + +PSF_DIR # Where to write PSFs (empty=same as input) +PSF_SUFFIX .psf # Filename extension for output PSF filename +VERBOSE_TYPE FULL # can be QUIET,NORMAL,LOG or FULL +WRITE_XML N # Write XML file (Y/N)? +XML_NAME psfex.xml # Filename for XML output +XSL_URL file:///share/apps/usr/share/psfex/psfex.xsl + # Filename for XSL style-sheet +NTHREADS 1 # Number of simultaneous threads for + # the SMP version of PSFEx + # 0 = automatic diff --git a/setup.py b/setup.py index 75976167e6e5f0f691b8d843820bb1442b2ee428..354c9da1a3bad634cc963653d2a1abb2e5fa2b89 100755 --- a/setup.py +++ b/setup.py @@ -28,8 +28,9 @@ setuptools.setup( package_dir={'csst': 'csst'}, include_package_data=True, package_data={"": ["LICENSE", "README.md"], - "csst": ["msc/astrometry_config/*", - "msc/deepcr_model/*" + "csst": ["msc/deepcr_model/*", + "msc/pos_calib_config/*", + "msc/flux_calib_config/*", ]}, # install_requires=['sphinx>=4.2.0', # 'numpy>=1.22.0',