LSST Applications g0265f82a02+0e5473021a,g02d81e74bb+0dd8ce4237,g1470d8bcf6+3ea6592b6f,g2079a07aa2+86d27d4dc4,g2305ad1205+5ca4c0b359,g295015adf3+d10818ec9d,g2a9a014e59+6f9be1b9cd,g2bbee38e9b+0e5473021a,g337abbeb29+0e5473021a,g3ddfee87b4+703ba97ebf,g487adcacf7+4fa16da234,g50ff169b8f+96c6868917,g52b1c1532d+585e252eca,g591dd9f2cf+ffa42b374e,g5a732f18d5+53520f316c,g64a986408d+0dd8ce4237,g858d7b2824+0dd8ce4237,g8a8a8dda67+585e252eca,g99cad8db69+d39438377f,g9ddcbc5298+9a081db1e4,ga1e77700b3+15fc3df1f7,ga8c6da7877+f1d96605c8,gb0e22166c9+60f28cb32d,gb6a65358fc+0e5473021a,gba4ed39666+c2a2e4ac27,gbb8dafda3b+e5339d463f,gc120e1dc64+da31e9920e,gc28159a63d+0e5473021a,gcf0d15dbbd+703ba97ebf,gdaeeff99f8+f9a426f77a,ge6526c86ff+889fc9d533,ge79ae78c31+0e5473021a,gee10cc3b42+585e252eca,gf18bd8381d+7268b93478,gff1a9f87cc+0dd8ce4237,w.2024.16
LSST Data Management Base Package
Loading...
Searching...
No Matches
Functions
lsst.dax.apdb.tests.data_factory Namespace Reference

Functions

Iterator[LonLat_genPointsInRegion (Region region, int count)
 
pandas.DataFrame makeObjectCatalog (Region region, int count, astropy.time.Time visit_time, *int start_id=1, **Any kwargs)
 
pandas.DataFrame makeSourceCatalog (pandas.DataFrame objects, astropy.time.Time visit_time, int start_id=0, int ccdVisitId=1)
 
pandas.DataFrame makeForcedSourceCatalog (pandas.DataFrame objects, astropy.time.Time visit_time, int ccdVisitId=1)
 
pandas.DataFrame makeSSObjectCatalog (int count, int start_id=1, int flags=0)
 

Function Documentation

◆ _genPointsInRegion()

Iterator[LonLat] lsst.dax.apdb.tests.data_factory._genPointsInRegion ( Region region,
int count )
protected
Generate bunch of SpherePoints inside given region.

Parameters
----------
region : `lsst.sphgeom.Region`
    Spherical region.
count : `int`
    Number of points to generate.

Notes
-----
Returned points are random but not necessarily uniformly distributed.

Definition at line 34 of file data_factory.py.

34def _genPointsInRegion(region: Region, count: int) -> Iterator[LonLat]:
35 """Generate bunch of SpherePoints inside given region.
36
37 Parameters
38 ----------
39 region : `lsst.sphgeom.Region`
40 Spherical region.
41 count : `int`
42 Number of points to generate.
43
44 Notes
45 -----
46 Returned points are random but not necessarily uniformly distributed.
47 """
48 bbox = region.getBoundingBox()
49 center = bbox.getCenter()
50 center_lon = center.getLon().asRadians()
51 center_lat = center.getLat().asRadians()
52 width = bbox.getWidth().asRadians()
53 height = bbox.getHeight().asRadians()
54 while count > 0:
55 lon = random.uniform(center_lon - width / 2, center_lon + width / 2)
56 lat = random.uniform(center_lat - height / 2, center_lat + height / 2)
57 lonlat = LonLat.fromRadians(lon, lat)
58 uv3d = UnitVector3d(lonlat)
59 if region.contains(uv3d):
60 yield lonlat
61 count -= 1
62
63

◆ makeForcedSourceCatalog()

pandas.DataFrame lsst.dax.apdb.tests.data_factory.makeForcedSourceCatalog ( pandas.DataFrame objects,
astropy.time.Time visit_time,
int ccdVisitId = 1 )
Make a catalog containing a bunch of DiaForcedSources associated with
the input DiaObjects.

Parameters
----------
objects : `pandas.DataFrame`
    Catalog of DiaObject records.
visit_time : `astropy.time.Time`
    Time of the visit.
ccdVisitId : `int`
    Value for ``ccdVisitId`` field.

Returns
-------
catalog : `pandas.DataFrame`
    Catalog of DiaForcedSource records.

Notes
-----
Returned catalog only contains small number of columns needed for tests.

Definition at line 155 of file data_factory.py.

157) -> pandas.DataFrame:
158 """Make a catalog containing a bunch of DiaForcedSources associated with
159 the input DiaObjects.
160
161 Parameters
162 ----------
163 objects : `pandas.DataFrame`
164 Catalog of DiaObject records.
165 visit_time : `astropy.time.Time`
166 Time of the visit.
167 ccdVisitId : `int`
168 Value for ``ccdVisitId`` field.
169
170 Returns
171 -------
172 catalog : `pandas.DataFrame`
173 Catalog of DiaForcedSource records.
174
175 Notes
176 -----
177 Returned catalog only contains small number of columns needed for tests.
178 """
179 nrows = len(objects)
180 midpointMjdTai = visit_time.mjd
181 df = pandas.DataFrame(
182 {
183 "diaObjectId": objects["diaObjectId"],
184 "ccdVisitId": numpy.full(nrows, ccdVisitId, dtype=numpy.int64),
185 "midpointMjdTai": numpy.full(nrows, midpointMjdTai, dtype=numpy.float64),
186 "flags": numpy.full(nrows, 0, dtype=numpy.int64),
187 }
188 )
189 return df
190
191

