<commit_before>pyNRC Paper Outline

Introduction
    - pyNRC is a set of Python-based tools for planning observations with JWST NIRCam
    - includes an ETC, a simple slope slope simulator, and raw data simulator
    - highlights features for coronagraphy for high contrast imaging, but can handle wide field imaging and grism spectroscopy
        - predict contrast performance of the coronagraphs
        - optimize detection algorithms for imaging of extrasolar planets
        - test our ability to accurately spectral information of exoplanet atmospheres and debris disk constituents
    - uses WebbPSF to simulate realistic PSFs
        - handles WFE variations through spatial and temporal alterations of the OPD map
    - includes detailed detector simulator to handle systematic uncertainties of data processing
    - mention other NIRCam simulators and their features
        - Guitarra
        - The ETC (pandeia)
        - STIPS (or whatever it's called these days)
        - PHOSIM

Creating Realistic PSFs
    - Wavelength-dependent PSFs calculate using WebbPSF
        - do not store grid of monochromatic PSFs
        - perform high-order polynomial fit to PSFs and store coefficients in a FITS file
        - PSFs generated with coefficients over a filter bandpass show negligible difference to those directly from WebbPSF
    - Procedure allows for quick PSF generation of arbitrary input spectrum
    - Field-dependent WFE values
        - modifies coefficients based on field position
    - Temporal WFE drift values
        - useful for observations with a coronagraphic sequence (Roll1, Roll2, Reference) 
    - 

Program Structure
    - Detector class (also stores multiaccum setup)
        - holds info on detector noise performance and desired operations
    - ngNRC
        - NIRCam noise generator
    - NIRCam instrument class
        - holds info on instrument setup 
        - Zodiacal bg emission (will use JWST Backgrounds if installed)
        - calculate saturation limits and sensitivities for a given NIRCam configuration
        - determine optimum ramp configuration to maximize sensitivities
        - simulate PSF images
        - simulate ramp exposures from ideal slope images
<commit_msg>Update outline.txt<commit_after>pyNRC Paper Outline

Introduction
    - pyNRC is a set of Python-based tools for planning observations with JWST NIRCam
    - includes an ETC, a simple slope slope simulator, and raw data simulator
    - highlights features for coronagraphy for high contrast imaging, but can handle wide field imaging and grism spectroscopy
        - predict contrast performance of the coronagraphs
        - optimize detection algorithms for imaging of extrasolar planets
        - test our ability to accurately spectral information of exoplanet atmospheres and debris disk constituents
    - uses WebbPSF to simulate realistic PSFs
        - handles WFE variations through spatial and temporal alterations of the OPD map
    - includes detailed observation ramp simulator
        - adds systematic offsets to science data and reference pixels
        - to test systematic uncertainties of data processing
    - mention other NIRCam simulators and their features
        - Guitarra
        - The ETC (pandeia)
        - STIPS (or whatever it's called these days)
        - PHOSIM

Creating Realistic PSFs
    - Wavelength-dependent PSFs calculate using WebbPSF
        - do not store grid of monochromatic PSFs
        - perform high-order polynomial fit to PSFs and store coefficients in a FITS file
        - PSFs generated with coefficients over a filter bandpass show negligible difference to those directly from WebbPSF
        - utilize multiple processors for PSF generation
    - Procedure allows for quick PSF generation of arbitrary input spectrum
    - Custom OPDs
    - Field-dependent WFE values
        - modifies coefficients based on field position
        - based on empirical measurements of NIRCam instrument during ISIM CV3 level testing
    - Temporal WFE drift values
        - change in thermal state of OTE after sun-telescope angle induces change in WFE Zernike components
        - primarily focus (?)
        - useful for observations with a coronagraphic sequence (Roll1, Roll2, Reference) 
    - 

Program Structure
    - NIRCam instrument class
        - holds info on instrument setup (filter, pupil, module, detector)
        - Zodiacal bg emission (defers to JWST Backgrounds if installed)
        - calculate saturation limits and sensitivities for a given NIRCam configuration
        - determine optimum ramp configuration to maximize sensitivities
        - simulate PSF images
        - simulate ramp exposures from ideal slope images
        - stores SIAF info
    - Detector class (also stores multiaccum setup)
        - basic detector performance (noise, dark current, well depth, etc.) 
        - detailed detector timing information
        - allows user to specify desired SCA configuration
            - FULL, STRIPE, WINDOW, subarray size and position
        - configure MULTIACCUM parameters
            - number of resets, reads, integrations, etc.
            - pre-defined patterns: RAPID, BRIGHT1, MEDIUM8, etc.
    - ngNRC
        - NIRCam detector noise generator
        - NIRCams-specific implementation of ngHXRG
    - Instrument subclasses
        - nrc_hci
        - nrc_grism (planned)
        - nrc_timeseries (planned)
    - Observation classes
        - obs_hci
        - obs_wfss
        - obs_ts_grism
        - obs_ts_photometry
    - Other tools

Exposure Time Calculator

Coronagraphic Simulations

Example observations
{'fraction_non_alphanumeric': 0.03103937566512948, 'fraction_numerical': 0.0012415750266051792, 'mean_word_length': 2.739389920424403, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '760773', 'n_tokens_mistral': 1397, 'n_tokens_neox': 1268, 'n_words': 643}