foscat 2025.3.0__py3-none-any.whl → 2025.5.0__py3-none-any.whl

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/BkBase.py CHANGED
@@ -23,6 +23,15 @@ class BackendBase:
23
23
  self._fft_3_orient = {}
24
24
  self._fft_3_orient_C = {}
25
25
 
26
+ def to_dict(self):
27
+ return {
28
+ "name": self.BACKEND,
29
+ "mpi_rank": self.mpi_rank,
30
+ "all_type": self.all_type,
31
+ "gpupos": self.gpupos,
32
+ "silent": self.silent,
33
+ }
34
+
26
35
  def iso_mean(self, x, use_2D=False):
27
36
  shape = list(x.shape)
28
37
 
foscat/FoCUS.py CHANGED
@@ -35,7 +35,7 @@ class FoCUS:
35
35
  mpi_rank=0,
36
36
  ):
37
37
 
38
- self.__version__ = "2025.03.0"
38
+ self.__version__ = "2025.05.0"
39
39
  # P00 coeff for normalization for scat_cov
40
40
  self.TMPFILE_VERSION = TMPFILE_VERSION
41
41
  self.P1_dic = None
foscat/scat_cov.py CHANGED
@@ -3037,12 +3037,13 @@ class funct(FOC.FoCUS):
3037
3037
  )
3038
3038
  S2[j3] = s2
3039
3039
  else:
3040
- ### Normalize S2_cross
3041
- if norm == "auto":
3042
- s2 /= (P1_dic[j3] * P2_dic[j3]) ** 0.5
3043
3040
 
3044
3041
  ### Store S2_cross as complex [Nbatch, Nmask, NS2, Norient3]
3045
3042
  s2 = self.backend.bk_real(s2)
3043
+
3044
+ ### Normalize S2_cross
3045
+ if norm == "auto":
3046
+ s2 /= (P1_dic[j3] * P2_dic[j3]) ** 0.5
3046
3047
 
3047
3048
  S2.append(
3048
3049
  self.backend.bk_expand_dims(s2, off_S2)
@@ -6045,13 +6046,12 @@ class funct(FOC.FoCUS):
6045
6046
  image2=None,
6046
6047
  mask=None,
6047
6048
  norm=None,
6048
- Auto=True,
6049
6049
  cmat=None,
6050
6050
  cmat2=None,
6051
6051
  ):
6052
6052
 
6053
6053
  res = self.eval(
6054
- image1, image2=image2, mask=mask, Auto=Auto, cmat=cmat, cmat2=cmat2
6054
+ image1, image2=image2, mask=mask, cmat=cmat, cmat2=cmat2
6055
6055
  )
6056
6056
  return res.S0, res.S2, res.S1, res.S3, res.S4, res.S3P
6057
6057
 
@@ -6061,12 +6061,11 @@ class funct(FOC.FoCUS):
6061
6061
  image2=None,
6062
6062
  mask=None,
6063
6063
  norm=None,
6064
- Auto=True,
6065
6064
  cmat=None,
6066
6065
  cmat2=None,
6067
6066
  ):
6068
6067
  s0, s2, s1, s3, s4, s3p = self.eval_comp_fast(
6069
- image1, image2=image2, mask=mask, Auto=Auto, cmat=cmat, cmat2=cmat2
6068
+ image1, image2=image2, mask=mask, cmat=cmat, cmat2=cmat2
6070
6069
  )
6071
6070
  return scat_cov(
6072
6071
  s0, s2, s3, s4, s1=s1, s3p=s3p, backend=self.backend, use_1D=self.use_1D
@@ -6102,6 +6101,15 @@ class funct(FOC.FoCUS):
6102
6101
  if edge:
6103
6102
  self.purge_edge_mask()
6104
6103
 
6104
+ def The_loss_ref_image(u, scat_operator, args):
6105
+ input_image = args[0]
6106
+ mask = args[1]
6107
+
6108
+ loss = 1E-3*scat_operator.backend.bk_reduce_mean(
6109
+ scat_operator.backend.bk_square(mask*(input_image - u))
6110
+ )
6111
+ return loss
6112
+
6105
6113
  def The_loss(u, scat_operator, args):
6106
6114
  ref = args[0]
6107
6115
  sref = args[1]
@@ -6338,8 +6346,16 @@ class funct(FOC.FoCUS):
6338
6346
  loss = synthe.Loss(
6339
6347
  The_lossX, self, ref, sref, use_variance, l_ref[k], l_jmax[k]
6340
6348
  )
6341
-
6342
- sy = synthe.Synthesis([loss])
6349
+
6350
+ if input_image is not None:
6351
+ # define a loss to minimize
6352
+ loss_input = synthe.Loss(The_loss_ref_image, self,
6353
+ self.backend.bk_cast(l_input_image[k]),
6354
+ self.backend.bk_cast(l_in_mask[k]))
6355
+
6356
+ sy = synthe.Synthesis([loss]) #,loss_input])
6357
+ else:
6358
+ sy = synthe.Synthesis([loss])
6343
6359
 
6344
6360
  # initialize the synthesised map
6345
6361
  if self.use_2D:
foscat/scat_cov_map.py CHANGED
@@ -29,7 +29,6 @@ class funct(scat.funct):
29
29
  image2=None,
30
30
  mask=None,
31
31
  norm=None,
32
- Auto=True,
33
32
  calc_var=False,
34
33
  out_nside=None,
35
34
  ):
@@ -38,7 +37,6 @@ class funct(scat.funct):
38
37
  image2=image2,
39
38
  mask=mask,
40
39
  norm=norm,
41
- Auto=Auto,
42
40
  calc_var=calc_var,
43
41
  out_nside=out_nside,
44
42
  )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: foscat