◆ makeObjectCatalog()

pandas.DataFrame lsst.dax.apdb.tests.data_factory.makeObjectCatalog ( Region region,
int count,
astropy.time.Time visit_time,
*int start_id = 1,
**Any kwargs )
Make a catalog containing a bunch of DiaObjects inside a region.

Parameters
----------
region : `lsst.sphgeom.Region`
    Spherical region.
count : `int`
    Number of records to generate.
visit_time : `astropy.time.Time`
    Time of the visit.
start_id : `int`
    Starting diaObjectId.
**kwargs : `Any`
    Additional columns and their values to add to catalog.

Returns
-------
catalog : `pandas.DataFrame`
    Catalog of DiaObjects records.

Notes
-----
Returned catalog only contains three columns - ``diaObjectId`, ``ra``, and
``dec`` (in degrees).

Definition at line 64 of file data_factory.py.

66) -> pandas.DataFrame:
67 """Make a catalog containing a bunch of DiaObjects inside a region.
68
69 Parameters
70 ----------
71 region : `lsst.sphgeom.Region`
72 Spherical region.
73 count : `int`
74 Number of records to generate.
75 visit_time : `astropy.time.Time`
76 Time of the visit.
77 start_id : `int`
78 Starting diaObjectId.
79 **kwargs : `Any`
80 Additional columns and their values to add to catalog.
81
82 Returns
83 -------
84 catalog : `pandas.DataFrame`
85 Catalog of DiaObjects records.
86
87 Notes
88 -----
89 Returned catalog only contains three columns - ``diaObjectId`, ``ra``, and
90 ``dec`` (in degrees).
91 """
92 points = list(_genPointsInRegion(region, count))
93 # diaObjectId=0 may be used in some code for DiaSource foreign key to mean
94 # the same as ``None``.
95 ids = numpy.arange(start_id, len(points) + start_id, dtype=numpy.int64)
96 ras = numpy.array([lonlat.getLon().asDegrees() for lonlat in points], dtype=numpy.float64)
97 decs = numpy.array([lonlat.getLat().asDegrees() for lonlat in points], dtype=numpy.float64)
98 nDiaSources = numpy.ones(len(points), dtype=numpy.int32)
99 dt = visit_time.datetime
100 data = dict(
101 kwargs,
102 diaObjectId=ids,
103 ra=ras,
104 dec=decs,
105 nDiaSources=nDiaSources,
106 lastNonForcedSource=dt,
107 )
108 df = pandas.DataFrame(data)
109 return df
110
111

◆ makeSourceCatalog()

pandas.DataFrame lsst.dax.apdb.tests.data_factory.makeSourceCatalog ( pandas.DataFrame objects,
astropy.time.Time visit_time,
int start_id = 0,
int ccdVisitId = 1 )
Make a catalog containing a bunch of DiaSources associated with the
input DiaObjects.

Parameters
----------
objects : `pandas.DataFrame`
    Catalog of DiaObject records.
visit_time : `astropy.time.Time`
    Time of the visit.
start_id : `int`
    Starting value for ``diaObjectId``.
ccdVisitId : `int`
    Value for ``ccdVisitId`` field.

Returns
-------
catalog : `pandas.DataFrame`
    Catalog of DiaSource records.

Notes
-----
Returned catalog only contains small number of columns needed for tests.

Definition at line 112 of file data_factory.py.

114) -> pandas.DataFrame:
115 """Make a catalog containing a bunch of DiaSources associated with the
116 input DiaObjects.
117
118 Parameters
119 ----------
120 objects : `pandas.DataFrame`
121 Catalog of DiaObject records.
122 visit_time : `astropy.time.Time`
123 Time of the visit.
124 start_id : `int`
125 Starting value for ``diaObjectId``.
126 ccdVisitId : `int`
127 Value for ``ccdVisitId`` field.
128
129 Returns
130 -------
131 catalog : `pandas.DataFrame`
132 Catalog of DiaSource records.
133
134 Notes
135 -----
136 Returned catalog only contains small number of columns needed for tests.
137 """
138 nrows = len(objects)
139 midpointMjdTai = visit_time.mjd
140 df = pandas.DataFrame(
141 {
142 "diaSourceId": numpy.arange(start_id, start_id + nrows, dtype=numpy.int64),
143 "diaObjectId": objects["diaObjectId"],
144 "ccdVisitId": numpy.full(nrows, ccdVisitId, dtype=numpy.int64),
145 "parentDiaSourceId": 0,
146 "ra": objects["ra"],
147 "dec": objects["dec"],
148 "midpointMjdTai": numpy.full(nrows, midpointMjdTai, dtype=numpy.float64),
149 "flags": numpy.full(nrows, 0, dtype=numpy.int64),
150 }
151 )
152 return df
153
154

◆ makeSSObjectCatalog()

pandas.DataFrame lsst.dax.apdb.tests.data_factory.makeSSObjectCatalog ( int count,
int start_id = 1,
int flags = 0 )
Make a catalog containing a bunch of SSObjects.

Parameters
----------
count : `int`
    Number of records to generate.
startID : `int`
    Initial SSObject ID.
flags : `int`
    Value for ``flags`` column.

Returns
-------
catalog : `pandas.DataFrame`
    Catalog of SSObjects records.

Notes
-----
Returned catalog only contains three columns - ``ssObjectId`, ``arc``,
and ``flags``.

Definition at line 192 of file data_factory.py.

192def makeSSObjectCatalog(count: int, start_id: int = 1, flags: int = 0) -> pandas.DataFrame:
193 """Make a catalog containing a bunch of SSObjects.
194
195 Parameters
196 ----------
197 count : `int`
198 Number of records to generate.
199 startID : `int`
200 Initial SSObject ID.
201 flags : `int`
202 Value for ``flags`` column.
203
204 Returns
205 -------
206 catalog : `pandas.DataFrame`
207 Catalog of SSObjects records.
208
209 Notes
210 -----
211 Returned catalog only contains three columns - ``ssObjectId`, ``arc``,
212 and ``flags``.
213 """
214 ids = numpy.arange(start_id, count + start_id, dtype=numpy.int64)
215 arc = numpy.full(count, 0.001, dtype=numpy.float32)
216 flags_array = numpy.full(count, flags, dtype=numpy.int64)
217 df = pandas.DataFrame({"ssObjectId": ids, "arc": arc, "flags": flags_array})
218 return df