Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Wu Jin
CSST simulation
Commits
883b7a77
Commit
883b7a77
authored
Nov 29, 2021
by
Fang Yuedong
Browse files
bug fixed
parent
e82a5dcc
Changes
392
Hide whitespace changes
Inline
Side-by-side
ObservationSim/PSF/PSFInterp_deprecated/PSFInterp_v3/libCentroid/test/testGaussian.py
deleted
100644 → 0
View file @
e82a5dcc
import
numpy
as
np
import
matplotlib.pyplot
as
plt
import
ctypes
import
galsim
libCentroid
=
ctypes
.
CDLL
(
'../libCentroid.so'
)
# CDLL加载库
print
(
'load libCenroid'
)
libCentroid
.
centroidWgt
.
argtypes
=
[
ctypes
.
POINTER
(
ctypes
.
c_float
),
ctypes
.
c_int
,
ctypes
.
c_int
,
ctypes
.
POINTER
(
ctypes
.
c_double
)]
IMAGE_WIDTH
=
180
IMAGE_HEIGHT
=
180
dx
=
0.275
dy
=-
0.393
center_x
=
90
+
dx
center_y
=
90
+
dy
R
=
np
.
sqrt
(
center_x
**
2
+
center_y
**
2
)
Gauss_map
=
np
.
zeros
((
IMAGE_HEIGHT
,
IMAGE_WIDTH
))
for
i
in
range
(
IMAGE_HEIGHT
):
for
j
in
range
(
IMAGE_WIDTH
):
dis
=
(
i
-
center_y
)
**
2
+
(
j
-
center_x
)
**
2
Gauss_map
[
i
,
j
]
=
np
.
exp
(
-
0.5
*
dis
/
R
)
ymap
=
galsim
.
InterpolatedImage
(
galsim
.
ImageF
(
Gauss_map
),
scale
=
0.01
)
zmap
=
ymap
#.shear(g1 = 0.15, g2=0.27) #using shear
Gauss_map
=
zmap
.
drawImage
(
nx
=
180
,
ny
=
180
,
scale
=
0.01
).
array
fig
=
plt
.
figure
(
figsize
=
(
5
,
5
))
plt
.
imshow
(
Gauss_map
,
origin
=
'lower'
)
imx
=
Gauss_map
/
np
.
sum
(
Gauss_map
)
ny
,
nx
=
imx
.
shape
print
(
nx
,
ny
,
np
.
max
(
imx
))
nn
=
nx
*
ny
arr
=
(
ctypes
.
c_float
*
nn
)()
arr
[:]
=
imx
.
reshape
(
nn
)
para
=
(
ctypes
.
c_double
*
10
)()
libCentroid
.
centroidWgt
(
arr
,
ny
,
nx
,
para
)
print
(
'haha'
)
print
(
para
[
0
:
5
])
cx
=
para
[
3
]
cy
=
para
[
4
]
print
(
'{:}'
.
format
(
cx
),
'{:}'
.
format
(
cy
))
from
scipy
import
ndimage
cx
,
cy
=
ndimage
.
center_of_mass
(
imx
)
print
(
'center_of_mass:'
,
cx
,
cy
)
plt
.
plot
(
para
[
4
],
para
[
3
],
'bx'
,
ms
=
15
)
plt
.
plot
(
cy
,
cx
,
'r+'
,
ms
=
15
)
plt
.
annotate
(
'dx,dy:'
,
[
10
,
170
],
color
=
'w'
)
plt
.
annotate
(
'{:8.5}, {:8.5}'
.
format
(
dx
,
dy
),
[
10
,
160
],
color
=
'w'
)
plt
.
annotate
(
'cx, cy:'
,
[
10
,
150
],
color
=
'w'
)
plt
.
annotate
(
'{:0<8.5}, {:0<8.5}'
.
format
(
center_x
,
center_y
),
[
10
,
140
],
color
=
'w'
)
plt
.
annotate
(
'{:0<8.5}, {:0<8.5}'
.
format
(
para
[
4
],
para
[
3
]),
[
10
,
130
],
color
=
'w'
)
plt
.
annotate
(
'{:0<8.5}, {:0<8.5}'
.
format
(
cy
,
cx
),
[
10
,
120
],
color
=
'w'
)
plt
.
show
()
ObservationSim/PSF/PSFInterp_deprecated/PSFInterp_v3/libCentroid/test/testPSFcentroid.py
deleted
100644 → 0
View file @
e82a5dcc
import
numpy
as
np
import
matplotlib.pyplot
as
plt
import
ctypes
import
galsim
libCentroid
=
ctypes
.
CDLL
(
'../libCentroid.so'
)
# CDLL加载库
print
(
'load libCenroid'
)
libCentroid
.
centroidWgt
.
argtypes
=
[
ctypes
.
POINTER
(
ctypes
.
c_float
),
ctypes
.
c_int
,
ctypes
.
c_int
,
ctypes
.
POINTER
(
ctypes
.
c_double
)]
libCentroid
.
imSplint
.
argtypes
=
[
ctypes
.
POINTER
(
ctypes
.
c_float
),
ctypes
.
c_int
,
ctypes
.
c_int
,
ctypes
.
POINTER
(
ctypes
.
c_double
),
ctypes
.
c_int
,
ctypes
.
c_int
,
ctypes
.
POINTER
(
ctypes
.
c_float
)]
from
scipy.io
import
loadmat
data
=
loadmat
(
'/Users/chengliangwei/csstPSFdata/CSSOS_psf_ciomp/ccd20/wave_1/5_psf_array/psf_10.mat'
)
imx
=
data
[
'psf'
]
imx
=
imx
/
np
.
sum
(
imx
)
ny
,
nx
=
imx
.
shape
print
(
nx
,
ny
)
#imx centroid
nn
=
nx
*
ny
arr
=
(
ctypes
.
c_float
*
nn
)()
arr
[:]
=
imx
.
reshape
(
nn
)
para
=
(
ctypes
.
c_double
*
10
)()
libCentroid
.
centroidWgt
(
arr
,
ny
,
nx
,
para
)
imx_cx
=
para
[
3
]
imx_cy
=
para
[
4
]
#imx -> imy
nxt
=
nyt
=
160
nn
=
nxt
*
nyt
yat
=
(
ctypes
.
c_float
*
nn
)()
libCentroid
.
imSplint
(
arr
,
ny
,
nx
,
para
,
nxt
,
nyt
,
yat
)
imy
=
np
.
array
(
yat
[:]).
reshape
([
nxt
,
nyt
])
#imy centroid
libCentroid
.
centroidWgt
(
yat
,
nyt
,
nxt
,
para
)
imy_cx
=
para
[
3
]
imy_cy
=
para
[
4
]
#plot check
fig
=
plt
.
figure
(
figsize
=
(
12
,
6
))
##imx_plot
ax
=
plt
.
subplot
(
1
,
2
,
1
)
cpix
=
int
(
nx
/
2
)
dpix
=
10
plt
.
imshow
(
imx
[
cpix
-
dpix
:
cpix
+
dpix
,
cpix
-
dpix
:
cpix
+
dpix
],
origin
=
'lower'
)
plt
.
plot
(
imx_cy
-
cpix
+
dpix
,
imx_cx
-
cpix
+
dpix
,
'bx'
,
ms
=
20
)
from
scipy
import
ndimage
cx
,
cy
=
ndimage
.
center_of_mass
(
imx
)
plt
.
plot
(
cy
-
cpix
+
dpix
,
cx
-
cpix
+
dpix
,
'r+'
,
ms
=
20
)
maxIndx
=
np
.
argmax
(
imx
)
maxIndx
=
np
.
unravel_index
(
maxIndx
,
np
.
array
(
imx
).
shape
)
imgMaxPix_x
=
maxIndx
[
1
]
imgMaxPix_y
=
maxIndx
[
0
]
apSizeInPix
=
23
imgT
=
np
.
zeros_like
(
imx
)
imgT
[
imgMaxPix_y
-
apSizeInPix
:
imgMaxPix_y
+
apSizeInPix
+
1
,
imgMaxPix_x
-
apSizeInPix
:
imgMaxPix_x
+
apSizeInPix
+
1
]
=
\
imx
[
imgMaxPix_y
-
apSizeInPix
:
imgMaxPix_y
+
apSizeInPix
+
1
,
imgMaxPix_x
-
apSizeInPix
:
imgMaxPix_x
+
apSizeInPix
+
1
]
cx
,
cy
=
ndimage
.
center_of_mass
(
imgT
)
plt
.
plot
(
cy
-
cpix
+
dpix
,
cx
-
cpix
+
dpix
,
'b+'
,
ms
=
15
)
##imy_plot
ax
=
plt
.
subplot
(
1
,
2
,
2
)
cpix
=
int
(
nxt
/
2
)
dpix
=
10
plt
.
imshow
(
imy
[
cpix
-
dpix
:
cpix
+
dpix
,
cpix
-
dpix
:
cpix
+
dpix
],
origin
=
'lower'
)
plt
.
plot
(
imy_cy
-
cpix
+
dpix
,
imy_cx
-
cpix
+
dpix
,
'bx'
,
ms
=
20
)
plt
.
plot
([
dpix
,
dpix
],[
0
,
dpix
],
'w:'
)
plt
.
plot
([
0
,
dpix
],[
dpix
,
dpix
],
'w:'
)
cx
,
cy
=
ndimage
.
center_of_mass
(
imy
)
plt
.
plot
(
cy
-
cpix
+
dpix
,
cx
-
cpix
+
dpix
,
'r+'
,
ms
=
20
)
maxIndx
=
np
.
argmax
(
imy
)
maxIndx
=
np
.
unravel_index
(
maxIndx
,
np
.
array
(
imy
).
shape
)
imgMaxPix_x
=
maxIndx
[
1
]
imgMaxPix_y
=
maxIndx
[
0
]
apSizeInPix
=
23
imgT
=
np
.
zeros_like
(
imy
)
imgT
[
imgMaxPix_y
-
apSizeInPix
:
imgMaxPix_y
+
apSizeInPix
+
1
,
imgMaxPix_x
-
apSizeInPix
:
imgMaxPix_x
+
apSizeInPix
+
1
]
=
\
imy
[
imgMaxPix_y
-
apSizeInPix
:
imgMaxPix_y
+
apSizeInPix
+
1
,
imgMaxPix_x
-
apSizeInPix
:
imgMaxPix_x
+
apSizeInPix
+
1
]
cx
,
cy
=
ndimage
.
center_of_mass
(
imgT
)
plt
.
plot
(
cy
-
cpix
+
dpix
,
cx
-
cpix
+
dpix
,
'b+'
,
ms
=
15
)
plt
.
show
()
ObservationSim/PSF/PSFInterp_deprecated/PSFInterp_v3/libCentroid/test/tt.py
deleted
100644 → 0
View file @
e82a5dcc
import
numpy
as
np
import
matplotlib.pyplot
as
plt
import
ctypes
import
galsim
libCentroid
=
ctypes
.
CDLL
(
'../libCentroid.so'
)
# CDLL加载库
print
(
'load libCenroid'
)
libCentroid
.
centroidWgt
.
argtypes
=
[
ctypes
.
POINTER
(
ctypes
.
c_float
),
ctypes
.
c_int
,
ctypes
.
c_int
,
ctypes
.
POINTER
(
ctypes
.
c_double
)]
'''
IMAGE_WIDTH = 180
IMAGE_HEIGHT = 180
dx = 0.#275
dy =-0.#393
center_x = 90 +dx #89.5 #IMAGE_WIDTH/2 -0.
center_y = 90 +dy #89.5 #IMAGE_HEIGHT/2+0.
R = np.sqrt(center_x**2 + center_y**2)
Gauss_map = np.zeros((IMAGE_HEIGHT, IMAGE_WIDTH))
for i in range(IMAGE_HEIGHT):
for j in range(IMAGE_WIDTH):
dis = (i-center_y)**2+(j-center_x)**2
Gauss_map[i, j] = np.exp(-0.5*dis/R)
ymap = galsim.InterpolatedImage(galsim.ImageF(Gauss_map), scale=0.01)
zmap = ymap.shear(g1 = 0.15, g2=0.27)
Gauss_map = zmap.drawImage(nx = 180, ny = 180, scale=0.01).array
fig=plt.figure(figsize=(5,5))
plt.imshow(Gauss_map, origin='lower')
imx = Gauss_map#/np.sum(Gauss_map)
ny,nx = imx.shape
print(nx, ny, np.max(imx))
nn = nx*ny
arr = (ctypes.c_float*nn)()
arr[:] = imx.reshape(nn)
para = (ctypes.c_double*10)()
libCentroid.centroidWgt(arr, ny, nx, para)
print('haha')
print(para[0:5])
cx = para[3]
cy = para[4]
print('{:}'.format(cx), '{:}'.format(cy))
from scipy import ndimage
cx, cy = ndimage.center_of_mass(imx)
print('center_of_mass:', cx, cy)
plt.plot(para[4], para[3], 'bx', ms = 15)
plt.plot(cy, cx, 'r+', ms = 15)
plt.annotate('dx,dy:', [10, 170], color='w')
plt.annotate('{:8.5}, {:8.5}'.format(dx, dy), [10, 160], color='w')
plt.annotate('cx, cy:', [10, 150], color='w')
plt.annotate('{:0<8.5}, {:0<8.5}'.format(center_x, center_y), [10, 140], color='w')
plt.annotate('{:0<8.5}, {:0<8.5}'.format(para[4], para[3]), [10, 130], color='w')
plt.annotate('{:0<8.5}, {:0<8.5}'.format(cy, cx), [10, 120], color='w')
'''
from
scipy.io
import
loadmat
data
=
loadmat
(
'/Users/chengliangwei/csstPSFdata/CSSOS_psf_ciomp/ccd13/wave_1/5_psf_array/psf_10.mat'
)
#plt.imshow(data['psf'])
#plt.show()
imx
=
data
[
'psf'
]
imx
=
imx
/
np
.
sum
(
imx
)
ny
,
nx
=
imx
.
shape
print
(
nx
,
ny
)
nn
=
nx
*
ny
arr
=
(
ctypes
.
c_float
*
nn
)()
arr
[:]
=
imx
.
reshape
(
nn
)
para
=
(
ctypes
.
c_double
*
10
)()
print
(
arr
[
0
:
10
])
#libCentroid.centroidWgt(arr, ny, nx, para)
nxt
=
nyt
=
160
nn
=
nxt
*
nyt
yat
=
(
ctypes
.
c_float
*
nn
)()
libCentroid
.
centroidWgt
(
arr
,
ny
,
nx
,
para
,
nxt
,
nyt
,
yat
)
mm
=
np
.
array
(
yat
[:]).
reshape
([
nxt
,
nyt
])
imx
=
mm
print
(
'haha'
)
print
(
para
[
0
:
5
])
cx
=
para
[
3
]
cy
=
para
[
4
]
print
(
cx
,
cy
)
fig
=
plt
.
figure
(
figsize
=
(
12
,
12
))
cpix
=
80
dpix
=
10
#plt.imshow(np.log10(imx[cpix-dpix:cpix+dpix, cpix-dpix:cpix+dpix]), origin='lower')
plt
.
imshow
(
imx
[
cpix
-
dpix
:
cpix
+
dpix
,
cpix
-
dpix
:
cpix
+
dpix
],
origin
=
'lower'
)
plt
.
plot
(
cy
-
cpix
+
dpix
,
cx
-
cpix
+
dpix
,
'bx'
,
ms
=
20
)
'''
from scipy import ndimage
cx, cy = ndimage.center_of_mass(imx)
print(cx, cy)
plt.plot(cy - cpix+dpix, cx - cpix+dpix, 'r+', ms = 20)
maxIndx = np.argmax(imx)
maxIndx = np.unravel_index(maxIndx, np.array(imx).shape)
imgMaxPix_x = maxIndx[1]
imgMaxPix_y = maxIndx[0]
apSizeInPix = 23
imgT = np.zeros_like(imx)
imgT[imgMaxPix_y-apSizeInPix:imgMaxPix_y+apSizeInPix+1,
imgMaxPix_x-apSizeInPix:imgMaxPix_x+apSizeInPix+1] =
\
imx[imgMaxPix_y-apSizeInPix:imgMaxPix_y+apSizeInPix+1,
imgMaxPix_x-apSizeInPix:imgMaxPix_x+apSizeInPix+1]
cx, cy = ndimage.center_of_mass(imgT)
print(cx, cy)
plt.plot(cy - cpix+dpix, cx - cpix+dpix, 'b+', ms = 15)
maxIndx = np.argmax(imx)
maxIndx = np.unravel_index(maxIndx, np.array(imx).shape)
imgMaxPix_x = maxIndx[1]
imgMaxPix_y = maxIndx[0]
apSizeInPix =5
imgT = np.zeros_like(imx)
imgT[imgMaxPix_y-apSizeInPix:imgMaxPix_y+apSizeInPix+1,
imgMaxPix_x-apSizeInPix:imgMaxPix_x+apSizeInPix+1] =
\
imx[imgMaxPix_y-apSizeInPix:imgMaxPix_y+apSizeInPix+1,
imgMaxPix_x-apSizeInPix:imgMaxPix_x+apSizeInPix+1]
cx, cy = ndimage.center_of_mass(imgT)
print(cx, cy)
plt.plot(cy - cpix+dpix, cx - cpix+dpix, 'm+', ms = 10)
print('maxPix:', imgMaxPix_x, imgMaxPix_y, imx[imgMaxPix_y, imgMaxPix_x])
'''
plt
.
show
()
ObservationSim/PSF/PSFInterp_deprecated/PSFInterp_v3/libCentroid/test/ttc/Makefile
deleted
100644 → 0
View file @
e82a5dcc
#OPTS += -D
CC
=
gcc
OPTIMIZE
=
-fPIC
-g
-O3
#-Wall -wd981 #-wd1419 -wd810
#GSLI = -I/home/alex/opt/gsl/include
#GSLL = -L/home/alex/opt/gsl/lib -lgsl -lgslcblas
#FFTWI = -I/home/alex/opt/fftw/include
#FFTWL = -L/home/alex/opt/fftw/lib -lfftw3 -lfftw3f
#HDF5I = -I/home/alex/opt/hdf5/include
#HDF5L = -L/home/alex/opt/hdf5/lib -lhdf5_hl -lhdf5
#FITSI = -I/home/alex/opt/cfitsio/include
#FITSL = -L/home/alex/opt/cfitsio/lib -lcfitsio
#EXTRACFLAGS =
#EXTRACLIB =
CLINK
=
$(CC)
CFLAGS
=
$(OPTIMIZE)
#
$(EXTRACFLAGS)
$(OPTS)
CLIB
=
-lm
#
$(EXTRACLIB)
OBJS
=
centroidWgt.o nrutil.o
EXEC
=
centroid.X
all
:
$(EXEC)
$(EXEC)
:
$(OBJS)
$(CLINK)
$(CFLAGS)
-o
$@
$(OBJS)
$(CLIB)
$(OBJS)
:
nrutil.h Makefile
.PHONY
:
clean
clean
:
rm
-f
*
.o
$(EXEC)
ObservationSim/PSF/PSFInterp_deprecated/PSFInterp_v3/libCentroid/test/ttc/centroid.X
deleted
100755 → 0
View file @
e82a5dcc
File deleted
ObservationSim/PSF/PSFInterp_deprecated/PSFInterp_v3/libCentroid/test/ttc/centroidWgt.c
deleted
100644 → 0
View file @
e82a5dcc
#include
<math.h>
#include
<stdio.h>
#include
<stdlib.h>
#include
"nrutil.h"
//y is the input image, nx and ny are the pixels along x and y axis;
//yt and residu are the required matrix for the function
//para contains the needed parameters: centx=para[3], centy=para[4]
void
star_gaus
(
float
**
y
,
int
nx
,
int
ny
,
double
*
para
);
void
main
()
{
int
i
,
j
;
int
IMAGE_WIDTH
,
IMAGE_HEIGHT
;
float
center_x
,
center_y
;
float
R
,
dis
;
float
**
Gauss_map
;
double
*
para
;
//double para[10];
IMAGE_WIDTH
=
180
;
IMAGE_HEIGHT
=
180
;
center_x
=
IMAGE_WIDTH
/
2
-
0
.;
center_y
=
IMAGE_HEIGHT
/
2
+
0
.;
R
=
sqrt
(
center_x
*
center_x
+
center_y
*
center_y
);
//Gauss_map = np.zeros((IMAGE_HEIGHT, IMAGE_WIDTH))
Gauss_map
=
matrix
(
0
,
IMAGE_HEIGHT
-
1
,
0
,
IMAGE_WIDTH
-
1
);
para
=
dvector
(
0
,
10
);
for
(
i
=
0
;
i
<
IMAGE_HEIGHT
;
i
++
)
{
for
(
j
=
0
;
j
<
IMAGE_WIDTH
;
j
++
)
{
//#dis = np.sqrt((i-center_y)**2+(j-center_x)**2)
dis
=
(
i
-
center_y
)
*
(
i
-
center_y
)
+
(
j
-
center_x
)
*
(
j
-
center_x
);
//dis = sqrt(dis);
Gauss_map
[
i
][
j
]
=
exp
(
-
0
.
5
*
dis
/
R
);
}
}
star_gaus
(
Gauss_map
,
IMAGE_HEIGHT
,
IMAGE_WIDTH
,
para
);
printf
(
"ok?
\n
"
);
printf
(
"para:%f %f
\n
"
,
para
[
3
],
para
[
4
]);
//free_matrix(Gauss_map,0,IMAGE_HEIGHT-1,0,IMAGE_WIDTH-1);
//free_dvector(para,0,4);
}
void
centroidWgt
(
float
*
y
,
int
nx
,
int
ny
,
double
*
para
)
{
int
i
,
j
,
k
;
float
**
yy
;
double
**
basef
;
double
**
coff
;
yy
=
matrix
(
0
,
nx
-
1
,
0
,
ny
-
1
);
for
(
i
=
0
;
i
<
nx
;
i
++
)
for
(
j
=
0
;
j
<
ny
;
j
++
)
{
k
=
j
+
i
*
nx
;
yy
[
i
][
j
]
=
y
[
k
];
}
star_gaus
(
yy
,
nx
,
ny
,
para
);
}
//void star_gaus(float **y,int nx,int ny,float **yt,float **residu,double *para)
void
star_gaus
(
float
**
y
,
int
nx
,
int
ny
,
double
*
para
)
{
void
gasfit_2D
(
double
**
x
,
double
*
y
,
int
np
,
double
*
para
,
double
bg0
,
int
fbg
);
double
**
xs
,
*
ys
,
ymax
;
int
i
,
j
,
np
,
npt
,
im
,
jm
,
**
xi
,
k
;
double
kc
,
bgc
,
sigmac
,
xc
,
yc
,
sigma2v
,
det
;
double
bg0
=
0
;
int
fbg
=
0
;
np
=
nx
*
ny
;
xs
=
dmatrix
(
0
,
np
-
1
,
0
,
1
);
ys
=
dvector
(
0
,
np
-
1
);
xi
=
imatrix
(
0
,
np
-
1
,
0
,
1
);
ymax
=
y
[
0
][
0
];
for
(
i
=
0
;
i
<
nx
;
i
++
)
for
(
j
=
0
;
j
<
ny
;
j
++
){
if
(
ymax
<
y
[
i
][
j
]){
ymax
=
y
[
i
][
j
];
im
=
i
;
jm
=
j
;}
}
printf
(
"x=%d,y=%d,ymax=%e
\n
"
,
im
,
jm
,
ymax
);
int
cutPix
;
cutPix
=
23
;
npt
=
0
;
for
(
i
=-
cutPix
;
i
<=
cutPix
;
i
++
){
for
(
j
=-
cutPix
;
j
<=
cutPix
;
j
++
){
xs
[
npt
][
0
]
=
xi
[
npt
][
0
]
=
i
+
im
;
xs
[
npt
][
1
]
=
xi
[
npt
][
1
]
=
j
+
jm
;
ys
[
npt
]
=
y
[
im
+
i
][
jm
+
j
];
npt
++
;
}
}
printf
(
"check:: %f %f %f %d
\n
"
,
ys
[
0
],
ys
[
10
],
ys
[
100
],
npt
);
gasfit_2D
(
xs
,
ys
,
npt
,
para
,
bg0
,
fbg
);
kc
=
para
[
0
];
sigmac
=
para
[
1
];
bgc
=
para
[
2
];
xc
=
para
[
3
];
yc
=
para
[
4
];
printf
(
"xc, yc: %f %f
\n
"
,
yc
,
xc
);
//printf("%e %e %e %e %e\n",kc,sigmac,bgc,xc,yc);
/*
sigma2v=-1./(2.*sigmac*sigmac);
for(i=0;i<nx;i++){
for(j=0;j<ny;j++){
det=DSQR(i-xc)+DSQR(j-yc);
yt[i][j]=kc*exp(det*sigma2v)+bgc;
residu[i][j]=y[i][j]-yt[i][j];
}
}
*/
free_dmatrix
(
xs
,
0
,
np
-
1
,
0
,
1
);
free_imatrix
(
xi
,
0
,
np
-
1
,
0
,
1
);
free_dvector
(
ys
,
0
,
np
-
1
);
}
void
gasfit_2D
(
double
**
x
,
double
*
y
,
int
np
,
double
*
para
,
double
bg0
,
int
fbg
)
{
void
search_2D
(
double
**
x
,
double
*
y
,
int
np
,
double
kc
,
double
kd
,
double
sigmac
,
double
sigmad
,
double
bgc
,
double
bgd
,
double
xc
,
double
xd
,
double
yc
,
double
yd
,
double
*
para
,
double
bg0
,
int
fbg
);
int
i
,
j
,
k
,
imax
=
0
,
isigma
;
double
ymax
,
ymin
,
kc
,
kd
,
sigmac
,
sigmad
,
bgc
,
bgd
,
ysigma
,
xc
,
yc
,
xd
,
yd
;
double
det
,
dett
;
ymin
=
ymax
=
y
[
imax
];
for
(
i
=
1
;
i
<
np
;
i
++
){
if
(
ymax
<
y
[
i
]){
imax
=
i
;
ymax
=
y
[
i
];}
if
(
ymin
>
y
[
i
])
ymin
=
y
[
i
];
}
//printf("ymax=%e,imax=%d\n",ymax,imax);
kc
=
ymax
;
kd
=
ymax
/
12
.;
det
=
ysigma
=
kc
*
exp
(
-
0
.
5
);
//printf("det=%e,kc=%e\n",det,kc);
for
(
i
=
0
;
i
<
np
;
i
++
){
dett
=
fabs
(
ysigma
-
y
[
i
]);
//printf("dett=%e,det=%e,i=%d\n",dett,det,i);
//if(dett<det && y[i]!=kc){det=dett;isigma=i;}
if
(
dett
<
det
){
det
=
dett
;
isigma
=
i
;}
}
xc
=
x
[
imax
][
0
];
yc
=
x
[
imax
][
1
];
printf
(
"isigma=%d,imax=%d
\n
"
,
isigma
,
imax
);
sigmac
=
sqrt
(
DSQR
(
xc
-
x
[
isigma
][
0
])
+
DSQR
(
yc
-
x
[
isigma
][
1
]))
*
1
.;
xd
=
yd
=
sigmac
*
0
.
25
;
sigmad
=
0
.
25
*
sigmac
;
bgc
=
0
.;
bgd
=
fabs
(
ymin
);
//printf("sigma=%e\n",sigmac);
for
(
i
=
0
;
i
<
4
;
i
++
){
printf
(
"i = %d
\n
"
,
i
);
//printf("%e %e %e %e %e k2=%e\n",kc,sigmac,bgc,xc,yc,para[5]);
search_2D
(
x
,
y
,
np
,
kc
,
kd
,
sigmac
,
sigmad
,
bgc
,
bgd
,
xc
,
xd
,
yc
,
yd
,
para
,
bg0
,
fbg
);
kd
*=
0
.
33
;
sigmad
*=
0
.
33
;
bgd
*=
0
.
33
;
xd
*=
0
.
33
;
yd
*=
0
.
33
;
kc
=
para
[
0
];
sigmac
=
para
[
1
];
bgc
=
para
[
2
];
xc
=
para
[
3
];
yc
=
para
[
4
];
}
if
(
fbg
==
0
)
para
[
2
]
=
bg0
;
}
void
search_2D
(
double
**
x
,
double
*
y
,
int
np
,
double
kc
,
double
kd
,
double
sigmac
,
double
sigmad
,
double
bgc
,
double
bgd
,
double
xc
,
double
xd
,
double
yc
,
double
yd
,
double
*
para
,
double
bg0
,
int
fbg
)
{
double
k
,
sigma
,
bg
,
k2
,
k20
,
sigma2v
,
det
,
xt
,
yt
;
int
i
,
j
,
l
,
m
,
p
,
q
;
sigma2v
=-
1
.
/
(
2
.
*
sigmac
*
sigmac
);
bg
=
bgc
;
k20
=
0
;
for
(
m
=
0
;
m
<
np
;
m
++
){
det
=
DSQR
(
x
[
m
][
0
]
-
xc
)
+
DSQR
(
x
[
m
][
1
]
-
yc
);
det
=
kc
*
exp
(
det
*
sigma2v
)
+
bgc
-
y
[
m
];
k20
+=
det
*
det
;
}
for
(
i
=-
4
;
i
<=
4
;
i
++
){
k
=
kc
+
i
*
kd
;
if
(
k
>
0
){
for
(
j
=-
4
;
j
<=
4
;
j
++
){
sigma
=
sigmac
+
j
*
sigmad
;
if
(
sigma
>
0
){
sigma2v
=-
1
.
/
(
2
.
*
sigma
*
sigma
);
for
(
p
=-
4
;
p
<=
4
;
p
++
){
xt
=
xc
+
p
*
xd
;
for
(
q
=-
4
;
q
<=
4
;
q
++
){
yt
=
yc
+
q
*
yd
;
k2
=
0
;
if
(
fbg
==
0
){
bg
=
bg0
;
for
(
m
=
0
;
m
<
np
;
m
++
){
det
=
DSQR
(
x
[
m
][
0
]
-
xt
)
+
DSQR
(
x
[
m
][
1
]
-
yt
);
det
=
k
*
exp
(
det
*
sigma2v
)
+
bg
-
y
[
m
];
k2
+=
det
*
det
;
}
}
else
{
for
(
l
=-
4
;
l
<=
4
;
l
++
){
bg
=
bgc
+
l
*
bgd
;
for
(
m
=
0
;
m
<
np
;
m
++
){
det
=
DSQR
(
x
[
m
][
0
]
-
xt
)
+
DSQR
(
x
[
m
][
1
]
-
yt
);
det
=
k
*
exp
(
det
*
sigma2v
)
+
bg
-
y
[
m
];
k2
+=
det
*
det
;
}
}
}
//printf("k20=%e k2=%e\n",k20,k2);
if
(
k2
<=
k20
){
k20
=
k2
;
para
[
5
]
=
k2
;
para
[
0
]
=
k
;
para
[
1
]
=
sigma
;
para
[
2
]
=
bg
;
para
[
3
]
=
xt
;
para
[
4
]
=
yt
;}
}
}
}
}
}
}
}
ObservationSim/PSF/PSFInterp_deprecated/PSFInterp_v3/libCentroid/test/ttc/centroidWgt.o
deleted
100644 → 0
View file @
e82a5dcc
File deleted
ObservationSim/PSF/PSFInterp_deprecated/PSFInterp_v3/libCentroid/test/ttc/nrutil.c
deleted
100644 → 0
View file @
e82a5dcc
#if defined(__STDC__) || defined(ANSI) || defined(NRANSI)
/* ANSI */
#include
<stdio.h>
#include
<stddef.h>
#include
<stdlib.h>
#define NR_END 1
#define FREE_ARG char*
void
nrerror
(
char
error_text
[])
/* Numerical Recipes standard error handler */
{
fprintf
(
stderr
,
"Numerical Recipes run-time error...
\n
"
);
fprintf
(
stderr
,
"%s
\n
"
,
error_text
);
fprintf
(
stderr
,
"...now exiting to system...
\n
"
);
exit
(
1
);
}
float
*
vector
(
long
nl
,
long
nh
)
/* allocate a float vector with subscript range v[nl..nh] */
{
float
*
v
;
v
=
(
float
*
)
malloc
((
size_t
)
((
nh
-
nl
+
1
+
NR_END
)
*
sizeof
(
float
)));
if
(
!
v
)
nrerror
(
"allocation failure in vector()"
);
return
v
-
nl
+
NR_END
;
}
int
*
ivector
(
long
nl
,
long
nh
)
/* allocate an int vector with subscript range v[nl..nh] */
{
int
*
v
;
v
=
(
int
*
)
malloc
((
size_t
)
((
nh
-
nl
+
1
+
NR_END
)
*
sizeof
(
int
)));
if
(
!
v
)
nrerror
(
"allocation failure in ivector()"
);
return
v
-
nl
+
NR_END
;
}
unsigned
char
*
cvector
(
long
nl
,
long
nh
)
/* allocate an unsigned char vector with subscript range v[nl..nh] */
{
unsigned
char
*
v
;
v
=
(
unsigned
char
*
)
malloc
((
size_t
)
((
nh
-
nl
+
1
+
NR_END
)
*
sizeof
(
unsigned
char
)));
if
(
!
v
)
nrerror
(
"allocation failure in cvector()"
);
return
v
-
nl
+
NR_END
;
}
unsigned
long
*
lvector
(
long
nl
,
long
nh
)
/* allocate an unsigned long vector with subscript range v[nl..nh] */
{
unsigned
long
*
v
;
v
=
(
unsigned
long
*
)
malloc
((
size_t
)
((
nh
-
nl
+
1
+
NR_END
)
*
sizeof
(
long
)));
if
(
!
v
)
nrerror
(
"allocation failure in lvector()"
);
return
v
-
nl
+
NR_END
;
}
double
*
dvector
(
long
nl
,
long
nh
)
/* allocate a double vector with subscript range v[nl..nh] */
{
double
*
v
;
v
=
(
double
*
)
malloc
((
size_t
)
((
nh
-
nl
+
1
+
NR_END
)
*
sizeof
(
double
)));
if
(
!
v
)
nrerror
(
"allocation failure in dvector()"
);
return
v
-
nl
+
NR_END
;
}
float
**
matrix
(
long
nrl
,
long
nrh
,
long
ncl
,
long
nch
)
/* allocate a float matrix with subscript range m[nrl..nrh][ncl..nch] */
{
long
i
,
nrow
=
nrh
-
nrl
+
1
,
ncol
=
nch
-
ncl
+
1
;
float
**
m
;
/* allocate pointers to rows */
m
=
(
float
**
)
malloc
((
size_t
)((
nrow
+
NR_END
)
*
sizeof
(
float
*
)));
if
(
!
m
)
nrerror
(
"allocation failure 1 in matrix()"
);
m
+=
NR_END
;
m
-=
nrl
;
/* allocate rows and set pointers to them */
m
[
nrl
]
=
(
float
*
)
malloc
((
size_t
)((
nrow
*
ncol
+
NR_END
)
*
sizeof
(
float
)));
if
(
!
m
[
nrl
])
nrerror
(
"allocation failure 2 in matrix()"
);
m
[
nrl
]
+=
NR_END
;
m
[
nrl
]
-=
ncl
;
for
(
i
=
nrl
+
1
;
i
<=
nrh
;
i
++
)
m
[
i
]
=
m
[
i
-
1
]
+
ncol
;
/* return pointer to array of pointers to rows */
return
m
;
}
double
**
dmatrix
(
long
nrl
,
long
nrh
,
long
ncl
,
long
nch
)
/* allocate a double matrix with subscript range m[nrl..nrh][ncl..nch] */
{
long
i
,
nrow
=
nrh
-
nrl
+
1
,
ncol
=
nch
-
ncl
+
1
;
double
**
m
;
/* allocate pointers to rows */
m
=
(
double
**
)
malloc
((
size_t
)((
nrow
+
NR_END
)
*
sizeof
(
double
*
)));
if
(
!
m
)
nrerror
(
"allocation failure 1 in matrix()"
);
m
+=
NR_END
;
m
-=
nrl
;
/* allocate rows and set pointers to them */
m
[
nrl
]
=
(
double
*
)
malloc
((
size_t
)((
nrow
*
ncol
+
NR_END
)
*
sizeof
(
double
)));
if
(
!
m
[
nrl
])
nrerror
(
"allocation failure 2 in matrix()"
);
m
[
nrl
]
+=
NR_END
;
m
[
nrl
]
-=
ncl
;
for
(
i
=
nrl
+
1
;
i
<=
nrh
;
i
++
)
m
[
i
]
=
m
[
i
-
1
]
+
ncol
;
/* return pointer to array of pointers to rows */
return
m
;
}
int
**
imatrix
(
long
nrl
,
long
nrh
,
long
ncl
,
long
nch
)
/* allocate a int matrix with subscript range m[nrl..nrh][ncl..nch] */
{
long
i
,
nrow
=
nrh
-
nrl
+
1
,
ncol
=
nch
-
ncl
+
1
;
int
**
m
;
/* allocate pointers to rows */
m
=
(
int
**
)
malloc
((
size_t
)((
nrow
+
NR_END
)
*
sizeof
(
int
*
)));
if
(
!
m
)
nrerror
(
"allocation failure 1 in matrix()"
);
m
+=
NR_END
;
m
-=
nrl
;
/* allocate rows and set pointers to them */
m
[
nrl
]
=
(
int
*
)
malloc
((
size_t
)((
nrow
*
ncol
+
NR_END
)
*
sizeof
(
int
)));
if
(
!
m
[
nrl
])
nrerror
(
"allocation failure 2 in matrix()"
);
m
[
nrl
]
+=
NR_END
;
m
[
nrl
]
-=
ncl
;
for
(
i
=
nrl
+
1
;
i
<=
nrh
;
i
++
)
m
[
i
]
=
m
[
i
-
1
]
+
ncol
;
/* return pointer to array of pointers to rows */
return
m
;
}
float
**
submatrix
(
float
**
a
,
long
oldrl
,
long
oldrh
,
long
oldcl
,
long
oldch
,
long
newrl
,
long
newcl
)
/* point a submatrix [newrl..][newcl..] to a[oldrl..oldrh][oldcl..oldch] */
{
long
i
,
j
,
nrow
=
oldrh
-
oldrl
+
1
,
ncol
=
oldcl
-
newcl
;
float
**
m
;
/* allocate array of pointers to rows */
m
=
(
float
**
)
malloc
((
size_t
)
((
nrow
+
NR_END
)
*
sizeof
(
float
*
)));
if
(
!
m
)
nrerror
(
"allocation failure in submatrix()"
);
m
+=
NR_END
;
m
-=
newrl
;
/* set pointers to rows */
for
(
i
=
oldrl
,
j
=
newrl
;
i
<=
oldrh
;
i
++
,
j
++
)
m
[
j
]
=
a
[
i
]
+
ncol
;
/* return pointer to array of pointers to rows */
return
m
;
}
float
**
convert_matrix
(
float
*
a
,
long
nrl
,
long
nrh
,
long
ncl
,
long
nch
)
/* allocate a float matrix m[nrl..nrh][ncl..nch] that points to the matrix
declared in the standard C manner as a[nrow][ncol], where nrow=nrh-nrl+1
and ncol=nch-ncl+1. The routine should be called with the address
&a[0][0] as the first argument. */
{
long
i
,
j
,
nrow
=
nrh
-
nrl
+
1
,
ncol
=
nch
-
ncl
+
1
;
float
**
m
;
/* allocate pointers to rows */
m
=
(
float
**
)
malloc
((
size_t
)
((
nrow
+
NR_END
)
*
sizeof
(
float
*
)));
if
(
!
m
)
nrerror
(
"allocation failure in convert_matrix()"
);
m
+=
NR_END
;
m
-=
nrl
;
/* set pointers to rows */
m
[
nrl
]
=
a
-
ncl
;
for
(
i
=
1
,
j
=
nrl
+
1
;
i
<
nrow
;
i
++
,
j
++
)
m
[
j
]
=
m
[
j
-
1
]
+
ncol
;
/* return pointer to array of pointers to rows */
return
m
;
}
float
***
f3tensor
(
long
nrl
,
long
nrh
,
long
ncl
,
long
nch
,
long
ndl
,
long
ndh
)
/* allocate a float 3tensor with range t[nrl..nrh][ncl..nch][ndl..ndh] */
{
long
i
,
j
,
nrow
=
nrh
-
nrl
+
1
,
ncol
=
nch
-
ncl
+
1
,
ndep
=
ndh
-
ndl
+
1
;
float
***
t
;
/* allocate pointers to pointers to rows */
t
=
(
float
***
)
malloc
((
size_t
)((
nrow
+
NR_END
)
*
sizeof
(
float
**
)));
if
(
!
t
)
nrerror
(
"allocation failure 1 in f3tensor()"
);
t
+=
NR_END
;
t
-=
nrl
;
/* allocate pointers to rows and set pointers to them */
t
[
nrl
]
=
(
float
**
)
malloc
((
size_t
)((
nrow
*
ncol
+
NR_END
)
*
sizeof
(
float
*
)));
if
(
!
t
[
nrl
])
nrerror
(
"allocation failure 2 in f3tensor()"
);
t
[
nrl
]
+=
NR_END
;
t
[
nrl
]
-=
ncl
;
/* allocate rows and set pointers to them */
t
[
nrl
][
ncl
]
=
(
float
*
)
malloc
((
size_t
)((
nrow
*
ncol
*
ndep
+
NR_END
)
*
sizeof
(
float
)));
if
(
!
t
[
nrl
][
ncl
])
nrerror
(
"allocation failure 3 in f3tensor()"
);
t
[
nrl
][
ncl
]
+=
NR_END
;
t
[
nrl
][
ncl
]
-=
ndl
;
for
(
j
=
ncl
+
1
;
j
<=
nch
;
j
++
)
t
[
nrl
][
j
]
=
t
[
nrl
][
j
-
1
]
+
ndep
;
for
(
i
=
nrl
+
1
;
i
<=
nrh
;
i
++
)
{
t
[
i
]
=
t
[
i
-
1
]
+
ncol
;
t
[
i
][
ncl
]
=
t
[
i
-
1
][
ncl
]
+
ncol
*
ndep
;
for
(
j
=
ncl
+
1
;
j
<=
nch
;
j
++
)
t
[
i
][
j
]
=
t
[
i
][
j
-
1
]
+
ndep
;
}
/* return pointer to array of pointers to rows */
return
t
;
}
double
***
d3tensor
(
long
nrl
,
long
nrh
,
long
ncl
,
long
nch
,
long
ndl
,
long
ndh
)
/* allocate a double 3tensor with range t[nrl..nrh][ncl..nch][ndl..ndh] */
{
long
i
,
j
,
nrow
=
nrh
-
nrl
+
1
,
ncol
=
nch
-
ncl
+
1
,
ndep
=
ndh
-
ndl
+
1
;
double
***
t
;
/* allocate pointers to pointers to rows */
t
=
(
double
***
)
malloc
((
size_t
)((
nrow
+
NR_END
)
*
sizeof
(
double
**
)));
if
(
!
t
)
nrerror
(
"allocation failure 1 in f3tensor()"
);
t
+=
NR_END
;
t
-=
nrl
;
/* allocate pointers to rows and set pointers to them */
t
[
nrl
]
=
(
double
**
)
malloc
((
size_t
)((
nrow
*
ncol
+
NR_END
)
*
sizeof
(
double
*
)));
if
(
!
t
[
nrl
])
nrerror
(
"allocation failure 2 in f3tensor()"
);
t
[
nrl
]
+=
NR_END
;
t
[
nrl
]
-=
ncl
;
/* allocate rows and set pointers to them */
t
[
nrl
][
ncl
]
=
(
double
*
)
malloc
((
size_t
)((
nrow
*
ncol
*
ndep
+
NR_END
)
*
sizeof
(
double
)));
if
(
!
t
[
nrl
][
ncl
])
nrerror
(
"allocation failure 3 in f3tensor()"
);
t
[
nrl
][
ncl
]
+=
NR_END
;
t
[
nrl
][
ncl
]
-=
ndl
;
for
(
j
=
ncl
+
1
;
j
<=
nch
;
j
++
)
t
[
nrl
][
j
]
=
t
[
nrl
][
j
-
1
]
+
ndep
;
for
(
i
=
nrl
+
1
;
i
<=
nrh
;
i
++
)
{
t
[
i
]
=
t
[
i
-
1
]
+
ncol
;
t
[
i
][
ncl
]
=
t
[
i
-
1
][
ncl
]
+
ncol
*
ndep
;
for
(
j
=
ncl
+
1
;
j
<=
nch
;
j
++
)
t
[
i
][
j
]
=
t
[
i
][
j
-
1
]
+
ndep
;
}
/* return pointer to array of pointers to rows */
return
t
;
}
unsigned
char
**
cmatrix
(
long
nrl
,
long
nrh
,
long
ncl
,
long
nch
)
/* allocate a int matrix with subscript range m[nrl..nrh][ncl..nch] */
{
long
i
,
nrow
=
nrh
-
nrl
+
1
,
ncol
=
nch
-
ncl
+
1
;
unsigned
char
**
m
;
/* allocate pointers to rows */
m
=
(
unsigned
char
**
)
malloc
((
size_t
)((
nrow
+
NR_END
)
*
sizeof
(
unsigned
char
*
)));
if
(
!
m
)
nrerror
(
"allocation failure 1 in matrix()"
);
m
+=
NR_END
;
m
-=
nrl
;
/* allocate rows and set pointers to them */
m
[
nrl
]
=
(
unsigned
char
*
)
malloc
((
size_t
)((
nrow
*
ncol
+
NR_END
)
*
sizeof
(
unsigned
char
)));
if
(
!
m
[
nrl
])
nrerror
(
"allocation failure 2 in matrix()"
);
m
[
nrl
]
+=
NR_END
;
m
[
nrl
]
-=
ncl
;
for
(
i
=
nrl
+
1
;
i
<=
nrh
;
i
++
)
m
[
i
]
=
m
[
i
-
1
]
+
ncol
;
/* return pointer to array of pointers to rows */
return
m
;
}
void
free_vector
(
float
*
v
,
long
nl
,
long
nh
)
/* free a float vector allocated with vector() */
{
free
((
FREE_ARG
)
(
v
+
nl
-
NR_END
));
}
void
free_ivector
(
int
*
v
,
long
nl
,
long
nh
)
/* free an int vector allocated with ivector() */
{
free
((
FREE_ARG
)
(
v
+
nl
-
NR_END
));
}
void
free_cvector
(
unsigned
char
*
v
,
long
nl
,
long
nh
)
/* free an unsigned char vector allocated with cvector() */
{
free
((
FREE_ARG
)
(
v
+
nl
-
NR_END
));
}
void
free_lvector
(
unsigned
long
*
v
,
long
nl
,
long
nh
)
/* free an unsigned long vector allocated with lvector() */
{
free
((
FREE_ARG
)
(
v
+
nl
-
NR_END
));
}
void
free_dvector
(
double
*
v
,
long
nl
,
long
nh
)
/* free a double vector allocated with dvector() */
{
free
((
FREE_ARG
)
(
v
+
nl
-
NR_END
));
}
void
free_matrix
(
float
**
m
,
long
nrl
,
long
nrh
,
long
ncl
,
long
nch
)
/* free a float matrix allocated by matrix() */
{
free
((
FREE_ARG
)
(
m
[
nrl
]
+
ncl
-
NR_END
));
free
((
FREE_ARG
)
(
m
+
nrl
-
NR_END
));
}
void
free_dmatrix
(
double
**
m
,
long
nrl
,
long
nrh
,
long
ncl
,
long
nch
)
/* free a double matrix allocated by dmatrix() */
{
free
((
FREE_ARG
)
(
m
[
nrl
]
+
ncl
-
NR_END
));
free
((
FREE_ARG
)
(
m
+
nrl
-
NR_END
));
}
void
free_imatrix
(
int
**
m
,
long
nrl
,
long
nrh
,
long
ncl
,
long
nch
)
/* free an int matrix allocated by imatrix() */
{
free
((
FREE_ARG
)
(
m
[
nrl
]
+
ncl
-
NR_END
));
free
((
FREE_ARG
)
(
m
+
nrl
-
NR_END
));
}
void
free_submatrix
(
float
**
b
,
long
nrl
,
long
nrh
,
long
ncl
,
long
nch
)
/* free a submatrix allocated by submatrix() */
{
free
((
FREE_ARG
)
(
b
+
nrl
-
NR_END
));
}
void
free_convert_matrix
(
float
**
b
,
long
nrl
,
long
nrh
,
long
ncl
,
long
nch
)
/* free a matrix allocated by convert_matrix() */
{
free
((
FREE_ARG
)
(
b
+
nrl
-
NR_END
));
}
void
free_f3tensor
(
float
***
t
,
long
nrl
,
long
nrh
,
long
ncl
,
long
nch
,
long
ndl
,
long
ndh
)
/* free a float f3tensor allocated by f3tensor() */
{
free
((
FREE_ARG
)
(
t
[
nrl
][
ncl
]
+
ndl
-
NR_END
));
free
((
FREE_ARG
)
(
t
[
nrl
]
+
ncl
-
NR_END
));
free
((
FREE_ARG
)
(
t
+
nrl
-
NR_END
));
}
void
free_d3tensor
(
double
***
t
,
long
nrl
,
long
nrh
,
long
ncl
,
long
nch
,
long
ndl
,
long
ndh
)
/* free a double f3tensor allocated by f3tensor() */
{
free
((
FREE_ARG
)
(
t
[
nrl
][
ncl
]
+
ndl
-
NR_END
));
free
((
FREE_ARG
)
(
t
[
nrl
]
+
ncl
-
NR_END
));
free
((
FREE_ARG
)
(
t
+
nrl
-
NR_END
));
}
void
free_cmatrix
(
unsigned
char
**
m
,
long
nrl
,
long
nrh
,
long
ncl
,
long
nch
)
/* free a character matrix allocated by matrix() */
{
free
((
FREE_ARG
)
(
m
[
nrl
]
+
ncl
-
NR_END
));
free
((
FREE_ARG
)
(
m
+
nrl
-
NR_END
));
}
#else
/* ANSI */
/* traditional - K&R */
#include
<stdio.h>
#define NR_END 1
#define FREE_ARG char*
void
nrerror
(
error_text
)
char
error_text
[];
/* Numerical Recipes standard error handler */
{
void
exit
();
fprintf
(
stderr
,
"Numerical Recipes run-time error...
\n
"
);
fprintf
(
stderr
,
"%s
\n
"
,
error_text
);
fprintf
(
stderr
,
"...now exiting to system...
\n
"
);
exit
(
1
);
}
float
*
vector
(
nl
,
nh
)
long
nh
,
nl
;
/* allocate a float vector with subscript range v[nl..nh] */
{
float
*
v
;
v
=
(
float
*
)
malloc
((
unsigned
int
)
((
nh
-
nl
+
1
+
NR_END
)
*
sizeof
(
float
)));
if
(
!
v
)
nrerror
(
"allocation failure in vector()"
);
return
v
-
nl
+
NR_END
;
}
int
*
ivector
(
nl
,
nh
)
long
nh
,
nl
;
/* allocate an int vector with subscript range v[nl..nh] */
{
int
*
v
;
v
=
(
int
*
)
malloc
((
unsigned
int
)
((
nh
-
nl
+
1
+
NR_END
)
*
sizeof
(
int
)));
if
(
!
v
)
nrerror
(
"allocation failure in ivector()"
);
return
v
-
nl
+
NR_END
;
}
unsigned
char
*
cvector
(
nl
,
nh
)
long
nh
,
nl
;
/* allocate an unsigned char vector with subscript range v[nl..nh] */
{
unsigned
char
*
v
;
v
=
(
unsigned
char
*
)
malloc
((
unsigned
int
)
((
nh
-
nl
+
1
+
NR_END
)
*
sizeof
(
unsigned
char
)));
if
(
!
v
)
nrerror
(
"allocation failure in cvector()"
);
return
v
-
nl
+
NR_END
;
}
unsigned
long
*
lvector
(
nl
,
nh
)
long
nh
,
nl
;
/* allocate an unsigned long vector with subscript range v[nl..nh] */
{
unsigned
long
*
v
;
v
=
(
unsigned
long
*
)
malloc
((
unsigned
int
)
((
nh
-
nl
+
1
+
NR_END
)
*
sizeof
(
long
)));
if
(
!
v
)
nrerror
(
"allocation failure in lvector()"
);
return
v
-
nl
+
NR_END
;
}
double
*
dvector
(
nl
,
nh
)
long
nh
,
nl
;
/* allocate a double vector with subscript range v[nl..nh] */
{
double
*
v
;
v
=
(
double
*
)
malloc
((
unsigned
int
)
((
nh
-
nl
+
1
+
NR_END
)
*
sizeof
(
double
)));
if
(
!
v
)
nrerror
(
"allocation failure in dvector()"
);
return
v
-
nl
+
NR_END
;
}
float
**
matrix
(
nrl
,
nrh
,
ncl
,
nch
)
long
nch
,
ncl
,
nrh
,
nrl
;
/* allocate a float matrix with subscript range m[nrl..nrh][ncl..nch] */
{
long
i
,
nrow
=
nrh
-
nrl
+
1
,
ncol
=
nch
-
ncl
+
1
;
float
**
m
;
/* allocate pointers to rows */
m
=
(
float
**
)
malloc
((
unsigned
int
)((
nrow
+
NR_END
)
*
sizeof
(
float
*
)));
if
(
!
m
)
nrerror
(
"allocation failure 1 in matrix()"
);
m
+=
NR_END
;
m
-=
nrl
;
/* allocate rows and set pointers to them */
m
[
nrl
]
=
(
float
*
)
malloc
((
unsigned
int
)((
nrow
*
ncol
+
NR_END
)
*
sizeof
(
float
)));
if
(
!
m
[
nrl
])
nrerror
(
"allocation failure 2 in matrix()"
);
m
[
nrl
]
+=
NR_END
;
m
[
nrl
]
-=
ncl
;
for
(
i
=
nrl
+
1
;
i
<=
nrh
;
i
++
)
m
[
i
]
=
m
[
i
-
1
]
+
ncol
;
/* return pointer to array of pointers to rows */
return
m
;
}
double
**
dmatrix
(
nrl
,
nrh
,
ncl
,
nch
)
long
nch
,
ncl
,
nrh
,
nrl
;
/* allocate a double matrix with subscript range m[nrl..nrh][ncl..nch] */
{
long
i
,
nrow
=
nrh
-
nrl
+
1
,
ncol
=
nch
-
ncl
+
1
;
double
**
m
;
/* allocate pointers to rows */
m
=
(
double
**
)
malloc
((
unsigned
int
)((
nrow
+
NR_END
)
*
sizeof
(
double
*
)));
if
(
!
m
)
nrerror
(
"allocation failure 1 in matrix()"
);
m
+=
NR_END
;
m
-=
nrl
;
/* allocate rows and set pointers to them */
m
[
nrl
]
=
(
double
*
)
malloc
((
unsigned
int
)((
nrow
*
ncol
+
NR_END
)
*
sizeof
(
double
)));
if
(
!
m
[
nrl
])
nrerror
(
"allocation failure 2 in matrix()"
);
m
[
nrl
]
+=
NR_END
;
m
[
nrl
]
-=
ncl
;
for
(
i
=
nrl
+
1
;
i
<=
nrh
;
i
++
)
m
[
i
]
=
m
[
i
-
1
]
+
ncol
;
/* return pointer to array of pointers to rows */
return
m
;
}
int
**
imatrix
(
nrl
,
nrh
,
ncl
,
nch
)
long
nch
,
ncl
,
nrh
,
nrl
;
/* allocate a int matrix with subscript range m[nrl..nrh][ncl..nch] */
{
long
i
,
nrow
=
nrh
-
nrl
+
1
,
ncol
=
nch
-
ncl
+
1
;
int
**
m
;
/* allocate pointers to rows */
m
=
(
int
**
)
malloc
((
unsigned
int
)((
nrow
+
NR_END
)
*
sizeof
(
int
*
)));
if
(
!
m
)
nrerror
(
"allocation failure 1 in matrix()"
);
m
+=
NR_END
;
m
-=
nrl
;
/* allocate rows and set pointers to them */
m
[
nrl
]
=
(
int
*
)
malloc
((
unsigned
int
)((
nrow
*
ncol
+
NR_END
)
*
sizeof
(
int
)));
if
(
!
m
[
nrl
])
nrerror
(
"allocation failure 2 in matrix()"
);
m
[
nrl
]
+=
NR_END
;
m
[
nrl
]
-=
ncl
;
for
(
i
=
nrl
+
1
;
i
<=
nrh
;
i
++
)
m
[
i
]
=
m
[
i
-
1
]
+
ncol
;
/* return pointer to array of pointers to rows */
return
m
;
}
float
**
submatrix
(
a
,
oldrl
,
oldrh
,
oldcl
,
oldch
,
newrl
,
newcl
)
float
**
a
;
long
newcl
,
newrl
,
oldch
,
oldcl
,
oldrh
,
oldrl
;
/* point a submatrix [newrl..][newcl..] to a[oldrl..oldrh][oldcl..oldch] */
{
long
i
,
j
,
nrow
=
oldrh
-
oldrl
+
1
,
ncol
=
oldcl
-
newcl
;
float
**
m
;
/* allocate array of pointers to rows */
m
=
(
float
**
)
malloc
((
unsigned
int
)
((
nrow
+
NR_END
)
*
sizeof
(
float
*
)));
if
(
!
m
)
nrerror
(
"allocation failure in submatrix()"
);
m
+=
NR_END
;
m
-=
newrl
;
/* set pointers to rows */
for
(
i
=
oldrl
,
j
=
newrl
;
i
<=
oldrh
;
i
++
,
j
++
)
m
[
j
]
=
a
[
i
]
+
ncol
;
/* return pointer to array of pointers to rows */
return
m
;
}
float
**
convert_matrix
(
a
,
nrl
,
nrh
,
ncl
,
nch
)
float
*
a
;
long
nch
,
ncl
,
nrh
,
nrl
;
/* allocate a float matrix m[nrl..nrh][ncl..nch] that points to the matrix
declared in the standard C manner as a[nrow][ncol], where nrow=nrh-nrl+1
and ncol=nch-ncl+1. The routine should be called with the address
&a[0][0] as the first argument. */
{
long
i
,
j
,
nrow
=
nrh
-
nrl
+
1
,
ncol
=
nch
-
ncl
+
1
;
float
**
m
;
/* allocate pointers to rows */
m
=
(
float
**
)
malloc
((
unsigned
int
)
((
nrow
+
NR_END
)
*
sizeof
(
float
*
)));
if
(
!
m
)
nrerror
(
"allocation failure in convert_matrix()"
);
m
+=
NR_END
;
m
-=
nrl
;
/* set pointers to rows */
m
[
nrl
]
=
a
-
ncl
;
for
(
i
=
1
,
j
=
nrl
+
1
;
i
<
nrow
;
i
++
,
j
++
)
m
[
j
]
=
m
[
j
-
1
]
+
ncol
;
/* return pointer to array of pointers to rows */
return
m
;
}
double
***
d3tensor
(
nrl
,
nrh
,
ncl
,
nch
,
ndl
,
ndh
)
long
nch
,
ncl
,
ndh
,
ndl
,
nrh
,
nrl
;
/* allocate a float 3tensor with range t[nrl..nrh][ncl..nch][ndl..ndh] */
{
long
i
,
j
,
nrow
=
nrh
-
nrl
+
1
,
ncol
=
nch
-
ncl
+
1
,
ndep
=
ndh
-
ndl
+
1
;
double
***
t
;
/* allocate pointers to pointers to rows */
t
=
(
double
***
)
malloc
((
unsigned
int
)((
nrow
+
NR_END
)
*
sizeof
(
double
**
)));
if
(
!
t
)
nrerror
(
"allocation failure 1 in f3tensor()"
);
t
+=
NR_END
;
t
-=
nrl
;
/* allocate pointers to rows and set pointers to them */
t
[
nrl
]
=
(
double
**
)
malloc
((
unsigned
int
)((
nrow
*
ncol
+
NR_END
)
*
sizeof
(
double
*
)));
if
(
!
t
[
nrl
])
nrerror
(
"allocation failure 2 in f3tensor()"
);
t
[
nrl
]
+=
NR_END
;
t
[
nrl
]
-=
ncl
;
/* allocate rows and set pointers to them */
t
[
nrl
][
ncl
]
=
(
double
*
)
malloc
((
unsigned
int
)((
nrow
*
ncol
*
ndep
+
NR_END
)
*
sizeof
(
double
)));
if
(
!
t
[
nrl
][
ncl
])
nrerror
(
"allocation failure 3 in f3tensor()"
);
t
[
nrl
][
ncl
]
+=
NR_END
;
t
[
nrl
][
ncl
]
-=
ndl
;
for
(
j
=
ncl
+
1
;
j
<=
nch
;
j
++
)
t
[
nrl
][
j
]
=
t
[
nrl
][
j
-
1
]
+
ndep
;
for
(
i
=
nrl
+
1
;
i
<=
nrh
;
i
++
)
{
t
[
i
]
=
t
[
i
-
1
]
+
ncol
;
t
[
i
][
ncl
]
=
t
[
i
-
1
][
ncl
]
+
ncol
*
ndep
;
for
(
j
=
ncl
+
1
;
j
<=
nch
;
j
++
)
t
[
i
][
j
]
=
t
[
i
][
j
-
1
]
+
ndep
;
}
/* return pointer to array of pointers to rows */
return
t
;
}
float
***
f3tensor
(
nrl
,
nrh
,
ncl
,
nch
,
ndl
,
ndh
)
long
nch
,
ncl
,
ndh
,
ndl
,
nrh
,
nrl
;
/* allocate a float 3tensor with range t[nrl..nrh][ncl..nch][ndl..ndh] */
{
long
i
,
j
,
nrow
=
nrh
-
nrl
+
1
,
ncol
=
nch
-
ncl
+
1
,
ndep
=
ndh
-
ndl
+
1
;
float
***
t
;
/* allocate pointers to pointers to rows */
t
=
(
float
***
)
malloc
((
unsigned
int
)((
nrow
+
NR_END
)
*
sizeof
(
float
**
)));
if
(
!
t
)
nrerror
(
"allocation failure 1 in f3tensor()"
);
t
+=
NR_END
;
t
-=
nrl
;
/* allocate pointers to rows and set pointers to them */
t
[
nrl
]
=
(
float
**
)
malloc
((
unsigned
int
)((
nrow
*
ncol
+
NR_END
)
*
sizeof
(
float
*
)));
if
(
!
t
[
nrl
])
nrerror
(
"allocation failure 2 in f3tensor()"
);
t
[
nrl
]
+=
NR_END
;
t
[
nrl
]
-=
ncl
;
/* allocate rows and set pointers to them */
t
[
nrl
][
ncl
]
=
(
float
*
)
malloc
((
unsigned
int
)((
nrow
*
ncol
*
ndep
+
NR_END
)
*
sizeof
(
float
)));
if
(
!
t
[
nrl
][
ncl
])
nrerror
(
"allocation failure 3 in f3tensor()"
);
t
[
nrl
][
ncl
]
+=
NR_END
;
t
[
nrl
][
ncl
]
-=
ndl
;
for
(
j
=
ncl
+
1
;
j
<=
nch
;
j
++
)
t
[
nrl
][
j
]
=
t
[
nrl
][
j
-
1
]
+
ndep
;
for
(
i
=
nrl
+
1
;
i
<=
nrh
;
i
++
)
{
t
[
i
]
=
t
[
i
-
1
]
+
ncol
;
t
[
i
][
ncl
]
=
t
[
i
-
1
][
ncl
]
+
ncol
*
ndep
;
for
(
j
=
ncl
+
1
;
j
<=
nch
;
j
++
)
t
[
i
][
j
]
=
t
[
i
][
j
-
1
]
+
ndep
;
}
/* return pointer to array of pointers to rows */
return
t
;
}
unsigned
char
**
cmatrix
(
nrl
,
nrh
,
ncl
,
nch
)
long
nch
,
ncl
,
nrh
,
nrl
;
/* allocate a int matrix with subscript range m[nrl..nrh][ncl..nch] */
{
long
i
,
nrow
=
nrh
-
nrl
+
1
,
ncol
=
nch
-
ncl
+
1
;
unsigned
char
**
m
;
/* allocate pointers to rows */
m
=
(
unsigned
char
**
)
malloc
((
unsigned
int
)((
nrow
+
NR_END
)
*
sizeof
(
unsigned
char
*
)));
if
(
!
m
)
nrerror
(
"allocation failure 1 in matrix()"
);
m
+=
NR_END
;
m
-=
nrl
;
/* allocate rows and set pointers to them */
m
[
nrl
]
=
(
unsigned
char
*
)
malloc
((
unsigned
int
)((
nrow
*
ncol
+
NR_END
)
*
sizeof
(
unsigned
char
)));
if
(
!
m
[
nrl
])
nrerror
(
"allocation failure 2 in matrix()"
);
m
[
nrl
]
+=
NR_END
;
m
[
nrl
]
-=
ncl
;
for
(
i
=
nrl
+
1
;
i
<=
nrh
;
i
++
)
m
[
i
]
=
m
[
i
-
1
]
+
ncol
;
/* return pointer to array of pointers to rows */
return
m
;
}
void
free_vector
(
v
,
nl
,
nh
)
float
*
v
;
long
nh
,
nl
;
/* free a float vector allocated with vector() */
{
free
((
FREE_ARG
)
(
v
+
nl
-
NR_END
));
}
void
free_ivector
(
v
,
nl
,
nh
)
int
*
v
;
long
nh
,
nl
;
/* free an int vector allocated with ivector() */
{
free
((
FREE_ARG
)
(
v
+
nl
-
NR_END
));
}
void
free_cvector
(
v
,
nl
,
nh
)
long
nh
,
nl
;
unsigned
char
*
v
;
/* free an unsigned char vector allocated with cvector() */
{
free
((
FREE_ARG
)
(
v
+
nl
-
NR_END
));
}
void
free_lvector
(
v
,
nl
,
nh
)
long
nh
,
nl
;
unsigned
long
*
v
;
/* free an unsigned long vector allocated with lvector() */
{
free
((
FREE_ARG
)
(
v
+
nl
-
NR_END
));
}
void
free_dvector
(
v
,
nl
,
nh
)
double
*
v
;
long
nh
,
nl
;
/* free a double vector allocated with dvector() */
{
free
((
FREE_ARG
)
(
v
+
nl
-
NR_END
));
}
void
free_matrix
(
m
,
nrl
,
nrh
,
ncl
,
nch
)
float
**
m
;
long
nch
,
ncl
,
nrh
,
nrl
;
/* free a float matrix allocated by matrix() */
{
free
((
FREE_ARG
)
(
m
[
nrl
]
+
ncl
-
NR_END
));
free
((
FREE_ARG
)
(
m
+
nrl
-
NR_END
));
}
void
free_dmatrix
(
m
,
nrl
,
nrh
,
ncl
,
nch
)
double
**
m
;
long
nch
,
ncl
,
nrh
,
nrl
;
/* free a double matrix allocated by dmatrix() */
{
free
((
FREE_ARG
)
(
m
[
nrl
]
+
ncl
-
NR_END
));
free
((
FREE_ARG
)
(
m
+
nrl
-
NR_END
));
}
void
free_imatrix
(
m
,
nrl
,
nrh
,
ncl
,
nch
)
int
**
m
;
long
nch
,
ncl
,
nrh
,
nrl
;
/* free an int matrix allocated by imatrix() */
{
free
((
FREE_ARG
)
(
m
[
nrl
]
+
ncl
-
NR_END
));
free
((
FREE_ARG
)
(
m
+
nrl
-
NR_END
));
}
void
free_submatrix
(
b
,
nrl
,
nrh
,
ncl
,
nch
)
float
**
b
;
long
nch
,
ncl
,
nrh
,
nrl
;
/* free a submatrix allocated by submatrix() */
{
free
((
FREE_ARG
)
(
b
+
nrl
-
NR_END
));
}
void
free_convert_matrix
(
b
,
nrl
,
nrh
,
ncl
,
nch
)
float
**
b
;
long
nch
,
ncl
,
nrh
,
nrl
;
/* free a matrix allocated by convert_matrix() */
{
free
((
FREE_ARG
)
(
b
+
nrl
-
NR_END
));
}
void
free_f3tensor
(
t
,
nrl
,
nrh
,
ncl
,
nch
,
ndl
,
ndh
)
float
***
t
;
long
nch
,
ncl
,
ndh
,
ndl
,
nrh
,
nrl
;
/* free a float f3tensor allocated by f3tensor() */
{
free
((
FREE_ARG
)
(
t
[
nrl
][
ncl
]
+
ndl
-
NR_END
));
free
((
FREE_ARG
)
(
t
[
nrl
]
+
ncl
-
NR_END
));
free
((
FREE_ARG
)
(
t
+
nrl
-
NR_END
));
}
void
free_d3tensor
(
t
,
nrl
,
nrh
,
ncl
,
nch
,
ndl
,
ndh
)
double
***
t
;
long
nch
,
ncl
,
ndh
,
ndl
,
nrh
,
nrl
;
/* free a float f3tensor allocated by f3tensor() */
{
free
((
FREE_ARG
)
(
t
[
nrl
][
ncl
]
+
ndl
-
NR_END
));
free
((
FREE_ARG
)
(
t
[
nrl
]
+
ncl
-
NR_END
));
free
((
FREE_ARG
)
(
t
+
nrl
-
NR_END
));
}
void
free_cmatrix
(
m
,
nrl
,
nrh
,
ncl
,
nch
)
unsigned
**
m
;
long
nch
,
ncl
,
nrh
,
nrl
;
/* free a double matrix allocated by dmatrix() */
{
free
((
FREE_ARG
)
(
m
[
nrl
]
+
ncl
-
NR_END
));
free
((
FREE_ARG
)
(
m
+
nrl
-
NR_END
));
}
#endif
/* ANSI */
ObservationSim/PSF/PSFInterp_deprecated/PSFInterp_v3/libCentroid/test/ttc/nrutil.h
deleted
100644 → 0
View file @
e82a5dcc
/* CAUTION: This is the ANSI C (only) version of the Numerical Recipes
utility file nrutil.h. Do not confuse this file with the same-named
file nrutil.h that may be supplied in a 'misc' subdirectory.
*That* file is the one from the book, and contains both ANSI and
traditional K&R versions, along with #ifdef macros to select the
correct version. *This* file contains only ANSI C. */
#ifndef _NR_UTILS_H_
#define _NR_UTILS_H_
static
float
sqrarg
;
#define SQR(a) ((sqrarg=(a)) == 0.0 ? 0.0 : sqrarg*sqrarg)
static
double
dsqrarg
;
#define DSQR(a) ((dsqrarg=(a)) == 0.0 ? 0.0 : dsqrarg*dsqrarg)
static
double
dmaxarg1
,
dmaxarg2
;
#define DMAX(a,b) (dmaxarg1=(a),dmaxarg2=(b),(dmaxarg1) > (dmaxarg2) ?\
(dmaxarg1) : (dmaxarg2))
static
double
dminarg1
,
dminarg2
;
#define DMIN(a,b) (dminarg1=(a),dminarg2=(b),(dminarg1) < (dminarg2) ?\
(dminarg1) : (dminarg2))
static
float
maxarg1
,
maxarg2
;
#define FMAX(a,b) (maxarg1=(a),maxarg2=(b),(maxarg1) > (maxarg2) ?\
(maxarg1) : (maxarg2))
static
float
minarg1
,
minarg2
;
#define FMIN(a,b) (minarg1=(a),minarg2=(b),(minarg1) < (minarg2) ?\
(minarg1) : (minarg2))
static
long
lmaxarg1
,
lmaxarg2
;
#define LMAX(a,b) (lmaxarg1=(a),lmaxarg2=(b),(lmaxarg1) > (lmaxarg2) ?\
(lmaxarg1) : (lmaxarg2))
static
long
lminarg1
,
lminarg2
;
#define LMIN(a,b) (lminarg1=(a),lminarg2=(b),(lminarg1) < (lminarg2) ?\
(lminarg1) : (lminarg2))
static
int
imaxarg1
,
imaxarg2
;
#define IMAX(a,b) (imaxarg1=(a),imaxarg2=(b),(imaxarg1) > (imaxarg2) ?\
(imaxarg1) : (imaxarg2))
static
int
iminarg1
,
iminarg2
;
#define IMIN(a,b) (iminarg1=(a),iminarg2=(b),(iminarg1) < (iminarg2) ?\
(iminarg1) : (iminarg2))
#define SIGN(a,b) ((b) >= 0.0 ? fabs(a) : -fabs(a))
void
nrerror
(
char
error_text
[]);
float
*
vector
(
long
nl
,
long
nh
);
int
*
ivector
(
long
nl
,
long
nh
);
unsigned
char
*
cvector
(
long
nl
,
long
nh
);
unsigned
long
*
lvector
(
long
nl
,
long
nh
);
double
*
dvector
(
long
nl
,
long
nh
);
float
**
matrix
(
long
nrl
,
long
nrh
,
long
ncl
,
long
nch
);
double
**
dmatrix
(
long
nrl
,
long
nrh
,
long
ncl
,
long
nch
);
int
**
imatrix
(
long
nrl
,
long
nrh
,
long
ncl
,
long
nch
);
float
**
submatrix
(
float
**
a
,
long
oldrl
,
long
oldrh
,
long
oldcl
,
long
oldch
,
long
newrl
,
long
newcl
);
float
**
convert_matrix
(
float
*
a
,
long
nrl
,
long
nrh
,
long
ncl
,
long
nch
);
float
***
f3tensor
(
long
nrl
,
long
nrh
,
long
ncl
,
long
nch
,
long
ndl
,
long
ndh
);
void
free_vector
(
float
*
v
,
long
nl
,
long
nh
);
void
free_ivector
(
int
*
v
,
long
nl
,
long
nh
);
void
free_cvector
(
unsigned
char
*
v
,
long
nl
,
long
nh
);
void
free_lvector
(
unsigned
long
*
v
,
long
nl
,
long
nh
);
void
free_dvector
(
double
*
v
,
long
nl
,
long
nh
);
void
free_matrix
(
float
**
m
,
long
nrl
,
long
nrh
,
long
ncl
,
long
nch
);
void
free_dmatrix
(
double
**
m
,
long
nrl
,
long
nrh
,
long
ncl
,
long
nch
);
void
free_imatrix
(
int
**
m
,
long
nrl
,
long
nrh
,
long
ncl
,
long
nch
);
void
free_submatrix
(
float
**
b
,
long
nrl
,
long
nrh
,
long
ncl
,
long
nch
);
void
free_convert_matrix
(
float
**
b
,
long
nrl
,
long
nrh
,
long
ncl
,
long
nch
);
void
free_f3tensor
(
float
***
t
,
long
nrl
,
long
nrh
,
long
ncl
,
long
nch
,
long
ndl
,
long
ndh
);
int
***
i3tensor
(
long
nrl
,
long
nrh
,
long
ncl
,
long
nch
,
long
ndl
,
long
ndh
);
void
free_i3tensor
(
int
***
t
,
long
nrl
,
long
nrh
,
long
ncl
,
long
nch
,
long
ndl
,
long
ndh
);
unsigned
char
***
b3tensor
(
long
nrl
,
long
nrh
,
long
ncl
,
long
nch
,
long
ndl
,
long
ndh
);
void
free_b3tensor
(
unsigned
char
***
t
,
long
nrl
,
long
nrh
,
long
ncl
,
long
nch
,
long
ndl
,
long
ndh
);
double
***
d3tensor
(
long
nrl
,
long
nrh
,
long
ncl
,
long
nch
,
long
ndl
,
long
ndh
);
void
free_d3tensor
(
double
***
t
,
long
nrl
,
long
nrh
,
long
ncl
,
long
nch
,
long
ndl
,
long
ndh
);
unsigned
char
**
cmatrix
(
long
nrl
,
long
nrh
,
long
ncl
,
long
nch
);
void
free_cmatrix
(
unsigned
char
**
m
,
long
nrl
,
long
nrh
,
long
ncl
,
long
nch
);
#endif
/* _NR_UTILS_H_ */
ObservationSim/PSF/PSFInterp_deprecated/PSFInterp_v3/libCentroid/test/ttc/nrutil.o
deleted
100644 → 0
View file @
e82a5dcc
File deleted
ObservationSim/PSF/PSFInterp_deprecated/PSFInterp_v3/test/PSFMatsREE50.py
deleted
100644 → 0
View file @
e82a5dcc
import
sys
from
itertools
import
islice
import
mpi4py.MPI
as
MPI
import
numpy
as
np
import
matplotlib.pyplot
as
plt
import
matplotlib
as
mpl
mpl
.
use
(
'Agg'
)
import
scipy.io
#import xlrd
from
scipy
import
ndimage
sys
.
path
.
append
(
"/public/home/weichengliang/lnData/CSST_new_framwork/csstPSF_20210108"
)
import
PSFConfig
as
myConfig
import
PSFUtil
as
myUtil
NPSF
=
900
##############################
##############################
##############################
def
test_psfREE80
(
psfPath
,
ThisTask
,
NTasks
):
nccd
=
30
npsf
=
NPSF
npsfPerTasks
=
int
(
npsf
/
NTasks
)
iStart
=
0
+
npsfPerTasks
*
ThisTask
iEnd
=
npsfPerTasks
+
npsfPerTasks
*
ThisTask
if
ThisTask
==
NTasks
:
iEnd
=
npsf
CENPIXUSED
=
True
wvREE80
=
np
.
zeros
([
4
,
nccd
])
#psf in different waves-4
ttREE80
=
np
.
zeros
(
nccd
)
#stacked psf
for
iccd
in
range
(
1
,
nccd
+
1
):
psf_wvREE80
=
np
.
zeros
([
4
,
npsf
])
psf_ttREE80
=
np
.
zeros
(
npsf
)
#for ipsf in range(1, npsf+1):
for
ipsf
in
range
(
iStart
+
1
,
iEnd
+
1
):
psf4iwave
=
[]
for
iwave
in
range
(
1
,
5
):
if
ThisTask
==
0
:
print
(
'iccd-ipsf-iwave: {:} {:} {:}'
.
format
(
iccd
,
ipsf
,
iwave
),
end
=
'
\r
'
)
psfInfo
=
myConfig
.
LoadPSF
(
iccd
,
iwave
,
ipsf
,
psfPath
,
InputMaxPixelPos
=
True
,
PSFCentroidWgt
=
False
)
cenPix
=
None
if
CENPIXUSED
:
psfInfoX
=
myConfig
.
LoadPSF
(
iccd
,
iwave
,
ipsf
,
psfPath
,
InputMaxPixelPos
=
True
,
PSFCentroidWgt
=
True
)
deltX
=
psfInfoX
[
'centroid_x'
]
#in mm
deltY
=
psfInfoX
[
'centroid_y'
]
#in mm
pixsize
=
2.5
*
1e-3
#mm, will use binningPSF
cenPix_X
=
512
/
2
+
deltX
/
pixsize
cenPix_Y
=
512
/
2
+
deltY
/
pixsize
cenPix
=
[
cenPix_X
,
cenPix_Y
]
ipsfMat
=
psfInfo
[
'psfMat'
]
cenX
,
cenY
,
sz
,
e1
,
e2
,
REE80
=
myUtil
.
psfSizeCalculator
(
ipsfMat
,
CalcPSFcenter
=
True
,
SigRange
=
True
,
TailorScheme
=
2
,
cenPix
=
cenPix
)
psf_wvREE80
[
iwave
-
1
,
ipsf
-
1
]
=
REE80
psf4iwave
.
append
(
ipsfMat
)
tt
=
myUtil
.
psfStack
(
psf4iwave
[
0
],
psf4iwave
[
1
],
psf4iwave
[
2
],
psf4iwave
[
3
])
cenX
,
cenY
,
sz
,
e1
,
e2
,
REE80
=
myUtil
.
psfSizeCalculator
(
tt
,
CalcPSFcenter
=
True
,
SigRange
=
True
,
TailorScheme
=
2
)
psf_ttREE80
[
ipsf
-
1
]
=
REE80
if
iccd
==
1
and
iwave
==
1
:
print
(
'iccd-{:}:'
.
format
(
iccd
),
flush
=
True
)
print
(
'psfSet has been loaded.'
,
flush
=
True
)
#print('Usage: psfSet[i][keys]', flush=True)
#print('psfSet.keys:', psfSet[0].keys(), flush=True)
else
:
print
(
'iccd-{:}, iwave-{:}'
.
format
(
iccd
,
iwave
),
end
=
'
\r
'
,
flush
=
True
)
comm
.
barrier
()
psf_ttREE80
=
comm
.
allreduce
(
psf_ttREE80
,
op
=
MPI
.
SUM
)
psf_wvREE80
[
0
,
:]
=
comm
.
allreduce
(
psf_wvREE80
[
0
,
:],
op
=
MPI
.
SUM
)
psf_wvREE80
[
1
,
:]
=
comm
.
allreduce
(
psf_wvREE80
[
1
,
:],
op
=
MPI
.
SUM
)
psf_wvREE80
[
2
,
:]
=
comm
.
allreduce
(
psf_wvREE80
[
2
,
:],
op
=
MPI
.
SUM
)
psf_wvREE80
[
3
,
:]
=
comm
.
allreduce
(
psf_wvREE80
[
3
,
:],
op
=
MPI
.
SUM
)
ttREE80
[
iccd
-
1
]
=
np
.
mean
(
psf_ttREE80
)
wvREE80
[
0
,
iccd
-
1
]
=
np
.
mean
(
psf_wvREE80
[
0
,
:])
wvREE80
[
1
,
iccd
-
1
]
=
np
.
mean
(
psf_wvREE80
[
1
,
:])
wvREE80
[
2
,
iccd
-
1
]
=
np
.
mean
(
psf_wvREE80
[
2
,
:])
wvREE80
[
3
,
iccd
-
1
]
=
np
.
mean
(
psf_wvREE80
[
3
,
:])
##############################
comm
.
barrier
()
#ttREE80 = comm.allreduce(ttREE80, op=MPI.SUM)
#wvREE80 = comm.allreduce(wvREE80, op=MPI.SUM)
#plot-test
if
ThisTask
==
0
:
REE80W1
=
wvREE80
[
0
,
:]
REE80W2
=
wvREE80
[
1
,
:]
REE80W3
=
wvREE80
[
2
,
:]
REE80W4
=
wvREE80
[
3
,
:]
np
.
savetxt
(
'REE50_w1.txt'
,
REE80W1
)
np
.
savetxt
(
'REE50_w2.txt'
,
REE80W2
)
np
.
savetxt
(
'REE50_w3.txt'
,
REE80W3
)
np
.
savetxt
(
'REE50_w4.txt'
,
REE80W4
)
np
.
savetxt
(
'REE50_tt.txt'
,
ttREE80
)
ccdFilterLayout
=
[
'GV'
,
'GV'
,
'GU'
,
'GU'
,
'GI'
,
'y'
,
'i'
,
'g'
,
'r'
,
'GI'
,
'z'
,
'NUV'
,
'NUV'
,
'u'
,
'y'
,
'y'
,
'u'
,
'NUV'
,
'NUV'
,
'z'
,
'GI'
,
'r'
,
'g'
,
'i'
,
'y'
,
'GI'
,
'GU'
,
'GU'
,
'GV'
,
'GV'
]
fig
=
plt
.
figure
(
figsize
=
(
18
,
10
))
for
iccd
in
range
(
0
,
30
):
plt
.
arrow
(
iccd
+
1
,
REE80W1
[
iccd
],
0
,
REE80W4
[
iccd
]
-
REE80W1
[
iccd
],
width
=
0.05
,
head_length
=
0.002
,
ec
=
'None'
,
color
=
'k'
)
plt
.
plot
([
iccd
+
1
],
[
REE80W1
[
iccd
]],
'o'
,
c
=
'k'
)
plt
.
plot
([
iccd
+
1.1
],
[
REE80W2
[
iccd
]],
'o'
,
c
=
'b'
)
plt
.
plot
([
iccd
+
1.2
],
[
REE80W3
[
iccd
]],
'o'
,
c
=
'g'
)
plt
.
plot
([
iccd
+
1.3
],
[
REE80W4
[
iccd
]],
'o'
,
c
=
'r'
)
plt
.
plot
([
iccd
+
1
,
iccd
+
1.1
,
iccd
+
1.2
,
iccd
+
1.3
],
[
REE80W1
[
iccd
],
REE80W2
[
iccd
],
REE80W3
[
iccd
],
REE80W4
[
iccd
]],
'--'
,
c
=
'k'
)
if
REE80W1
[
iccd
]
<
REE80W4
[
iccd
]:
plt
.
text
(
iccd
+
1
-
0.2
,
REE80W1
[
iccd
]
-
0.005
,
ccdFilterLayout
[
iccd
],
fontsize
=
15
)
if
REE80W1
[
iccd
]
>
REE80W4
[
iccd
]:
plt
.
text
(
iccd
+
1
-
0.2
,
REE80W1
[
iccd
]
+
0.003
,
ccdFilterLayout
[
iccd
],
fontsize
=
15
)
plt
.
fill_betweenx
([
0.0
,
0.080
],
[
0.5
,
0.5
],
[
5.5
,
5.5
],
color
=
'gray'
,
alpha
=
0.5
)
plt
.
fill_betweenx
([
0.0
,
0.080
],
[
25.5
,
25.5
],
[
30.5
,
30.5
],
color
=
'gray'
,
alpha
=
0.5
)
plt
.
fill_betweenx
([
0.0
,
0.080
],
[
9.5
,
9.5
],
[
10.5
,
10.5
],
color
=
'gray'
,
alpha
=
0.5
)
plt
.
fill_betweenx
([
0.0
,
0.080
],
[
20.5
,
20.5
],
[
21.5
,
21.5
],
color
=
'gray'
,
alpha
=
0.5
)
plt
.
plot
([
5.5
,
5.5
],
[
0.0
,
0.5
],
':'
)
plt
.
plot
([
10.5
,
10.5
],
[
0.0
,
0.5
],
'k:'
)
plt
.
plot
([
15.5
,
15.5
],
[
0.0
,
0.5
],
'k:'
)
plt
.
plot
([
20.5
,
20.5
],
[
0.0
,
0.5
],
'k:'
)
plt
.
plot
([
25.5
,
25.5
],
[
0.0
,
0.5
],
'k:'
)
plt
.
ylim
(
0.0
,
0.080
)
plt
.
xlim
(
0.5
,
30.5
)
#plt.plot(np.linspace(1, 30, 30), REE80W1)
#plt.plot(np.linspace(1, 30, 30), REE80W2)
#plt.plot(np.linspace(1, 30, 30), REE80W3)
#plt.plot(np.linspace(1, 30, 30), REE80W4)
plt
.
xticks
([])
plt
.
yticks
(
fontsize
=
15
)
plt
.
text
(
1.5
,
-
0.004
,
'CCD1 - CCD5'
,
fontsize
=
15
)
plt
.
text
(
6.5
,
-
0.004
,
'CCD6 - CCD10'
,
fontsize
=
15
)
plt
.
text
(
11.5
,
-
0.004
,
'CCD11 - CCD15'
,
fontsize
=
15
)
plt
.
text
(
16.5
,
-
0.004
,
'CCD16 - CCD20'
,
fontsize
=
15
)
plt
.
text
(
21.5
,
-
0.004
,
'CCD21 - CCD25'
,
fontsize
=
15
)
plt
.
text
(
26.5
,
-
0.004
,
'CCD26 - CCD30'
,
fontsize
=
15
)
plt
.
plot
([
27
],
[
0.183
],
'ko'
)
plt
.
text
(
27.5
,
0.182
,
'wave-1'
,
fontsize
=
15
)
plt
.
plot
([
27
],
[
0.180
],
'ro'
)
plt
.
text
(
27.5
,
0.179
,
'wave-2'
,
fontsize
=
15
)
plt
.
plot
([
27
],
[
0.177
],
'go'
)
plt
.
text
(
27.5
,
0.176
,
'wave-3'
,
fontsize
=
15
)
plt
.
plot
([
27
],
[
0.174
],
'bo'
)
plt
.
text
(
27.5
,
0.173
,
'wave-4'
,
fontsize
=
15
)
#overplot stackedPSF
xccd
=
np
.
linspace
(
1
,
30
,
30
)
plt
.
plot
(
xccd
,
ttREE80
,
'm*'
,
ms
=
20
,
markerfacecolor
=
'None'
,
markeredgewidth
=
2
)
plt
.
plot
([
27
],
[
0.168
],
'm*'
,
ms
=
20
,
markerfacecolor
=
'None'
,
markeredgewidth
=
2
)
plt
.
text
(
27.5
,
0.1665
,
'stacked'
,
fontsize
=
20
)
plt
.
savefig
(
'figs/psfStackedREE50.pdf'
)
##############################
##############################
##############################
if
__name__
==
'__main__'
:
comm
=
MPI
.
COMM_WORLD
ThisTask
=
comm
.
Get_rank
()
NTasks
=
comm
.
Get_size
()
psfPath
=
'/data/simudata/CSSOSDataProductsSims/data/csstPSFdata/CSSOS_psf_20210108/CSST_psf_ciomp_2p5um_cycle3'
test_psfREE80
(
psfPath
,
ThisTask
,
NTasks
)
ObservationSim/PSF/PSFInterp_deprecated/PSFInterp_v3/test/PSFMatsREE80.py
deleted
100644 → 0
View file @
e82a5dcc
import
sys
from
itertools
import
islice
import
mpi4py.MPI
as
MPI
import
numpy
as
np
import
matplotlib.pyplot
as
plt
import
matplotlib
as
mpl
mpl
.
use
(
'Agg'
)
import
scipy.io
#import xlrd
from
scipy
import
ndimage
sys
.
path
.
append
(
"/public/home/weichengliang/lnData/CSST_new_framwork/csstPSF_20210108"
)
import
PSFConfig
as
myConfig
import
PSFUtil
as
myUtil
NPSF
=
900
##############################
##############################
##############################
def
test_psfREE80
(
psfPath
,
ThisTask
,
NTasks
):
nccd
=
30
npsf
=
NPSF
npsfPerTasks
=
int
(
npsf
/
NTasks
)
iStart
=
0
+
npsfPerTasks
*
ThisTask
iEnd
=
npsfPerTasks
+
npsfPerTasks
*
ThisTask
if
ThisTask
==
NTasks
:
iEnd
=
npsf
CENPIXUSED
=
True
wvREE80
=
np
.
zeros
([
4
,
nccd
])
#psf in different waves-4
ttREE80
=
np
.
zeros
(
nccd
)
#stacked psf
for
iccd
in
range
(
1
,
nccd
+
1
):
psf_wvREE80
=
np
.
zeros
([
4
,
npsf
])
psf_ttREE80
=
np
.
zeros
(
npsf
)
#for ipsf in range(1, npsf+1):
for
ipsf
in
range
(
iStart
+
1
,
iEnd
+
1
):
psf4iwave
=
[]
for
iwave
in
range
(
1
,
5
):
if
ThisTask
==
0
:
print
(
'iccd-ipsf-iwave: {:} {:} {:}'
.
format
(
iccd
,
ipsf
,
iwave
),
end
=
'
\r
'
)
psfInfo
=
myConfig
.
LoadPSF
(
iccd
,
iwave
,
ipsf
,
psfPath
,
InputMaxPixelPos
=
True
,
PSFCentroidWgt
=
False
)
cenPix
=
None
if
CENPIXUSED
:
psfInfoX
=
myConfig
.
LoadPSF
(
iccd
,
iwave
,
ipsf
,
psfPath
,
InputMaxPixelPos
=
True
,
PSFCentroidWgt
=
True
)
deltX
=
psfInfoX
[
'centroid_x'
]
#in mm
deltY
=
psfInfoX
[
'centroid_y'
]
#in mm
pixsize
=
2.5
*
1e-3
#mm, will use binningPSF
cenPix_X
=
512
/
2
+
deltX
/
pixsize
cenPix_Y
=
512
/
2
+
deltY
/
pixsize
cenPix
=
[
cenPix_X
,
cenPix_Y
]
ipsfMat
=
psfInfo
[
'psfMat'
]
cenX
,
cenY
,
sz
,
e1
,
e2
,
REE80
=
myUtil
.
psfSizeCalculator
(
ipsfMat
,
CalcPSFcenter
=
True
,
SigRange
=
True
,
TailorScheme
=
2
,
cenPix
=
cenPix
)
psf_wvREE80
[
iwave
-
1
,
ipsf
-
1
]
=
REE80
psf4iwave
.
append
(
ipsfMat
)
tt
=
myUtil
.
psfStack
(
psf4iwave
[
0
],
psf4iwave
[
1
],
psf4iwave
[
2
],
psf4iwave
[
3
])
cenX
,
cenY
,
sz
,
e1
,
e2
,
REE80
=
myUtil
.
psfSizeCalculator
(
tt
,
CalcPSFcenter
=
True
,
SigRange
=
True
,
TailorScheme
=
2
)
psf_ttREE80
[
ipsf
-
1
]
=
REE80
if
iccd
==
1
and
iwave
==
1
:
print
(
'iccd-{:}:'
.
format
(
iccd
),
flush
=
True
)
print
(
'psfSet has been loaded.'
,
flush
=
True
)
#print('Usage: psfSet[i][keys]', flush=True)
#print('psfSet.keys:', psfSet[0].keys(), flush=True)
else
:
print
(
'iccd-{:}, iwave-{:}'
.
format
(
iccd
,
iwave
),
end
=
'
\r
'
,
flush
=
True
)
comm
.
barrier
()
psf_ttREE80
=
comm
.
allreduce
(
psf_ttREE80
,
op
=
MPI
.
SUM
)
psf_wvREE80
[
0
,
:]
=
comm
.
allreduce
(
psf_wvREE80
[
0
,
:],
op
=
MPI
.
SUM
)
psf_wvREE80
[
1
,
:]
=
comm
.
allreduce
(
psf_wvREE80
[
1
,
:],
op
=
MPI
.
SUM
)
psf_wvREE80
[
2
,
:]
=
comm
.
allreduce
(
psf_wvREE80
[
2
,
:],
op
=
MPI
.
SUM
)
psf_wvREE80
[
3
,
:]
=
comm
.
allreduce
(
psf_wvREE80
[
3
,
:],
op
=
MPI
.
SUM
)
ttREE80
[
iccd
-
1
]
=
np
.
mean
(
psf_ttREE80
)
wvREE80
[
0
,
iccd
-
1
]
=
np
.
mean
(
psf_wvREE80
[
0
,
:])
wvREE80
[
1
,
iccd
-
1
]
=
np
.
mean
(
psf_wvREE80
[
1
,
:])
wvREE80
[
2
,
iccd
-
1
]
=
np
.
mean
(
psf_wvREE80
[
2
,
:])
wvREE80
[
3
,
iccd
-
1
]
=
np
.
mean
(
psf_wvREE80
[
3
,
:])
##############################
comm
.
barrier
()
#ttREE80 = comm.allreduce(ttREE80, op=MPI.SUM)
#wvREE80 = comm.allreduce(wvREE80, op=MPI.SUM)
#plot-test
if
ThisTask
==
0
:
REE80W1
=
wvREE80
[
0
,
:]
REE80W2
=
wvREE80
[
1
,
:]
REE80W3
=
wvREE80
[
2
,
:]
REE80W4
=
wvREE80
[
3
,
:]
np
.
savetxt
(
'REE80_w1.txt'
,
REE80W1
)
np
.
savetxt
(
'REE80_w2.txt'
,
REE80W2
)
np
.
savetxt
(
'REE80_w3.txt'
,
REE80W3
)
np
.
savetxt
(
'REE80_w4.txt'
,
REE80W4
)
np
.
savetxt
(
'REE80_tt.txt'
,
ttREE80
)
ccdFilterLayout
=
[
'GV'
,
'GV'
,
'GU'
,
'GU'
,
'GI'
,
'y'
,
'i'
,
'g'
,
'r'
,
'GI'
,
'z'
,
'NUV'
,
'NUV'
,
'u'
,
'y'
,
'y'
,
'u'
,
'NUV'
,
'NUV'
,
'z'
,
'GI'
,
'r'
,
'g'
,
'i'
,
'y'
,
'GI'
,
'GU'
,
'GU'
,
'GV'
,
'GV'
]
fig
=
plt
.
figure
(
figsize
=
(
18
,
10
))
for
iccd
in
range
(
0
,
30
):
plt
.
arrow
(
iccd
+
1
,
REE80W1
[
iccd
],
0
,
REE80W4
[
iccd
]
-
REE80W1
[
iccd
],
width
=
0.05
,
head_length
=
0.002
,
ec
=
'None'
,
color
=
'k'
)
plt
.
plot
([
iccd
+
1
],
[
REE80W1
[
iccd
]],
'o'
,
c
=
'k'
)
plt
.
plot
([
iccd
+
1.1
],
[
REE80W2
[
iccd
]],
'o'
,
c
=
'b'
)
plt
.
plot
([
iccd
+
1.2
],
[
REE80W3
[
iccd
]],
'o'
,
c
=
'g'
)
plt
.
plot
([
iccd
+
1.3
],
[
REE80W4
[
iccd
]],
'o'
,
c
=
'r'
)
plt
.
plot
([
iccd
+
1
,
iccd
+
1.1
,
iccd
+
1.2
,
iccd
+
1.3
],
[
REE80W1
[
iccd
],
REE80W2
[
iccd
],
REE80W3
[
iccd
],
REE80W4
[
iccd
]],
'--'
,
c
=
'k'
)
if
REE80W1
[
iccd
]
<
REE80W4
[
iccd
]:
plt
.
text
(
iccd
+
1
-
0.2
,
REE80W1
[
iccd
]
-
0.005
,
ccdFilterLayout
[
iccd
],
fontsize
=
15
)
if
REE80W1
[
iccd
]
>
REE80W4
[
iccd
]:
plt
.
text
(
iccd
+
1
-
0.2
,
REE80W1
[
iccd
]
+
0.003
,
ccdFilterLayout
[
iccd
],
fontsize
=
15
)
plt
.
fill_betweenx
([
0.078
,
0.145
],
[
0.5
,
0.5
],
[
5.5
,
5.5
],
color
=
'gray'
,
alpha
=
0.5
)
plt
.
fill_betweenx
([
0.078
,
0.145
],
[
25.5
,
25.5
],
[
30.5
,
30.5
],
color
=
'gray'
,
alpha
=
0.5
)
plt
.
fill_betweenx
([
0.078
,
0.145
],
[
9.5
,
9.5
],
[
10.5
,
10.5
],
color
=
'gray'
,
alpha
=
0.5
)
plt
.
fill_betweenx
([
0.078
,
0.145
],
[
20.5
,
20.5
],
[
21.5
,
21.5
],
color
=
'gray'
,
alpha
=
0.5
)
plt
.
plot
([
5.5
,
5.5
],
[
0.078
,
0.5
],
':'
)
plt
.
plot
([
10.5
,
10.5
],
[
0.078
,
0.5
],
'k:'
)
plt
.
plot
([
15.5
,
15.5
],
[
0.078
,
0.5
],
'k:'
)
plt
.
plot
([
20.5
,
20.5
],
[
0.078
,
0.5
],
'k:'
)
plt
.
plot
([
25.5
,
25.5
],
[
0.078
,
0.5
],
'k:'
)
plt
.
ylim
(
0.078
,
0.145
)
plt
.
xlim
(
0.5
,
30.5
)
#plt.plot(np.linspace(1, 30, 30), REE80W1)
#plt.plot(np.linspace(1, 30, 30), REE80W2)
#plt.plot(np.linspace(1, 30, 30), REE80W3)
#plt.plot(np.linspace(1, 30, 30), REE80W4)
plt
.
xticks
([])
plt
.
yticks
(
fontsize
=
15
)
plt
.
text
(
1.5
,
0.074
,
'CCD1 - CCD5'
,
fontsize
=
15
)
plt
.
text
(
6.5
,
0.074
,
'CCD6 - CCD10'
,
fontsize
=
15
)
plt
.
text
(
11.5
,
0.074
,
'CCD11 - CCD15'
,
fontsize
=
15
)
plt
.
text
(
16.5
,
0.074
,
'CCD16 - CCD20'
,
fontsize
=
15
)
plt
.
text
(
21.5
,
0.074
,
'CCD21 - CCD25'
,
fontsize
=
15
)
plt
.
text
(
26.5
,
0.074
,
'CCD26 - CCD30'
,
fontsize
=
15
)
plt
.
plot
([
27
],
[
0.183
],
'ko'
)
plt
.
text
(
27.5
,
0.182
,
'wave-1'
,
fontsize
=
15
)
plt
.
plot
([
27
],
[
0.180
],
'ro'
)
plt
.
text
(
27.5
,
0.179
,
'wave-2'
,
fontsize
=
15
)
plt
.
plot
([
27
],
[
0.177
],
'go'
)
plt
.
text
(
27.5
,
0.176
,
'wave-3'
,
fontsize
=
15
)
plt
.
plot
([
27
],
[
0.174
],
'bo'
)
plt
.
text
(
27.5
,
0.173
,
'wave-4'
,
fontsize
=
15
)
#overplot stackedPSF
xccd
=
np
.
linspace
(
1
,
30
,
30
)
plt
.
plot
(
xccd
,
ttREE80
,
'm*'
,
ms
=
20
,
markerfacecolor
=
'None'
,
markeredgewidth
=
2
)
plt
.
plot
([
27
],
[
0.168
],
'm*'
,
ms
=
20
,
markerfacecolor
=
'None'
,
markeredgewidth
=
2
)
plt
.
text
(
27.5
,
0.1665
,
'stacked'
,
fontsize
=
20
)
plt
.
savefig
(
'figs/psfStackedREE80.pdf'
)
##############################
##############################
##############################
if
__name__
==
'__main__'
:
comm
=
MPI
.
COMM_WORLD
ThisTask
=
comm
.
Get_rank
()
NTasks
=
comm
.
Get_size
()
psfPath
=
'/data/simudata/CSSOSDataProductsSims/data/csstPSFdata/CSSOS_psf_20210108/CSST_psf_ciomp_2p5um_cycle3'
test_psfREE80
(
psfPath
,
ThisTask
,
NTasks
)
ObservationSim/PSF/PSFInterp_deprecated/PSFInterp_v3/test/REE50_tt.txt
deleted
100644 → 0
View file @
e82a5dcc
4.192623714192045964e-02
3.963687271293666464e-02
3.717499316773480861e-02
3.547479454427957674e-02
4.778017809407578836e-02
5.589890449411339529e-02
4.521611930595503814e-02
3.177118275728490343e-02
3.778880075862010163e-02
4.599476550188329183e-02
5.217386429508526907e-02
2.741515900111860665e-02
2.751147872664862215e-02
2.593041263934638824e-02
5.550626295722193432e-02
5.590932749625709269e-02
2.809689362429910325e-02
3.039854779218633882e-02
2.730709160574608385e-02
5.228841161148415490e-02
4.721563391801383847e-02
3.853965697603093515e-02
3.288221512817673942e-02
4.526867814362049020e-02
5.549804478055900964e-02
4.864927207016282729e-02
3.085322873873843144e-02
2.899995189367069251e-02
3.424865529768996580e-02
3.627621793291634783e-02
ObservationSim/PSF/PSFInterp_deprecated/PSFInterp_v3/test/REE50_w1.txt
deleted
100644 → 0
View file @
e82a5dcc
4.097674760967492946e-02
3.779118013257781739e-02
3.854422118514776174e-02
3.604302387477623104e-02
4.097642137358586262e-02
5.422652423381805337e-02
4.271208368655707993e-02
2.862325804928938719e-02
3.484749293989605062e-02
3.973479835109577918e-02
4.960958740777439424e-02
3.018300496041774819e-02
2.993626710027456200e-02
2.408132943635185597e-02
5.361761418067746698e-02
5.386454740332232566e-02
2.540567224224408310e-02
3.506318612438109189e-02
2.746613206341862526e-02
4.962374180969264525e-02
4.058798617786830987e-02
3.485660712545116807e-02
2.843817778345611447e-02
4.183941396160258119e-02
5.364700755725304582e-02
4.234843995836046204e-02
2.858904785580105093e-02
2.490848023651374629e-02
2.915432476335101664e-02
3.297398504283693271e-02
ObservationSim/PSF/PSFInterp_deprecated/PSFInterp_v3/test/REE50_w2.txt
deleted
100644 → 0
View file @
e82a5dcc
4.107249135358465725e-02
3.805210295857654884e-02
3.634435170433587825e-02
3.354171364878615058e-02
4.468210332095622767e-02
5.541175949904653814e-02
4.455799478623602428e-02
3.044745398064454406e-02
3.644618252085314591e-02
4.342479083273145801e-02
5.033345324711667457e-02
2.592496615524093190e-02
2.602256835955712652e-02
2.419794542507992807e-02
5.424795392072863376e-02
5.454469751566648483e-02
2.579547411865658335e-02
2.818417717392246100e-02
2.520566607515017238e-02
5.040185143550236779e-02
4.456572487950324901e-02
3.643000928892029672e-02
3.032562015371190189e-02
4.340189202792114898e-02
5.436048106186919943e-02
4.582877747714519251e-02
2.675305432329575309e-02
2.434911420775784374e-02
3.196721636172798059e-02
3.480462196800444136e-02
ObservationSim/PSF/PSFInterp_deprecated/PSFInterp_v3/test/REE50_w3.txt
deleted
100644 → 0
View file @
e82a5dcc
4.197429738938808497e-02
3.948407693869537827e-02
3.499825730091995352e-02
3.239083757003148600e-02
4.886476772940821084e-02
5.656497548437780520e-02
4.575395000891552960e-02
3.229455917659732750e-02
3.790552155839072013e-02
4.727557896325985248e-02
5.229303643521335254e-02
2.517534267157316152e-02
2.533119356673624659e-02
2.559196881535980364e-02
5.552474377469884120e-02
5.606734792805380396e-02
2.605791410017344739e-02
2.653578668625818440e-02
2.488602056892381606e-02
5.237050928589370713e-02
4.864922908859120598e-02
3.793197987808121646e-02
3.199448413319058021e-02
4.567710663295454498e-02
5.582077370749579520e-02
4.991082506461275853e-02
2.695475944835278720e-02
2.495457686276899428e-02
3.456866744284828319e-02
3.673887742269370260e-02
ObservationSim/PSF/PSFInterp_deprecated/PSFInterp_v3/test/REE50_w4.txt
deleted
100644 → 0
View file @
e82a5dcc
4.374798665444055989e-02
4.172032311144802108e-02
3.449644779165585845e-02
3.227750844632586158e-02
5.347426552325486998e-02
5.790241428133514195e-02
4.830917320731613340e-02
3.390226654708385773e-02
4.048860900104046118e-02
5.229343653966982836e-02
5.546085886657237812e-02
2.504612732885612425e-02
2.524040076881647193e-02
2.594595272300971936e-02
5.741710940168963384e-02
5.757535632285806781e-02
2.622993558438287826e-02
2.619012944814231789e-02
2.490559814497828386e-02
5.549698290725549321e-02
5.351221157444847887e-02
4.031978600141074981e-02
3.390058320636550604e-02
4.747320735620128018e-02
5.750102566348181538e-02
5.429367550131347642e-02
2.792105174933870795e-02
2.611095883366134490e-02
3.699269230580991968e-02
3.936049576848745651e-02
ObservationSim/PSF/PSFInterp_deprecated/PSFInterp_v3/test/REE80_tt.txt
deleted
100644 → 0
View file @
e82a5dcc
1.003694497959481402e-01
1.015607885271310740e-01
1.052028546896245781e-01
1.004858156541983266e-01
1.102485864443911445e-01
1.098996570540799050e-01
1.121134948564900258e-01
9.598437185088792845e-02
1.028637351757950291e-01
1.037921066664987124e-01
9.960766722758611358e-02
1.160482782291041431e-01
1.188710469918118628e-01
1.006841716004742565e-01
1.041830715454287043e-01
1.071446195079220620e-01
9.699936704503164808e-02
1.145864692330360451e-01
1.166164491325616809e-01
1.017340895533561662e-01
1.104655211253298686e-01
9.992789358728461357e-02
9.721765814556015961e-02
1.133250202735265055e-01
1.047951816519101520e-01
1.146304993165863928e-01
1.023961062481005962e-01
1.056877841469314322e-01
9.356085345149040000e-02
9.884073599345154226e-02
ObservationSim/PSF/PSFInterp_deprecated/PSFInterp_v3/test/REE80_w1.txt
deleted
100644 → 0
View file @
e82a5dcc
9.538728237979941793e-02
9.997831919127039835e-02
1.152796367224719759e-01
1.113885820325877934e-01
1.081522457963890460e-01
1.100598958465788119e-01
1.104022086991204160e-01
9.841721517344316494e-02
1.007562586416800854e-01
1.057270593278937937e-01
9.665070548653602323e-02
1.228988209532366899e-01
1.253969780935181577e-01
1.108463252832492252e-01
1.009047752370436923e-01
1.043932629625002606e-01
1.043888743470112457e-01
1.228035690221521564e-01
1.229982891347673191e-01
1.014424936307801173e-01
1.078363279584381301e-01
9.916063456071746995e-02
1.001503288414743176e-01
1.132735080354743545e-01
1.019744017720222440e-01
1.093158932692474827e-01
1.145170436302820893e-01
1.144741236832406833e-01
8.961314371062649442e-02
9.682588559885819957e-02
ObservationSim/PSF/PSFInterp_deprecated/PSFInterp_v3/test/REE80_w2.txt
deleted
100644 → 0
View file @
e82a5dcc
9.643768350283304924e-02
9.798234308759370959e-02
1.079521808524926546e-01
1.025021615210506692e-01
1.149604891157812586e-01
1.094704144779178878e-01
1.128202253331740679e-01
9.495004550450378278e-02
1.031157808171378198e-01
1.102209193590614478e-01
9.693712000217702407e-02
1.157439781311485477e-01
1.188326157795058374e-01
1.020256235202153527e-01
1.019820975181129213e-01
1.050299054880936972e-01
9.922386229038238081e-02
1.136058331943220617e-01
1.159628341678116126e-01
9.912074926826688892e-02
1.137588790224658142e-01
1.020030610097779206e-01
9.673012357619073520e-02
1.160692154202196402e-01
1.028599771526124695e-01
1.158566920790407434e-01
1.039760234289699159e-01
1.111334640532732065e-01
9.186342578795221592e-02
9.592016302877001688e-02
Prev
1
2
3
4
5
6
7
8
…
20
Next
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment