roman-snpit-snappl 0.7.0__tar.gz → 0.8.0__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.

Potentially problematic release.


This version of roman-snpit-snappl might be problematic. Click here for more details.

Files changed (77) hide show
  1. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/.github/workflows/run_snappl_tests.yml +12 -1
  2. {roman_snpit_snappl-0.7.0/roman_snpit_snappl.egg-info → roman_snpit_snappl-0.8.0}/PKG-INFO +1 -1
  3. roman_snpit_snappl-0.8.0/changes/41.snappl.rst +1 -0
  4. roman_snpit_snappl-0.8.0/changes/43.snappl.rst +1 -0
  5. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0/roman_snpit_snappl.egg-info}/PKG-INFO +1 -1
  6. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/roman_snpit_snappl.egg-info/SOURCES.txt +2 -0
  7. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/snappl/_version.py +16 -3
  8. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/snappl/image.py +1 -2
  9. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/snappl/psf.py +51 -14
  10. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/snappl/sed.py +1 -0
  11. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/.cruft.json +0 -0
  12. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/.github/CODEOWNERS +0 -0
  13. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/.github/ISSUE_TEMPLATE/FEATURE_REQUEST.md +0 -0
  14. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/.github/ISSUE_TEMPLATE/ISSUE_TEMPLATE.md +0 -0
  15. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/.github/ISSUE_TEMPLATE/PR_TEMPLATE.md +0 -0
  16. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/.github/dependabot.yml +0 -0
  17. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/.github/labeler.yml +0 -0
  18. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/.github/workflows/changelog.yml +0 -0
  19. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/.github/workflows/run_labeler.yml +0 -0
  20. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/.github/workflows/sphinx-deploy.yml +0 -0
  21. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/.github/workflows/sub_package_update.yml +0 -0
  22. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/.gitignore +0 -0
  23. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/.pre-commit-config.yaml +0 -0
  24. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/CHANGES.rst +0 -0
  25. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/CITATION.cff +0 -0
  26. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/CODE_OF_CONDUCT.md +0 -0
  27. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/CONTRIBUTING.md +0 -0
  28. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/LICENSE +0 -0
  29. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/MANIFEST.in +0 -0
  30. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/README.rst +0 -0
  31. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/changes/.gitkeep +0 -0
  32. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/changes/10.snappl.rst +0 -0
  33. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/changes/13.bugfix.rst +0 -0
  34. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/changes/14.snappl.rst +0 -0
  35. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/changes/15.feature.rst +0 -0
  36. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/changes/16.feature.rst +0 -0
  37. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/changes/18.feature.rst +0 -0
  38. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/changes/20.bugfix.rst +0 -0
  39. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/changes/23.snappl.rst +0 -0
  40. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/changes/26.feature.rst +0 -0
  41. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/changes/3.snappl.rst +0 -0
  42. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/changes/31.feature.rst +0 -0
  43. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/changes/35.snappl.rst +0 -0
  44. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/changes/36.snappl.rst +0 -0
  45. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/changes/37.snappl.rst +0 -0
  46. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/changes/40.snappl.rst +0 -0
  47. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/changes/5.snappl.rst +0 -0
  48. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/changes/8.snappl.rst +0 -0
  49. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/changes/9.snappl.rst +0 -0
  50. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/codespell-ignore.txt +0 -0
  51. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/docs/Makefile +0 -0
  52. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/docs/_static/logo_black_filled.png +0 -0
  53. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/docs/changes.rst +0 -0
  54. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/docs/conf.py +0 -0
  55. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/docs/index.rst +0 -0
  56. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/docs/installation.rst +0 -0
  57. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/docs/make.bat +0 -0
  58. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/docs/usage.rst +0 -0
  59. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/experimentation/README.md +0 -0
  60. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/experimentation/play_with_photutils.py +0 -0
  61. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/licenses/.DS_Store +0 -0
  62. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/licenses/LICENSE.rst +0 -0
  63. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/licenses/README.rst +0 -0
  64. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/licenses/TEMPLATE_LICENSE.rst +0 -0
  65. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/pyproject.toml +0 -0
  66. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/roman_snpit_snappl.egg-info/dependency_links.txt +0 -0
  67. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/roman_snpit_snappl.egg-info/not-zip-safe +0 -0
  68. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/roman_snpit_snappl.egg-info/requires.txt +0 -0
  69. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/roman_snpit_snappl.egg-info/top_level.txt +0 -0
  70. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/setup.cfg +0 -0
  71. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/setup.py +0 -0
  72. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/snappl/__init__.py +0 -0
  73. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/snappl/_dev/__init__.py +0 -0
  74. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/snappl/_dev/scm_version.py +0 -0
  75. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/snappl/data/README.rst +0 -0
  76. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/snappl/wcs.py +0 -0
  77. {roman_snpit_snappl-0.7.0 → roman_snpit_snappl-0.8.0}/tox.ini +0 -0
