<!-- 
RSS generated by JIRA (8.3.4#803005-sha1:1f96e09b3c60279a408a2ae47be3c745f571388b) at Sat Feb 10 15:51:28 JST 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>PFS-JIRA</title>
    <link>https://pfspipe.ipmu.jp/jira</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>8.3.4</version>
        <build-number>803005</build-number>
        <build-date>13-09-2019</build-date>
    </build-info>


<item>
            <title>[PIPE2D-342] Define {{Lsf}} class</title>
                <link>https://pfspipe.ipmu.jp/jira/browse/PIPE2D-342</link>
                <project id="10002" key="PIPE2D">DRP 2-D Pipeline</project>
                    <description>&lt;p&gt;Define a class for Line Spread Function information. This should ideally be a subset of the &lt;tt&gt;Psf&lt;/tt&gt; class and thus have similar methods, such that it and the &lt;tt&gt;Psf&lt;/tt&gt; class can be used in generic code.&lt;/p&gt;

&lt;p&gt;How the LSF is stored internally in given &lt;tt&gt;Lsf&lt;/tt&gt; instance needs to be determined, as an analytical form may be useful in addition to a numerical form (an array of amplitudes versus x-position).&lt;/p&gt;</description>
                <environment></environment>
        <key id="13321">PIPE2D-342</key>
            <summary>Define {{Lsf}} class</summary>
                <type id="3" iconUrl="https://pfspipe.ipmu.jp/jira/secure/viewavatar?size=xsmall&amp;avatarId=10518&amp;avatarType=issuetype">Task</type>
                                            <priority id="10000" iconUrl="https://pfspipe.ipmu.jp/jira/images/icons/priorities/medium.svg">Normal</priority>
                        <status id="10002" iconUrl="https://pfspipe.ipmu.jp/jira/images/icons/statuses/generic.png" description="The issue is resolved, reviewed, and merged">Done</status>
                    <statusCategory id="3" key="done" colorName="green"/>
                                    <resolution id="10000">Done</resolution>
                                        <assignee username="price">price</assignee>
                                    <reporter username="hassan">hassan</reporter>
                        <labels>
                    </labels>
                <created>Thu, 7 Feb 2019 18:34:41 +0000</created>
                <updated>Mon, 4 Jan 2021 20:23:07 +0000</updated>
                            <resolved>Wed, 25 Mar 2020 22:34:15 +0000</resolved>
                                                    <fixVersion>6.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>6</watches>
                                                                <comments>
                            <comment id="15228" author="price" created="Wed, 3 Apr 2019 11:45:25 +0000"  >&lt;p&gt;I&apos;ve defined &lt;tt&gt;Lsf&lt;/tt&gt; as an abstract base class, and provided a couple of example subclasses.&lt;/p&gt;</comment>
                            <comment id="15612" author="rhl" created="Fri, 31 May 2019 20:24:10 +0000"  >&lt;p&gt;Glancing through the pull request it wasn&apos;t obvious that this class duck-types as a &lt;tt&gt;Psf&lt;/tt&gt;. Does it? &#160;Actually, I don&apos;t quite see why it can&apos;t be the same class (with a 1xN image) and some pybind11 magic to always do the .array.&lt;/p&gt;

&lt;p&gt;Why can&apos;t a Kernel be an &lt;tt&gt;afw.Image&lt;/tt&gt;? &#160;And I&apos;m a bit worried about the name clashing with an afw.math.Kernel in people&apos;s minds (not the code).&lt;/p&gt;

&lt;p&gt;Does this class support undersampled data? &#160;This isn&apos;t critical yet, but it may be (well, should be if Jim builds a good spectrograph).&lt;/p&gt;

&lt;p&gt;Why provide the computeStdev method? &#160;It&apos;s a na&#239;ve implementation &#8211; what is it for? &#160;Theoretically the stdev of a perfect diffraction grating is infinite (as it is for a perfect diffraction-limited PSF) so this isn&apos;t just a concern about noise.&lt;/p&gt;

&lt;p&gt;I can think of other methods (e.g. offset Lsf by delta) but I don&apos;t think we should try to invent them now.&lt;/p&gt;</comment>
                            <comment id="15621" author="price" created="Mon, 3 Jun 2019 18:39:19 +0000"  >&lt;p&gt;While the &lt;tt&gt;Lsf&lt;/tt&gt; is related to an LSST &lt;tt&gt;Psf&lt;/tt&gt; (in terms of history), it does not duck type as one. Is that a requirement? If so, can you give examples where you would make use of that?&lt;/p&gt;

&lt;p&gt;&lt;tt&gt;computeStdev&lt;/tt&gt; is the one-dimensional equivalent of &lt;a href=&quot;http://doxygen.lsst.codes/stack/doxygen/x_masterDoxyDoc/classlsst_1_1afw_1_1detection_1_1_psf.html#a8067ecbd3d52dffe8ff822500257d4fe&quot; class=&quot;external-link&quot; rel=&quot;nofollow&quot;&gt;&lt;tt&gt;Psf::computeShape&lt;/tt&gt;&lt;/a&gt;: it&apos;s the width of a line. Would a different name (&lt;tt&gt;computeFwhm&lt;/tt&gt;?) help?&lt;/p&gt;

&lt;p&gt;As currently implemented, the base class convenience implementation of &lt;tt&gt;computeArray&lt;/tt&gt; does not support undersampled data (it acts like LSST&apos;s &lt;tt&gt;Psf&lt;/tt&gt;, just in 1D). To handle that, we&apos;ll need to make a subclass that does something clever, or use a functional form like the &lt;tt&gt;GaussianLsf&lt;/tt&gt;.&lt;/p&gt;</comment>
                            <comment id="15622" author="rhl" created="Tue, 4 Jun 2019 11:26:16 +0000"  >&lt;p&gt;The LSF needs to duck-type as a PSF, both to make it easier to use and (more importantly) to allow code that models spectra to work on 1-D and 2-D spectra.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;</comment>
                            <comment id="16041" author="price" created="Wed, 11 Sep 2019 15:01:33 +0000"  >&lt;p&gt;I&apos;ve made the &lt;tt&gt;Lsf&lt;/tt&gt; duck type as an LSST &lt;tt&gt;Psf&lt;/tt&gt;. It will not work for C++ code (e.g., &lt;tt&gt;exposure.setPsf(lsf)&lt;/tt&gt; won&apos;t work) because it&apos;s defined in python, but it should work in &lt;tt&gt;Task&lt;/tt&gt; codes where the &lt;tt&gt;Psf&lt;/tt&gt; is provided separately.&lt;/p&gt;

&lt;p&gt;Please have another look.&lt;/p&gt;</comment>
                            <comment id="16948" author="price" created="Wed, 25 Mar 2020 22:34:15 +0000"  >&lt;p&gt;Addressed &lt;a href=&quot;https://pfspipe.ipmu.jp/jira/secure/ViewProfile.jspa?name=rhl&quot; class=&quot;user-hover&quot; rel=&quot;rhl&quot;&gt;rhl&lt;/a&gt;&apos;s comments and merged to master.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10000">
                    <name>Blocks</name>
                                            <outwardlinks description="blocks">
                                        <issuelink>
            <issuekey id="13329">PIPE2D-349</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="13307">PIPE2D-333</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10003">
                    <name>Relates</name>
                                            <outwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="13326">PIPE2D-346</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="11141">DAMD-9</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="13323">PIPE2D-343</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10500" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10006" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>PIPE2D-352</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_10010" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|02qprv:c8</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10100" key="com.atlassian.jira.plugin.system.customfieldtypes:userpicker">
                        <customfieldname>Reviewers</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>hassan</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10005" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="45">2DDRP-2019 C</customfieldvalue>
    <customfieldvalue id="46">2DDRP-2019 D</customfieldvalue>
    <customfieldvalue id="49">2DDRP-2019 E</customfieldvalue>
    <customfieldvalue id="55">2DDRP-2019 G</customfieldvalue>
    <customfieldvalue id="59">2DDRP-2019 H</customfieldvalue>
    <customfieldvalue id="62">2DDRP-2019 I</customfieldvalue>
    <customfieldvalue id="68">2DDRP-2019 J</customfieldvalue>
    <customfieldvalue id="93">2DDRP-2021 A</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10002" key="com.atlassian.jira.plugin.system.customfieldtypes:float">
                        <customfieldname>Story Points</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>4.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                        </customfields>
    </item>
</channel>
</rss>