3
- Version: 2025.3.0
3
+ Version: 2025.5.0
4
4
  Summary: Generate synthetic Healpix or 2D data using Cross Scattering Transform
5
5
  Author-email: Jean-Marc DELOUIS <jean.marc.delouis@ifremer.fr>
6
6
  Maintainer-email: Theo Foulquier <theo.foulquier@ifremer.fr>
@@ -1,10 +1,10 @@
1
- foscat/BkBase.py,sha256=_iszgMdVIVEB47EBxNt5xemsdaKzsNFPStDF00M_-Ng,21281
1
+ foscat/BkBase.py,sha256=TEhfqUpIOh_bGBCyQfRCs0yjKdhgELjFpvq_QiouX5A,21514
2
2
  foscat/BkNumpy.py,sha256=zRldS_-L6A7y1zDzEPZXQntuw3Paw2zHZowhD43FHRs,10589
3
3
  foscat/BkTensorflow.py,sha256=N5TBacuyFB1-qGTi2kOc8zbgWzj5lVRRN47uZJpJJ10,15713
4
4
  foscat/BkTorch.py,sha256=011L9WCBtrRzV1jfGWCYOMSkt1IJ0PfEO82NnrIYbAc,16648
5
5
  foscat/CNN.py,sha256=j0F2a4Xf3LijhyD_WVZ6Eg_IjGuXw3ddH6Iudj1xVaw,4874
6
6
  foscat/CircSpline.py,sha256=CXi49FxF8ZoeZ17Ua8c1AZXe2B5ICEC9aCXb97atB3s,4028
7
- foscat/FoCUS.py,sha256=iCWuhQqYQ1ub3F0flO2iVuMoN7gCDd1oZ79SIH9-oww,108768
7
+ foscat/FoCUS.py,sha256=FeSkBmjBTELZQn529SONSOuzKlYxWqRLpyTM8j-Ql_Y,108768
8
8
  foscat/GCNN.py,sha256=5RV-FKuvqbD-k99TwiM4CttM2LMZE21WD0IK0j5Mkko,7599
9
9
  foscat/Softmax.py,sha256=aBLQauoG0q2SJYPotV6U-cxAhsJcspWHNRWdnA_nAiQ,2854
10
10
  foscat/Spline1D.py,sha256=rKzzenduaZZ-yBDJd35it6Gyrj1spqb7hoIaUgISPzY,2983
@@ -18,13 +18,13 @@ foscat/loss_backend_torch.py,sha256=k3z18Dj3SaLKK6ZIKcm7GO4U_YKYVP6LtHG1aIbxkYk,
18
18
  foscat/scat.py,sha256=qGYiBIysPt65MdmF07WWA4piVlTfA9-lFDTaicnqC2w,72822
19
19
  foscat/scat1D.py,sha256=W5Uu6wdQ4ZsFKXpof0f1OBl-1wjJmW7ruvddRWxe7uM,53726
20
20
  foscat/scat2D.py,sha256=boKj0ASqMMSy7uQLK6hPniG87m3hZGJBYBiq5v8F9IQ,532
21
- foscat/scat_cov.py,sha256=ZOFDWNC8q04N6Tvpe7RxSWlRgJ8jgsIyPJ_EJ39CXOg,258297
21
+ foscat/scat_cov.py,sha256=SMIhqspoe4vn6n_suNd1Npbs6eoXH7C45KupQta_h6M,258963
22
22
  foscat/scat_cov1D.py,sha256=XOxsZZ5TYq8f34i2tUgIfzyaqaTDlICB3HzD2l_puro,531
23
23
  foscat/scat_cov2D.py,sha256=pAm0fKw8wyXram0TFbtw8tGcc8QPKuPXpQk0kh10r4U,7078
24
- foscat/scat_cov_map.py,sha256=Swt39-nYEaQkBzyX4EOAQBvUuYQpERzJ-uVxSWS2b-Y,2911
24
+ foscat/scat_cov_map.py,sha256=9MzpwT2g9S3dmnjHEMK7PPLQ27oGQg2VFVsP_TDUU5E,2869
25
25
  foscat/scat_cov_map2D.py,sha256=FqF45FBcoiQbvuVsrLWUIPRUc95GsKsrnH6fKzB3GlE,2841
26
- foscat-2025.3.0.dist-info/licenses/LICENSE,sha256=i0ukIr8ZUpkSY2sZaE9XZK-6vuSU5iG6IgX_3pjatP8,1505
27
- foscat-2025.3.0.dist-info/METADATA,sha256=hfPyoLACrvhbOjv70ve--tjL5CseBXEHMFvC3CNzSr0,7215
28
- foscat-2025.3.0.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
29
- foscat-2025.3.0.dist-info/top_level.txt,sha256=AGySXBBAlJgb8Tj8af6m_F-aiNg2zNTcybCUPVOKjAg,7
30
- foscat-2025.3.0.dist-info/RECORD,,
26
+ foscat-2025.5.0.dist-info/licenses/LICENSE,sha256=i0ukIr8ZUpkSY2sZaE9XZK-6vuSU5iG6IgX_3pjatP8,1505
27
+ foscat-2025.5.0.dist-info/METADATA,sha256=lcHXnUQB5cZQUTHp8vgEUP0ZeG278dN5GIae_UqnQPs,7215
28
+ foscat-2025.5.0.dist-info/WHEEL,sha256=0CuiUZ_p9E4cD6NyLD6UG80LBXYyiSYZOKDm5lp32xk,91
29
+ foscat-2025.5.0.dist-info/top_level.txt,sha256=AGySXBBAlJgb8Tj8af6m_F-aiNg2zNTcybCUPVOKjAg,7
30
+ foscat-2025.5.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (78.1.0)
2
+ Generator: setuptools (80.3.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5