@@ -20,10 +20,20 @@ jobs:
20
20
  uses: jwalton/gh-docker-logs@v2
21
21
 
22
22
  - name: checkout code
23
- uses: actions/checkout@v4
23
+ uses: actions/checkout@v5
24
24
  with:
25
+ path: main
25
26
  submodules: recursive
26
27
 
28
+ - name: run ruff
29
+ uses: astral-sh/ruff-action@v3
30
+
31
+ - name: checkout photometry test data
32
+ uses: actions/checkout@v5
33
+ with:
34
+ repository: Roman-Supernova-PIT/photometry_test_data
35
+ path: photometry_test_data
36
+
27
37
  - name: log into github container registry
28
38
  uses: docker/login-action@v3
29
39
  with:
@@ -46,4 +56,5 @@ jobs:
46
56
 
47
57
  - name: run test
48
58
  run: |
59
+ cd main
49
60
  docker compose run runtests
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: roman_snpit_snappl
3
- Version: 0.7.0
3
+ Version: 0.8.0
4
4
  Summary: Photometry utilities for the Roman SNPIT
5
5
  Author: Roman Supernove Project Infrastructure Team
6
6
  Maintainer-email: Roman SN PIT <raknop@lbl.gov>
@@ -0,0 +1 @@
1
+ Made OU24 PSFs have passable WCSs
@@ -0,0 +1 @@
1
+ Update tests to use photometry_test_data, small edit to config file layout.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: roman_snpit_snappl
3
- Version: 0.7.0
3
+ Version: 0.8.0
4
4
  Summary: Photometry utilities for the Roman SNPIT
5
5
  Author: Roman Supernove Project Infrastructure Team
6
6
  Maintainer-email: Roman SN PIT <raknop@lbl.gov>
@@ -39,6 +39,8 @@ changes/35.snappl.rst
39
39
  changes/36.snappl.rst
40
40
  changes/37.snappl.rst
41
41
  changes/40.snappl.rst
42
+ changes/41.snappl.rst
43
+ changes/43.snappl.rst
42
44
  changes/5.snappl.rst
43
45
  changes/8.snappl.rst
44
46
  changes/9.snappl.rst
@@ -1,7 +1,14 @@
1
1
  # file generated by setuptools-scm
2
2
  # don't change, don't track in version control
3
3
 
4
- __all__ = ["__version__", "__version_tuple__", "version", "version_tuple"]
4
+ __all__ = [
5
+ "__version__",
6
+ "__version_tuple__",
7
+ "version",
8
+ "version_tuple",
9
+ "__commit_id__",
10
+ "commit_id",
11
+ ]
5
12
 
6
13
  TYPE_CHECKING = False
7
14
  if TYPE_CHECKING:
@@ -9,13 +16,19 @@ if TYPE_CHECKING:
9
16
  from typing import Union
10
17
 
11
18
  VERSION_TUPLE = Tuple[Union[int, str], ...]
19
+ COMMIT_ID = Union[str, None]
12
20
  else:
13
21
  VERSION_TUPLE = object
22
+ COMMIT_ID = object
14
23
 
15
24
  version: str
16
25
  __version__: str
