foscat 3.0.33__tar.gz → 3.0.35__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {foscat-3.0.33 → foscat-3.0.35}/PKG-INFO +1 -1
- {foscat-3.0.33 → foscat-3.0.35}/setup.py +1 -1
- {foscat-3.0.33 → foscat-3.0.35}/src/foscat/FoCUS.py +35 -24
- {foscat-3.0.33 → foscat-3.0.35}/src/foscat/GCNN.py +7 -3
- {foscat-3.0.33 → foscat-3.0.35}/src/foscat.egg-info/PKG-INFO +1 -1
- {foscat-3.0.33 → foscat-3.0.35}/README.md +0 -0
- {foscat-3.0.33 → foscat-3.0.35}/setup.cfg +0 -0
- {foscat-3.0.33 → foscat-3.0.35}/src/foscat/CNN.py +0 -0
- {foscat-3.0.33 → foscat-3.0.35}/src/foscat/CircSpline.py +0 -0
- {foscat-3.0.33 → foscat-3.0.35}/src/foscat/GetGPUinfo.py +0 -0
- {foscat-3.0.33 → foscat-3.0.35}/src/foscat/Softmax.py +0 -0
- {foscat-3.0.33 → foscat-3.0.35}/src/foscat/Spline1D.py +0 -0
- {foscat-3.0.33 → foscat-3.0.35}/src/foscat/Synthesis.py +0 -0
- {foscat-3.0.33 → foscat-3.0.35}/src/foscat/__init__.py +0 -0
- {foscat-3.0.33 → foscat-3.0.35}/src/foscat/backend.py +0 -0
- {foscat-3.0.33 → foscat-3.0.35}/src/foscat/backend_tens.py +0 -0
- {foscat-3.0.33 → foscat-3.0.35}/src/foscat/loss_backend_tens.py +0 -0
- {foscat-3.0.33 → foscat-3.0.35}/src/foscat/loss_backend_torch.py +0 -0
- {foscat-3.0.33 → foscat-3.0.35}/src/foscat/scat.py +0 -0
- {foscat-3.0.33 → foscat-3.0.35}/src/foscat/scat1D.py +0 -0
- {foscat-3.0.33 → foscat-3.0.35}/src/foscat/scat2D.py +0 -0
- {foscat-3.0.33 → foscat-3.0.35}/src/foscat/scat_cov.py +0 -0
- {foscat-3.0.33 → foscat-3.0.35}/src/foscat/scat_cov1D.py +0 -0
- {foscat-3.0.33 → foscat-3.0.35}/src/foscat/scat_cov2D.py +0 -0
- {foscat-3.0.33 → foscat-3.0.35}/src/foscat/scat_cov_map.py +0 -0
- {foscat-3.0.33 → foscat-3.0.35}/src/foscat/scat_cov_map2D.py +0 -0
- {foscat-3.0.33 → foscat-3.0.35}/src/foscat.egg-info/SOURCES.txt +0 -0
- {foscat-3.0.33 → foscat-3.0.35}/src/foscat.egg-info/dependency_links.txt +0 -0
- {foscat-3.0.33 → foscat-3.0.35}/src/foscat.egg-info/requires.txt +0 -0
- {foscat-3.0.33 → foscat-3.0.35}/src/foscat.egg-info/top_level.txt +0 -0
|
@@ -3,7 +3,7 @@ from setuptools import setup, find_packages
|
|
|
3
3
|
|
|
4
4
|
setup(
|
|
5
5
|
name='foscat',
|
|
6
|
-
version='3.0.
|
|
6
|
+
version='3.0.35',
|
|
7
7
|
description='Generate synthetic Healpix or 2D data using Cross Scattering Transform' ,
|
|
8
8
|
long_description='Utilize the Cross Scattering Transform (described in https://arxiv.org/abs/2207.12527) to synthesize Healpix or 2D data that is suitable for component separation purposes, such as denoising. \n A demo package for this process can be found at https://github.com/jmdelouis/FOSCAT_DEMO. \n Complete doc can be found at https://foscat-documentation.readthedocs.io/en/latest/index.html. \n\n List of developers : J.-M. Delouis, T. Foulquier, L. Mousset, T. Odaka, F. Paul, E. Allys ' ,
|
|
9
9
|
license='MIT',
|
|
@@ -32,7 +32,7 @@ class FoCUS:
|
|
|
32
32
|
mpi_size=1,
|
|
33
33
|
mpi_rank=0):
|
|
34
34
|
|
|
35
|
-
self.__version__ = '3.0.
|
|
35
|
+
self.__version__ = '3.0.35'
|
|
36
36
|
# P00 coeff for normalization for scat_cov
|
|
37
37
|
self.TMPFILE_VERSION=TMPFILE_VERSION
|
|
38
38
|
self.P1_dic = None
|
|
@@ -328,33 +328,44 @@ class FoCUS:
|
|
|
328
328
|
x,y,z=hp.pix2vec(nside,np.arange(12*nside*nside),nest=True)
|
|
329
329
|
|
|
330
330
|
idx=np.argsort((x-1.0)**2+y**2+z**2)[0:kernel]
|
|
331
|
+
x0,y0,z0=hp.pix2vec(nside,idx[0],nest=True)
|
|
332
|
+
t0,p0=hp.pix2ang(nside,idx[0],nest=True)
|
|
333
|
+
|
|
334
|
+
idx=np.argsort((x-x0)**2+(y-y0)**2+(z-z0)**2)[0:kernel]
|
|
331
335
|
im=np.ones([12*nside**2])*-1
|
|
332
336
|
im[idx]=np.arange(len(idx))
|
|
337
|
+
|
|
333
338
|
xc,yc,zc=hp.pix2vec(nside,idx,nest=True)
|
|
339
|
+
|
|
340
|
+
xc-=x0
|
|
341
|
+
yc-=y0
|
|
342
|
+
zc-=z0
|
|
334
343
|
|
|
335
344
|
vec=np.concatenate([np.expand_dims(x,-1),
|
|
336
345
|
np.expand_dims(y,-1),
|
|
337
346
|
np.expand_dims(z,-1)],1)
|
|
338
347
|
|
|
339
|
-
tc,pc=hp.pix2ang(nside,idx,nest=True)
|
|
340
|
-
|
|
341
348
|
indices=np.zeros([12*nside**2*250,2],dtype='int')
|
|
342
349
|
weights=np.zeros([12*nside**2*250])
|
|
343
350
|
nn=0
|
|
344
|
-
for k in range(
|
|
351
|
+
for k in range(12*nside*nside):
|
|
345
352
|
if k%(nside*nside)==nside*nside-1:
|
|
346
353
|
print('Nside=%d KenelSZ=%d %.2f%%'%(nside,kernel,k/(12*nside**2)*100))
|
|
347
|
-
|
|
354
|
+
if nside<4:
|
|
355
|
+
idx2=np.arange(12*nside**2)
|
|
356
|
+
else:
|
|
357
|
+
idx2=hp.query_disc(nside, vec[k], np.pi/nside, inclusive=True,nest=True)
|
|
348
358
|
t2,p2=hp.pix2ang(nside,idx2,nest=True)
|
|
349
359
|
if rotation is None:
|
|
350
|
-
rot=[po[k]/np.pi*180.0,
|
|
360
|
+
rot=[po[k]/np.pi*180.0,(t0-to[k])/np.pi*180.0]
|
|
351
361
|
else:
|
|
352
|
-
rot=[po[k]/np.pi*180.0,
|
|
362
|
+
rot=[po[k]/np.pi*180.0,(t0-to[k])/np.pi*180.0,rotation[k]]
|
|
363
|
+
|
|
353
364
|
r=hp.Rotator(rot=rot)
|
|
354
365
|
t2,p2=r(t2,p2)
|
|
355
|
-
|
|
366
|
+
|
|
356
367
|
ii,ww=hp.get_interp_weights(nside,t2,p2,nest=True)
|
|
357
|
-
|
|
368
|
+
|
|
358
369
|
ii=im[ii]
|
|
359
370
|
|
|
360
371
|
for l in range(4):
|
|
@@ -410,18 +421,18 @@ class FoCUS:
|
|
|
410
421
|
def init_CNN_index(self,nside,transpose=False):
|
|
411
422
|
l_kernel=int(self.KERNELSZ*self.KERNELSZ)
|
|
412
423
|
try:
|
|
413
|
-
indices=np.load('%s/FOSCAT_%s_I%d_%d_%
|
|
414
|
-
weights=np.load('%s/FOSCAT_%s_W%d_%d_%
|
|
415
|
-
xc=np.load('%s/FOSCAT_%s_X%d_%d_%
|
|
416
|
-
yc=np.load('%s/FOSCAT_%s_Y%d_%d_%
|
|
417
|
-
zc=np.load('%s/FOSCAT_%s_Z%d_%d_%
|
|
424
|
+
indices=np.load('%s/FOSCAT_%s_I%d_%d_%d_CNNV3.npy'%(self.TEMPLATE_PATH,TMPFILE_VERSION,l_kernel,self.NORIENT,nside))
|
|
425
|
+
weights=np.load('%s/FOSCAT_%s_W%d_%d_%d_CNNV3.npy'%(self.TEMPLATE_PATH,TMPFILE_VERSION,l_kernel,self.NORIENT,nside))
|
|
426
|
+
xc=np.load('%s/FOSCAT_%s_X%d_%d_%d_CNNV3.npy'%(self.TEMPLATE_PATH,TMPFILE_VERSION,l_kernel,self.NORIENT,nside))
|
|
427
|
+
yc=np.load('%s/FOSCAT_%s_Y%d_%d_%d_CNNV3.npy'%(self.TEMPLATE_PATH,TMPFILE_VERSION,l_kernel,self.NORIENT,nside))
|
|
428
|
+
zc=np.load('%s/FOSCAT_%s_Z%d_%d_%d_CNNV3.npy'%(self.TEMPLATE_PATH,TMPFILE_VERSION,l_kernel,self.NORIENT,nside))
|
|
418
429
|
except:
|
|
419
430
|
indices,weights,xc,yc,zc=self.calc_indices_convol(nside,l_kernel)
|
|
420
|
-
np.save('%s/FOSCAT_%s_I%d_%d_%
|
|
421
|
-
np.save('%s/FOSCAT_%s_W%d_%d_%
|
|
422
|
-
np.save('%s/FOSCAT_%s_X%d_%d_%
|
|
423
|
-
np.save('%s/FOSCAT_%s_Y%d_%d_%
|
|
424
|
-
np.save('%s/FOSCAT_%s_Z%d_%d_%
|
|
431
|
+
np.save('%s/FOSCAT_%s_I%d_%d_%d_CNNV3.npy'%(self.TEMPLATE_PATH,TMPFILE_VERSION,l_kernel,self.NORIENT,nside),indices)
|
|
432
|
+
np.save('%s/FOSCAT_%s_W%d_%d_%d_CNNV3.npy'%(self.TEMPLATE_PATH,TMPFILE_VERSION,l_kernel,self.NORIENT,nside),weights)
|
|
433
|
+
np.save('%s/FOSCAT_%s_X%d_%d_%d_CNNV3.npy'%(self.TEMPLATE_PATH,TMPFILE_VERSION,l_kernel,self.NORIENT,nside),xc)
|
|
434
|
+
np.save('%s/FOSCAT_%s_Y%d_%d_%d_CNNV3.npy'%(self.TEMPLATE_PATH,TMPFILE_VERSION,l_kernel,self.NORIENT,nside),yc)
|
|
435
|
+
np.save('%s/FOSCAT_%s_Z%d_%d_%d_CNNV3.npy'%(self.TEMPLATE_PATH,TMPFILE_VERSION,l_kernel,self.NORIENT,nside),zc)
|
|
425
436
|
if not self.silent:
|
|
426
437
|
print('Write %s/FOSCAT_%s_W%d_%d_%d_CNNV2.npy'%(self.TEMPLATE_PATH,TMPFILE_VERSION,l_kernel,self.NORIENT,nside))
|
|
427
438
|
|
|
@@ -433,8 +444,8 @@ class FoCUS:
|
|
|
433
444
|
12*nside*nside])
|
|
434
445
|
|
|
435
446
|
# ---------------------------------------------−---------
|
|
436
|
-
def healpix_layer_coord(self,im):
|
|
437
|
-
nside=int(np.sqrt(im.shape[
|
|
447
|
+
def healpix_layer_coord(self,im,axis=0):
|
|
448
|
+
nside=int(np.sqrt(im.shape[axis]//12))
|
|
438
449
|
l_kernel=self.KERNELSZ*self.KERNELSZ
|
|
439
450
|
if self.ww_CNN[nside] is None:
|
|
440
451
|
self.init_CNN_index(nside)
|
|
@@ -486,7 +497,7 @@ class FoCUS:
|
|
|
486
497
|
return 0
|
|
487
498
|
|
|
488
499
|
mat=self.backend.bk_SparseTensor(indices,weights,[12*nside*nside*l_kernel,12*nside*nside])
|
|
489
|
-
|
|
500
|
+
|
|
490
501
|
if axis==1:
|
|
491
502
|
results=[]
|
|
492
503
|
|
|
@@ -498,14 +509,14 @@ class FoCUS:
|
|
|
498
509
|
|
|
499
510
|
density=self.backend.bk_matmul(density,self.backend.bk_reshape(ww,[l_kernel*im.shape[1+axis],ww.shape[2]]))
|
|
500
511
|
|
|
501
|
-
results.append(self.backend.bk_reshape(density,[
|
|
512
|
+
results.append(self.backend.bk_reshape(density,[12*nside**2,ww.shape[2]]))
|
|
502
513
|
|
|
503
514
|
return self.backend.bk_stack(results,axis=0)
|
|
504
515
|
else:
|
|
505
516
|
tmp=self.backend.bk_sparse_dense_matmul(mat,im)
|
|
506
517
|
|
|
507
518
|
density=self.backend.bk_reshape(tmp,[12*nside*nside,l_kernel*im.shape[1]])
|
|
508
|
-
|
|
519
|
+
|
|
509
520
|
return self.backend.bk_matmul(density,self.backend.bk_reshape(ww,[l_kernel*im.shape[1],ww.shape[2]]))
|
|
510
521
|
# ---------------------------------------------−---------
|
|
511
522
|
|
|
@@ -71,7 +71,7 @@ class GCNN:
|
|
|
71
71
|
for i in range(self.nscale):
|
|
72
72
|
totnchan=totnchan+self.chanlist[i]*self.chanlist[i+1]
|
|
73
73
|
return self.npar*12*self.in_nside**2*self.chanlist[0] \
|
|
74
|
-
+totnchan
|
|
74
|
+
+(totnchan+self.chanlist[i+1]*self.n_chan_out)*self.KERNELSZ*self.KERNELSZ
|
|
75
75
|
|
|
76
76
|
def set_weights(self,x):
|
|
77
77
|
self.x=x
|
|
@@ -107,8 +107,12 @@ class GCNN:
|
|
|
107
107
|
im=self.scat_operator.healpix_layer_transpose(im,ww,indices=indices[k],weights=weights[k],axis=1)
|
|
108
108
|
im=self.scat_operator.backend.bk_relu(im)
|
|
109
109
|
|
|
110
|
-
ww=self.scat_operator.backend.bk_reshape(x[nn:],[self.chanlist[self.nscale],self.n_chan_out])
|
|
111
|
-
|
|
110
|
+
ww=self.scat_operator.backend.bk_reshape(x[nn:],[self.KERNELSZ*self.KERNELSZ,self.chanlist[self.nscale],self.n_chan_out])
|
|
111
|
+
if indices is None:
|
|
112
|
+
im=self.scat_operator.healpix_layer(im,ww,axis=1)
|
|
113
|
+
else:
|
|
114
|
+
im=self.scat_operator.healpix_layer(im,ww,indices=indices[self.nscale],weights=weights[self.nscale],axis=1)
|
|
115
|
+
|
|
112
116
|
if axis==0:
|
|
113
117
|
im=self.scat_operator.backend.bk_reshape(im,[im.shape[1],im.shape[2]])
|
|
114
118
|
return im
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|