17
26
  __version_tuple__: VERSION_TUPLE
18
27
  version_tuple: VERSION_TUPLE
28
+ commit_id: COMMIT_ID
29
+ __commit_id__: COMMIT_ID
19
30
 
20
- __version__ = version = '0.7.0'
21
- __version_tuple__ = version_tuple = (0, 7, 0)
31
+ __version__ = version = '0.8.0'
32
+ __version_tuple__ = version_tuple = (0, 8, 0)
33
+
34
+ __commit_id__ = commit_id = 'gfdb162af4'
@@ -458,7 +458,7 @@ class FITSImage( Numpy2DImage ):
458
458
  f"pixel, you tried to pass a size of {xsize, ysize}.")
459
459
 
460
460
  SNLogger.debug(f'Cutting out at {x , y}')
461
- data, noise, flags = self.get_data( 'all', always_reload=False )
461
+ data, noise, flags = self.get_data( 'all' )
462
462
 
463
463
  wcs = self.get_wcs()
464
464
  if ( wcs is not None ) and ( not isinstance( wcs, AstropyWCS ) ):
@@ -613,4 +613,3 @@ class ManualFITSImage(FITSImage):
613
613
  if self._header is None:
614
614
  raise RuntimeError("Header is not set for ManualFITSImage.")
615
615
  return self._header
616
-
@@ -13,6 +13,7 @@ import galsim
13
13
  from roman_imsim.utils import roman_utils
14
14
 
15
15
  # roman snpit library imports
16
+ from snappl.wcs import BaseWCS
16
17
  from snpit_utils.config import Config
17
18
  from snpit_utils.logger import SNLogger
18
19
 
@@ -1051,7 +1052,7 @@ class ou24PSF_slow( PSF ):
1051
1052
  self.sed = sed
1052
1053
 
1053
1054
  if config_file is None:
1054
- config_file = Config.get().value( 'ou24psf.config_file' )
1055
+ config_file = Config.get().value( 'ou24.config_file' )
1055
1056
  self.config_file = config_file
1056
1057
  self.pointing = pointing
1057
1058
  self.sca = sca
@@ -1067,13 +1068,17 @@ class ou24PSF_slow( PSF ):
1067
1068
  return self.size
1068
1069
 
1069
1070
 
1070
- def get_stamp( self, x=None, y=None, x0=None, y0=None, flux=1., seed=None ):
1071
+ def get_stamp( self, x=None, y=None, x0=None, y0=None, flux=1., seed=None, input_wcs=None):
1071
1072
  """Return a 2d numpy image of the PSF at the image resolution.
1072
1073
 
1073
1074
  Parameters are as in PSF.get_stamp, plus:
1074
1075
 
1075
1076
  Parameters
1076
1077
  ----------
1078
+ input_wcs : BaseWCS or galsim.BaseWCS
1079
+ WARNING: DO NOT USE. Not part of a standard interface, for testing purposes only.
1080
+ An alternative WCS to use for the stamp.
1081
+
1077
1082
  seed : int
1078
1083
  A random seed to pass to galsim.BaseDeviate for photonOps.
1079
1084
  NOTE: this is not part of the base PSF interface (at least,
@@ -1112,8 +1117,20 @@ class ou24PSF_slow( PSF ):
1112
1117
  # It seems that galsim.ChromaticObject.drawImage won't function without stamp having
1113
1118
  # a wcs. Without a WCS, the stamp was coming out all zeros.
1114
1119
  # TODO : does rmutils.getLocalWCS want 1-indexed or 0-indexed coordinates???
1115
- wcs = rmutils.getLocalWCS( x+1, y+1 )
1116
- stamp = galsim.Image( self.stamp_size, self.stamp_size, wcs=wcs )
1120
+ # wcs = rmutils.getLocalWCS( x+1, y+1 )self._
1121
+
1122
+ if input_wcs is None:
1123
+ self._wcs = rmutils.getLocalWCS( x+1, y+1 )
1124
+ elif isinstance(input_wcs, BaseWCS):
1125
+ SNLogger.debug( "Using user-supplied wcs for ou24PSF." )
1126
+ self._wcs = input_wcs.get_galsim_wcs().local( image_pos = galsim.PositionD(x+1, y+1 ))
1127
+ elif isinstance( input_wcs, galsim.BaseWCS ):
1128
+ SNLogger.debug( "Using user-supplied wcs for ou24PSF." )
1129
+ self._wcs = input_wcs.local( image_pos = galsim.PositionD(x+1, y+1 ))
1130
+ else:
1131
+ raise TypeError( f"wcs must be a galsim.BaseWCS, not a {type(input_wcs)}" )
1132
+
1133
+ stamp = galsim.Image( self.stamp_size, self.stamp_size, wcs=self._wcs )
1117
1134
  point = ( galsim.DeltaFunction() * self.sed ).withFlux( flux, rmutils.bpass )
1118
1135
  # TODO : make sure that rmutils.getPSF wants 1-indexed positions (which we assume here).
1119
1136
  # (This is not that big a deal, because the PSF is not going to vary significantly
@@ -1130,14 +1147,14 @@ class ou24PSF_slow( PSF ):
1130
1147
  # if that's the correct word) that describes where the photons
1131
1148
  # should be shot, with some randomness.
1132
1149
  if self.include_photonOps:
1133
- point.drawImage( rmutils.bpass, method='phot', rng=rmutils.rng, photon_ops=photon_ops,
1134
- n_photons=self.n_photons, maxN=self.n_photons, poisson_flux=False,
1135
- center=center, use_true_center=True, image=stamp )
1150
+ point.drawImage(rmutils.bpass, method='phot', rng=rmutils.rng, photon_ops=photon_ops,
1151
+ n_photons=self.n_photons, maxN=self.n_photons, poisson_flux=False,
1152
+ center=center, use_true_center=True, image=stamp)
1136
1153
 
1137
1154
  else:
1138
1155
  psf = galsim.Convolve(point, photon_ops[0])
1139
1156
  psf.drawImage(rmutils.bpass, method="no_pixel", center=center,
1140
- use_true_center=True, image=stamp, wcs=wcs)
1157
+ use_true_center=True, image=stamp, wcs=self._wcs)
1141
1158
 
1142
1159
  self._stamps[(x, y, stampx, stampy)] = stamp.array
1143
1160
 
@@ -1150,15 +1167,21 @@ class ou24PSF( ou24PSF_slow ):
1150
1167
  super().__init__(*args, **kwargs)
1151
1168
  self._psf = None
1152
1169
 
1153
- def _init_psf_object( self, x0=None, y0=None, flux=1.):
1170
+ def _init_psf_object( self, x0=None, y0=None, flux=1., input_wcs = None):
1154
1171
  """Create the galsim PSF object, WCS, and galsim.chromatic.SimpleChromaticTransformation
1155
1172
  that can be reused for multiple calls to get_stamp.
1156
1173
 
1174
+ WARNING: Do not use input_wcs. Not part of a standard interface, for testing & simulation purposes only.
1175
+
1176
+
1157
1177
  Parameters are as in PSF.get_stamp, plus:
1158
1178
 
1159
1179
  Parameters
1160
1180
  ----------
1161
- seed : int
1181
+ input_wcs : BaseWCS or galsim.BaseWCS
1182
+ An alternative WCS to use for the stamp.
1183
+
1184
+ seed : int
1162
1185
  A random seed to pass to galsim.BaseDeviate for photonOps.
1163
1186
  NOTE: this is not part of the base PSF interface (at least,
1164
1187
  as of yet), so don't use it in production pipeline code.
@@ -1170,7 +1193,18 @@ class ou24PSF( ou24PSF_slow ):
1170
1193
  self._rmutils = roman_utils(self.config_file, self.pointing, self.sca)
1171
1194
  self._psf = self._rmutils.getPSF(x0+1, y0+1, pupil_bin=8)
1172
1195
  # TODO : does rmutils.getLocalWCS want 1-indexed or 0-indexed coordinates???
1173
- self._wcs = self._rmutils.getLocalWCS( x0+1, y0+1 )
1196
+ if input_wcs is None:
1197
+ self._wcs = self._rmutils.getLocalWCS( x0+1, y0+1 )
1198
+ elif isinstance(input_wcs, BaseWCS):
1199
+ SNLogger.debug( "Using user-supplied wcs for ou24PSF." )
1200
+ self._wcs = input_wcs.get_galsim_wcs().local( image_pos = galsim.PositionD(x0+1, y0+1))
1201
+ elif isinstance( input_wcs, galsim.BaseWCS):
1202
+ SNLogger.debug( "Using user-supplied wcs for ou24PSF." )
1203
+ self._wcs = input_wcs.local( image_pos=galsim.PositionD(x0+1, y0+1))
1204
+ else:
1205
+ raise TypeError( f"wcs must be a galsim.BaseWCS, not a {type(input_wcs)}" )
1206
+ SNLogger.debug( f"ou24PSF wcs fetched at: {x0, y0}" )
1207
+ SNLogger.debug( f"ou24PSF wcs: {self._wcs}" )
1174
1208
  self._stamp = galsim.Image( self.stamp_size, self.stamp_size, wcs=self._wcs )
1175
1209
  self._point = ( galsim.DeltaFunction() * self.sed ).withFlux( flux, self._rmutils.bpass )
1176
1210
  self._convolved_psf = galsim.Convolve(self._point, self._psf)
@@ -1178,12 +1212,16 @@ class ou24PSF( ou24PSF_slow ):
1178
1212
  self._stored_x0 = x0
1179
1213
  self._stored_y0 = y0
1180
1214
 
1181
- def get_stamp(self, x=None, y=None, x0=None, y0=None, flux=1.0, seed=None):
1215
+ def get_stamp(self, x=None, y=None, x0=None, y0=None, flux=1.0, seed=None, input_wcs=None):
1182
1216
  """Return a 2d numpy image of the PSF at the image resolution.
1183
1217
  Parameters are as in PSF.get_stamp, plus:
1184
1218
 
1185
1219
  Parameters
1186
1220
  ----------
1221
+ wcs : BaseWCS or galsim.BaseWCS
1222
+ WARNING: DO NOT USE. Not part of a standard interface, for testing purposes only.
1223
+ An alternative WCS to use for the stamp.
1224
+
1187
1225
  seed : int
1188
1226
  A random seed to pass to galsim.BaseDeviate for photonOps.
1189
1227
  NOTE: this is not part of the base PSF interface (at least,
@@ -1197,7 +1235,6 @@ class ou24PSF( ou24PSF_slow ):
1197
1235
  # (within 1/2 pixel; by default, we want to make x and y
1198
1236
  # centered on a pixel).
1199
1237
 
1200
-
1201
1238
  x = x if x is not None else float( self.sca_size // 2 )
1202
1239
  y = y if y is not None else float( self.sca_size // 2 )
1203
1240
 
@@ -1213,7 +1250,7 @@ class ou24PSF( ou24PSF_slow ):
1213
1250
  SNLogger.debug( "Initializing ou24PSF galsim PSF object." )
1214
1251
  # If we don't have a psf object, then we need to initialize it, we then re use it for multiple calls to
1215
1252
  # get_stamp.
1216
- self._init_psf_object( x0=x0, y0=y0, flux=flux)
1253
+ self._init_psf_object( x0=x0, y0=y0, flux=flux, input_wcs = input_wcs)
1217
1254
  else:
1218
1255
  if x0 != self._stored_x0 or y0 != self._stored_y0:
1219
1256
  raise ValueError("ou24PSF.get_stamp called with x0 or y0 that does not match the x0 or y0 used"
@@ -28,6 +28,7 @@ class Flat_SED( SED_collection ):
28
28
  def get_sed( self, **kwargs):
29
29
  return self.sed
30
30
 
31
+
31
32
  class Single_CSV_SED( SED_collection ):
32
33
  def __init__( self, csv_file ):
33
34
  # READ THE CSV FILE, make a galsim SED in self.sed