From bab28e574c79a015b2601b7dcd8a5b8100621fdc Mon Sep 17 00:00:00 2001 From: Chris Walter Date: Mon, 10 Jul 2023 14:56:00 -0400 Subject: [PATCH 01/33] Update installation instuctions/files. Make a working exanmple to test installation in the examples sub-directory and add a section to the installation instruction about how to test the install. --- doc/install.rst | 27 +++++++++++++++------ examples/README.md | 35 ++++++--------------------- examples/example_instance_catalog.txt | 1 + examples/imsim-user.yaml | 20 +++++++++++++++ 4 files changed, 49 insertions(+), 34 deletions(-) create mode 100644 examples/imsim-user.yaml diff --git a/doc/install.rst b/doc/install.rst index afbfd3ce..8fc372af 100644 --- a/doc/install.rst +++ b/doc/install.rst @@ -24,11 +24,11 @@ Load and setup the science pipelines First you need to setup the science pipelines. This involves sourcing a setup file and then using the Rubin *eups* commands to set them up. -.. note:: +.. note:: You will need at least version ``w_2023_21-dev`` of the science pipelines to complete these instructions. - Also note: the cvmfs distribution is a read-only distribution. This means you cannot add packages to the included conda environment and packages you install via *pip* will be installed in the user area. If you need a *conda* environment you can modify while running *imSim*, then you may consider :ref:`method_2` below. + Also note: the cvmfs distribution is a read-only distribution. This means you cannot add packages to the included conda environment and packages you install via *pip* will be installed in the user area. If you need a *conda* environment you can modify while running *imSim*, then you may consider :ref:`method_2` below. Source the appropriate setup script (note the -ext in the name) and then setup the distribution (if you are on MacOS use darwin-x86_64 instead of linux-x86_64). @@ -104,7 +104,7 @@ Now you can run *imSim* from anywhere with the command: Method 2: *Conda* and the *Stackvana* package --------------------------------------------- -If using the *cvmfs* distribution is not an appropriate solution, you can install a standalone pre-built conda distribution from conda-forge instead. With this method, you will install a version of lsst_distrib which has been compiled for conda along with extra needed dependencies. +If using the *cvmfs* distribution is not an appropriate solution, you can install a standalone pre-built conda distribution from conda-forge instead. With this method, you will install a version of lsst_distrib which has been compiled for conda along with extra needed dependencies. Install *Conda* ~~~~~~~~~~~~~~~ @@ -117,7 +117,7 @@ First install conda from `Miniforge ` bash Mambaforge-$(uname)-$(uname -m).sh -.. note:: +.. note:: If you prefer you can use `MiniConda `__ or your own conda installation but, in that case, be careful to specify that you want to use the conda-forge channel. @@ -125,7 +125,7 @@ Next, create a *Conda* environment and activate it. .. code-block:: sh - conda create -n imSim + conda create -n imSim conda activate imSim Clone *imSim* and dependencies @@ -192,7 +192,7 @@ installed. The easiest method is to pull the latest *imSim* environment *Docker* image from `DockerHub `__. This has the -latest LSST stack and version of *imSim* preinstalled: +latest LSST stack and version of *imSim* preinstalled: .. code-block:: sh @@ -208,7 +208,7 @@ To then run the image do: docker run -it --privileged --rm lsstdesc/imsim-env:latest *imSim* is installed under ``/home/lsst``. The LSST -stack is activated automatically on the startup of the image. +stack is activated automatically on the startup of the image. .. note:: If you have trouble accessing the internet within the container, you may have to add ``--network host`` to the ``docker run`` command. @@ -319,3 +319,16 @@ The available images can be listed via .. code-block:: sh docker images + +Testing your installation +-------------------------------------------------- + +If the installation has been done correctly you should now be able to go to a working area of your choosing and run the program. + +imSim is run by executing the galsim executable with an imSim yaml file as input: + +.. code-block:: sh + + galsim $IMSIM_HOME/imSim/examples/imsim-user.yaml + +The program should run to completion without errors. diff --git a/examples/README.md b/examples/README.md index 24ba13d9..a5c14cee 100644 --- a/examples/README.md +++ b/examples/README.md @@ -1,31 +1,12 @@ -To use imSim you should first follow the instruction in the README.md in the main directory of this repository to make sure it is setup. Then, you can see a list of possible commands by issuing: +This directory contains some config files and instance catalogs that will +allow you to test running imSim and show you examples of the config language. -imsim.py --help +_Simple example of running and imSim config file in this directory:_ -There you will see a set of commands-line flags you can use to control the program including the choice of PSF, how the sensors are simulated etc. You can also change more technical settings in a config file. The default config file is in data/default_imsim_configs. You can edit this file or, better, make a new file which you can then use with the --config-file command line option. +To test that the your installed version of imSim is working you can run one the files in this directory. If you have setup imSim properly, from any working area you should be able to: -This directory contains a simple example instance catalog (the input to imSim) you can use to test the program called example_instance_catalog.txt +``` +galsim $IMSIM_HOME/imSim/examples/imsim-user.yaml +``` -Here are some examples of how you would use it. - -_Simple run with all options at their defaults:_ - -imsim.py example_instance_catalog.txt - -_Use a parametric Kolmogorov PSF_ - -imsim.py --psf Kolmogorov example_instance_catalog.txt - -_Use an atmospheric PSF and disable the sensor model_ - -imsim.py --psf Atmospheric --disable_sensor_model example_instance_catalog.txt - -_Use an atmospheric PSF, disable the sensor model, and restrict the simulation to only one sensor_ - -imsim.py --psf Atmospheric --disable_sensor_model --sensor 'R:2,2 S:1,1' example_instance_catalog.txt - -_Use an atmospheric PSF, disable the sensor model, restrict the simulation to only one sensor, and write a centroid file that contains information on every source that was drawn_ - -imsim.py --psf Atmospheric --disable_sensor_model --sensor 'R:2,2 S:1,1' --create_centroid_file example_instance_catalog.txt - -Note by default imSim will not overwrite existing fits files. So, to re-run you should either remove the previous files or, if you would like to change the behavior, change the value of the 'overwrite' parameter in the config file. +and the program should run to completion without errors. diff --git a/examples/example_instance_catalog.txt b/examples/example_instance_catalog.txt index cb6d3795..12f73aa3 100644 --- a/examples/example_instance_catalog.txt +++ b/examples/example_instance_catalog.txt @@ -17,6 +17,7 @@ seed 398414 seeing 0.7501810 sunalt -19.2243392 vistime 30.0000000 +seqnum 0 object 32166136206340 60.35106868564643 -38.07295811585677 28.9873927 starSED/phoSimMLT/lte035-4.5-1.0a+0.4.BT-Settl.spec.gz 0 0 0 0 0 0 point none CCM 0.01014165 3.1 object 32166149840900 60.54540715809316 -38.14696167280977 28.8487927 starSED/phoSimMLT/lte035-4.5-1.0a+0.4.BT-Settl.spec.gz 0 0 0 0 0 0 point none CCM 0.0112685 3.1 object 32166138828804 60.48668706825654 -38.08876978890361 26.3186719 starSED/kurucz/km20_4500.fits_g00_4520.gz 0 0 0 0 0 0 point none CCM 0.01014165 3.1 diff --git a/examples/imsim-user.yaml b/examples/imsim-user.yaml new file mode 100644 index 00000000..ea78c321 --- /dev/null +++ b/examples/imsim-user.yaml @@ -0,0 +1,20 @@ +# Use imSim custom modules +modules: + - imsim + +# Get most of the configuration from the imSim named template +template: imsim-config + +input.instance_catalog.file_name: $os.environ.get('IMSIM_HOME')+'/imSim/examples/example_instance_catalog.txt' +input.instance_catalog.sed_dir: $os.environ.get('SIMS_SED_LIBRARY_DIR') + +input.instance_catalog.sort_mag: False + +input.tree_rings.only_dets: [R22_S11] + +input.opsim_data: + file_name: $os.environ.get('IMSIM_HOME')+'/imSim/examples/example_instance_catalog.txt' + +#image.nobjects: 5 + +output.dir: output From f006878ccdcdcc87db09ea3a82b27000e5a53efa Mon Sep 17 00:00:00 2001 From: Chris Walter Date: Mon, 10 Jul 2023 17:59:00 -0400 Subject: [PATCH 02/33] Some reorganization and 1st draft of usage section. Add new sections for the config system and using using imSim. Re-title some sections and re-order them in the overall TOC. --- doc/config.rst | 2 ++ doc/features.rst | 8 ++++---- doc/index.rst | 4 +++- doc/module-use.rst | 3 +++ doc/usage.rst | 50 +++++++++++++++++++++++++++++++++++++--------- 5 files changed, 53 insertions(+), 14 deletions(-) create mode 100644 doc/config.rst create mode 100644 doc/module-use.rst diff --git a/doc/config.rst b/doc/config.rst new file mode 100644 index 00000000..7b76ebd9 --- /dev/null +++ b/doc/config.rst @@ -0,0 +1,2 @@ +The Config System +================= \ No newline at end of file diff --git a/doc/features.rst b/doc/features.rst index 92b0d367..4998725e 100644 --- a/doc/features.rst +++ b/doc/features.rst @@ -1,5 +1,5 @@ -Feature Matrix -############## +Features Implemented in imSim +############################# This summary table should give a high level overview of effects. For detailed information please make/link to a subpage or appropriate reference. @@ -261,8 +261,8 @@ Calibration Products - - -Effects -------- +Detailed Physical Effects Implemented in imSim +---------------------------------------------- .. toctree:: :maxdepth: 2 diff --git a/doc/index.rst b/doc/index.rst index 5aec1978..3af02a01 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -11,6 +11,8 @@ Contents :maxdepth: 2 install.rst + usage.rst + config.rst features.rst data-formats.rst - usage.rst + module-use.rst diff --git a/doc/module-use.rst b/doc/module-use.rst new file mode 100644 index 00000000..72b54597 --- /dev/null +++ b/doc/module-use.rst @@ -0,0 +1,3 @@ +Using the imSim module with other GalSim based Programs +======================================================= + diff --git a/doc/usage.rst b/doc/usage.rst index 96f2f168..01e17076 100644 --- a/doc/usage.rst +++ b/doc/usage.rst @@ -1,33 +1,55 @@ -Usage -===== +Using imSim +=========== -To run the example config, change into the *imSim* source directory, -then +imSim is implemented as a set of modules that are executed by the *GalSim* program. In order to run *imSim* you create a YAML file which imports and configures the modules. *imSim* builds on basic *GalSim* functionality so when using *imSim* you will configure both *GalSim* and *imSim* functionality. In this section a simple config file is demonstrated. You can find a more complete description of the config system option in the :doc:`Config System `. + +*imSim* is packaged with some YAML config files for it's own use which you can look at. You can see some in the "*config*" and also the "*examples*" directory. + +To start copy the two files ``imsim-user.yaml`` and ``example_instance_catalog.txt`` to a working directory. Edit the ``imsim-user.yaml`` file to point to your local copy of the ``example_instance_catalog.txt`` file by removing the two instances of ``$os.environ.get('IMSIM_HOME')+`` from the file. + +Now try to run the file with the command: .. code-block:: sh - cd config galsim imsim-user.yaml -Here is another minimal scenario, using a one-star catalog: + +*GalSim* will process the YAML file and open and read the example instance catalog file generating a fits file which corresponds to the listed sources. + +*imSim* has more than one way to specify sources. Instance catalogs are simple text files best suited to making small handcrafted inputs. For compatibility purposes, They follow the format of the *PhoSim* program which is documented on `PhoSim Web Site `__. For more complex and large area simulations *imSim* utilizes an API based system known as `skyCatalogs `__. By querying the SkyCatalog via it's API it can return a list to *imSim* of all the objects at that position in the the sky at that time. *skyCatalogs* can return both static and time dependent sources and can be configured to serve objects from both synthetic sky maps and true lists of sources such as from *Gaia*. + +It is also important to specify *MetaData* to *imSim* which supplies necessary information such as the location, pointing, filters being used and time that the exposure was taken. This information can be manually specified in the YAML files, given as part of a text based instance catalog, or retrieved from a Rubin Observatory *OpSim* file which is the simulated output of a Rubin Schedular execution. + +Almost every element of the system from the atmosphere to optics, to details of the electronics readout can be specified through the config system in the YAML files. Here, we will give an example of how to construct a very simple instance catalog which will image a singe very bright magnitude 16 star. + +Each YAML file begins by importing the imSim code which is located in a module. It then reads a template yaml file that configures many of the of the imSim classes. Everything in your user file will modify or add to those values. The file is located in ``config/imsim-config.yaml`` and is an excellent reference. + +The rest of this file configures the input and output options. .. code-block:: yaml :caption: 1-star.yaml - --- - modules: [imsim] + modules: + - imsim + template: imsim-config + input.instance_catalog.sed_dir: $os.environ.get('SIMS_SED_LIBRARY_DIR') + input.instance_catalog.file_name: 1-star.txt input.opsim_data.file_name: 1-star.txt + input.tree_rings.only_dets: [R22_S11] output.dir: output output.det_num: type: List items: [94] + output.nfiles: 1 - output.truth: "" + + +This file contains the needed metadata and a single star. .. code-block:: :caption: 1-star.txt @@ -51,4 +73,14 @@ Here is another minimal scenario, using a one-star catalog: seeing 1.0 sunalt -50.0 vistime 33.0 + seqnum 0 object MS_567_8a 0.0 0.0 16.0 starSED/phoSimMLT/lte033-4.5-1.0a+0.4.BT-Settl.spec.gz 0 0 0 0 0 0 point none CCM 0.0635117705 3.1 + +After creating these files you can: + +.. code-block:: sh + + galsim 1-star.yaml + + +In the output directory \ No newline at end of file From d4930ead0bb8c03c97e933c91942d680b7c196c6 Mon Sep 17 00:00:00 2001 From: Chris Walter Date: Mon, 10 Jul 2023 18:00:50 -0400 Subject: [PATCH 03/33] Missed some text on last commit. --- doc/usage.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/usage.rst b/doc/usage.rst index 01e17076..26ee7fc0 100644 --- a/doc/usage.rst +++ b/doc/usage.rst @@ -16,7 +16,7 @@ Now try to run the file with the command: *GalSim* will process the YAML file and open and read the example instance catalog file generating a fits file which corresponds to the listed sources. -*imSim* has more than one way to specify sources. Instance catalogs are simple text files best suited to making small handcrafted inputs. For compatibility purposes, They follow the format of the *PhoSim* program which is documented on `PhoSim Web Site `__. For more complex and large area simulations *imSim* utilizes an API based system known as `skyCatalogs `__. By querying the SkyCatalog via it's API it can return a list to *imSim* of all the objects at that position in the the sky at that time. *skyCatalogs* can return both static and time dependent sources and can be configured to serve objects from both synthetic sky maps and true lists of sources such as from *Gaia*. +*imSim* has more than one way to specify sources. Instance catalogs are simple text files best suited to making small handcrafted inputs. For compatibility purposes, They follow the format of the *PhoSim* program which is documented on `PhoSim Web Site `__. For more complex and large area simulations *imSim* utilizes an API based system known as `skyCatalogs `__. By querying the *skyCatalog* via it's API it can return a list to *imSim* of all the objects at that position in the the sky at that time. *skyCatalogs* can return both static and time dependent sources and can be configured to serve objects from both synthetic sky maps and true lists of sources such as from *Gaia*. The *skyCatalog* can also serve as a source of truth information when later analyzing simulated data. It is also important to specify *MetaData* to *imSim* which supplies necessary information such as the location, pointing, filters being used and time that the exposure was taken. This information can be manually specified in the YAML files, given as part of a text based instance catalog, or retrieved from a Rubin Observatory *OpSim* file which is the simulated output of a Rubin Schedular execution. @@ -83,4 +83,4 @@ After creating these files you can: galsim 1-star.yaml -In the output directory \ No newline at end of file +In the 'output' directory (that you specified in the YAML file), you will find three files an *eimage* FITS file (which contains the true electron informationon the sensor), an *amp* FITS file which contains the full electronic readout of each amplifier on the sensor (each in its own HDU), and a text centroid file with truth information on where the source was located. The FITS files are viewable with a program such as *ds9*. \ No newline at end of file From 8893cceae326eb4b5fadeda2edd0668d1b2773b9 Mon Sep 17 00:00:00 2001 From: Chris Walter Date: Tue, 11 Jul 2023 11:23:25 -0400 Subject: [PATCH 04/33] Proofreading corrections to usage file. --- doc/usage.rst | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/doc/usage.rst b/doc/usage.rst index 26ee7fc0..48a7f6d9 100644 --- a/doc/usage.rst +++ b/doc/usage.rst @@ -3,9 +3,9 @@ Using imSim imSim is implemented as a set of modules that are executed by the *GalSim* program. In order to run *imSim* you create a YAML file which imports and configures the modules. *imSim* builds on basic *GalSim* functionality so when using *imSim* you will configure both *GalSim* and *imSim* functionality. In this section a simple config file is demonstrated. You can find a more complete description of the config system option in the :doc:`Config System `. -*imSim* is packaged with some YAML config files for it's own use which you can look at. You can see some in the "*config*" and also the "*examples*" directory. +*imSim* is packaged with some YAML config files for it's own use which you can look at if you would like to see some examples. You can see some in the "*config*" and also the "*examples*" directory. -To start copy the two files ``imsim-user.yaml`` and ``example_instance_catalog.txt`` to a working directory. Edit the ``imsim-user.yaml`` file to point to your local copy of the ``example_instance_catalog.txt`` file by removing the two instances of ``$os.environ.get('IMSIM_HOME')+`` from the file. +To get started copy the two files ``imsim-user.yaml`` and ``example_instance_catalog.txt`` to a working directory. Edit the ``imsim-user.yaml`` file to point to your local copy of the ``example_instance_catalog.txt`` file by removing the two instances of ``$os.environ.get('IMSIM_HOME')+`` from the file. Now try to run the file with the command: @@ -14,17 +14,17 @@ Now try to run the file with the command: galsim imsim-user.yaml -*GalSim* will process the YAML file and open and read the example instance catalog file generating a fits file which corresponds to the listed sources. +*GalSim* will process the YAML file and open and read the example instance catalog file, generating a FITS file which corresponds to the listed sources. -*imSim* has more than one way to specify sources. Instance catalogs are simple text files best suited to making small handcrafted inputs. For compatibility purposes, They follow the format of the *PhoSim* program which is documented on `PhoSim Web Site `__. For more complex and large area simulations *imSim* utilizes an API based system known as `skyCatalogs `__. By querying the *skyCatalog* via it's API it can return a list to *imSim* of all the objects at that position in the the sky at that time. *skyCatalogs* can return both static and time dependent sources and can be configured to serve objects from both synthetic sky maps and true lists of sources such as from *Gaia*. The *skyCatalog* can also serve as a source of truth information when later analyzing simulated data. +*imSim* has more than one way to specify sources. Instance catalogs are simple text files best suited to making small handcrafted inputs. For legacy and compatibility purposes, They follow the format of the *PhoSim* program inputs which are documented on `PhoSim Web Site `__. For more complex and large area simulations, *imSim* utilizes an API based system known as `skyCatalogs `__. By querying the *skyCatalog* via its API it can return a list to *imSim* of all the objects at that position in the the sky at that time. *skyCatalogs* can return both static and time dependent sources and can be configured to serve objects from both synthetic sky maps and true lists of sources such as from *Gaia*. The *skyCatalog* can also serve as a source of truth information when later analyzing simulated data. It is also important to specify *MetaData* to *imSim* which supplies necessary information such as the location, pointing, filters being used and time that the exposure was taken. This information can be manually specified in the YAML files, given as part of a text based instance catalog, or retrieved from a Rubin Observatory *OpSim* file which is the simulated output of a Rubin Schedular execution. -Almost every element of the system from the atmosphere to optics, to details of the electronics readout can be specified through the config system in the YAML files. Here, we will give an example of how to construct a very simple instance catalog which will image a singe very bright magnitude 16 star. +Almost every element of the system from the atmosphere to optics, to details of the electronics readout can be specified through the config system in the YAML files. Here, we will give an example of how to construct a very simple instance catalog which will image a singe bright, magnitude 16 star. The photons from this bright star will be raytraced through the atmosphere and optics of the telescope and then read out in the LSSTCam sensors. Each YAML file begins by importing the imSim code which is located in a module. It then reads a template yaml file that configures many of the of the imSim classes. Everything in your user file will modify or add to those values. The file is located in ``config/imsim-config.yaml`` and is an excellent reference. -The rest of this file configures the input and output options. +The rest of the file configures the input and output options. You should make a copy yourself. .. code-block:: yaml :caption: 1-star.yaml From 64581182f1a2c42474d739d79c0dc340cb2951c0 Mon Sep 17 00:00:00 2001 From: Chris Walter Date: Tue, 11 Jul 2023 12:01:05 -0400 Subject: [PATCH 05/33] Start of config section. --- doc/config.rst | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/doc/config.rst b/doc/config.rst index 7b76ebd9..e88ec929 100644 --- a/doc/config.rst +++ b/doc/config.rst @@ -1,2 +1,9 @@ The Config System -================= \ No newline at end of file +================= + +*imSim* utilizes the *imSim* config system to configure itself. This choice was made for several reasons. As *GalSim* is used to render the actual images, using *GalSim* itself is a natural choice to set its configuration options. Perhaps most importantly, by implementing the *imSim* code as a *GalSim* module it becomes possible to use it freely with other *GalSim* based modules. So, other programs in the *GalSim* ecosystem can also call and configure the *imSim* module and could (for example) utilize the *imSim* electronics readout algorithms as part of their functionality. + +The *GalSim* config system is described in the `GalSim documentation `__. You should start there to understand the basic functionality of the config system. If you look at the ``config/imsim-config.yaml`` distributed with *imSim* you can see the *imSim's* default configuration. When you read in a YAML file you will be adding to and modifying these results. + +Each feature in the *imSim* module is implemented as a class which can be configured. In this section, we list list the *imSim* classes along with the config options that you can set. + From cd8851c8530f533801105cdef65439ec5b6af085 Mon Sep 17 00:00:00 2001 From: Chris Walter Date: Thu, 13 Jul 2023 13:39:11 -0400 Subject: [PATCH 06/33] Start a note about Apple Silicon and update weekly. --- doc/install.rst | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/doc/install.rst b/doc/install.rst index 8fc372af..ae63a3d6 100644 --- a/doc/install.rst +++ b/doc/install.rst @@ -8,6 +8,11 @@ Installation Instructions These instructions were last updated June of 2023. +.. note:: + + If you are using MacOS on Apple Silicon then .... `Need to figure out what is true to say` + + The *imSim* software is *GalSim* based, and it also depends on the `LSST science pipelines `_ and Rubin simulation framework. It is easiest to work in an environment where someone else has already built the science pipelines, simulation packages and GalSim for you. Luckily, several such options exist. We list four options below in increasing levels of complexity. These options all use either a *conda* environment or a *docker* image. @@ -26,7 +31,7 @@ First you need to setup the science pipelines. This involves sourcing a setup f .. note:: - You will need at least version ``w_2023_21-dev`` of the science pipelines to complete these instructions. + You will need at least version ``w_2023_27`` of the science pipelines to complete these instructions. Also note: the cvmfs distribution is a read-only distribution. This means you cannot add packages to the included conda environment and packages you install via *pip* will be installed in the user area. If you need a *conda* environment you can modify while running *imSim*, then you may consider :ref:`method_2` below. From 31afcc1084a59f27798526c5f749a5d837454b04 Mon Sep 17 00:00:00 2001 From: Chris Walter Date: Thu, 13 Jul 2023 16:30:44 -0400 Subject: [PATCH 07/33] Change "note" to a "warning" --- doc/install.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/install.rst b/doc/install.rst index ae63a3d6..1d6311ef 100644 --- a/doc/install.rst +++ b/doc/install.rst @@ -8,9 +8,9 @@ Installation Instructions These instructions were last updated June of 2023. -.. note:: +.. warning:: - If you are using MacOS on Apple Silicon then .... `Need to figure out what is true to say` + If you are using MacOS on Apple Silicon then .... ``Need to figure out what is true to say`` The *imSim* software is *GalSim* based, and it also depends on the `LSST science pipelines `_ and Rubin simulation framework. It is easiest to work in an environment where someone else has already built the science pipelines, simulation packages and GalSim for you. Luckily, several such options exist. From 0584f058a9f20fa89b5297488c79ecac9ae3e810 Mon Sep 17 00:00:00 2001 From: Chris Walter Date: Thu, 13 Jul 2023 18:26:44 -0400 Subject: [PATCH 08/33] First draft of config.rst without key descriptions --- doc/config.rst | 200 ++++++++++++++++++++++++++++++++++- doc/validation/tree-ring.rst | 2 + 2 files changed, 200 insertions(+), 2 deletions(-) diff --git a/doc/config.rst b/doc/config.rst index e88ec929..232176d4 100644 --- a/doc/config.rst +++ b/doc/config.rst @@ -1,9 +1,205 @@ +################# The Config System -================= +################# -*imSim* utilizes the *imSim* config system to configure itself. This choice was made for several reasons. As *GalSim* is used to render the actual images, using *GalSim* itself is a natural choice to set its configuration options. Perhaps most importantly, by implementing the *imSim* code as a *GalSim* module it becomes possible to use it freely with other *GalSim* based modules. So, other programs in the *GalSim* ecosystem can also call and configure the *imSim* module and could (for example) utilize the *imSim* electronics readout algorithms as part of their functionality. +*imSim* utilizes the *imSim* config system to configure itself. This choice was made for several reasons. As *GalSim* is used to render the actual images, using *GalSim* itself is a natural choice for configuration. Perhaps most importantly, by implementing the *imSim* code as a *GalSim* module it becomes possible to use it freely with other *GalSim* based modules. So, other programs in the *GalSim* ecosystem can also call and configure the *imSim* module and could (for example) utilize the *imSim* electronics readout algorithms as part of their functionality. The *GalSim* config system is described in the `GalSim documentation `__. You should start there to understand the basic functionality of the config system. If you look at the ``config/imsim-config.yaml`` distributed with *imSim* you can see the *imSim's* default configuration. When you read in a YAML file you will be adding to and modifying these results. + + + You should read the `GalSim documentation `__ for a full description of the Config system. However, there is one very important concept that is not always immediately obvious to users but is extremely important to understand the section below. + + Consider this seemingly very simple piece of YAML configuration: + + .. code-block:: yaml + :caption: Variable Use + + input: + + tree_rings: + file_name: "tree_ring_parameters_2018-04-26.txt" + + + image: + type: LSST_Image + + sensor: + type: Silicon + treering_center: { type: TreeRingCenter, det_name: $det_name } + treering_func: { type: TreeRingFunc, det_name: $det_name } + + output: + type: LSST_CCD + + camera: LsstCam + + + What is happening here is that the ``tree_rings`` command in the ``input`` section is reading a text file included with *imSim*. Upon read in it creates two types of Python dictionaries which are keyed off of the detector name. One dictionary returns the center of the tree rings, one the form of the function. In the ``sensor`` description, it expects a center and function, and we pass the two dictionaries created earlier with a detector key to them as input. The ``$det_name`` is a variable you can use that was added by the ``LSST_CCD`` keyword in the output section. It knows what detector is currently being written out. You will see variations on this pattern repeated many times in the config files. + Each feature in the *imSim* module is implemented as a class which can be configured. In this section, we list list the *imSim* classes along with the config options that you can set. +Input types +=========== + +These classes define the user configurable parts of the ``input`` section of the configuration YAML files. They define how you should read the both the metadata and object lists that will be simulated, how the telescope optics should be configured, how the brightness of the night sky is modeled, how the atmospheric PSF is produced, how you should read in data files that describe silicon sensor effects, and how you can read in interim check-pointed files that were written in previous *imSim* runs. Here we list the input types which are added my the *imSim* module. + +Instance catalogs +----------------- + +Instance catalogs are text files best suited to making small handcrafted inputs. For legacy and compatibility purposes, They follow the format of the *PhoSim* program inputs which are documented on `PhoSim Web Site `__. The file should contain a a header including metadata describing the observation and a list of sources. + +- RegisterInputType('instance_catalog', +- RegisterValueType('InstCatWorldPos' +- RegisterObjectType('InstCatObj' +- RegisterSEDType('InstCatSED' + + +Sky Catalogs +------------ + +Instance catalogs are text based and utilize a lot of disk space for the information contained in them. Also, one instance catalog is needed for each visit, even if those visits take place at the exact same position on the sky. This causes enormous duplication of information. Instead, large area simulations, *imSim* utilizes an API based system known as `skyCatalogs `__. The *skyCatalog* presents a unified interface to *imSim* via an API of databases that contain all of the object in the sky. By configuring *imSim* to use the *skyCatalog* API only metadata for the visits are needed. *imSim* will retrieve a list of all of the objects it needs to render through the interface. *skyCatalogs* can contain static and transient information and databases exist both for synthetic skies and true sources of information such as the Gaia catalog. The *skyCatalog* can also serve as a source of truth information when later analyzing simulated data. + + +- RegisterObjectType('SkyCatObj' +- RegisterValueType('SkyCatWorldPos' + + +OpSim Data +---------- + +.. note:: + + We need to rationalize this and figure out the best approach. It's hard to explain now. + +Each visit requires metadata that describes the time of exposure, the filter being employed, the direction that the telescope is pointing etc. There are several ways to pass this information to *imSim*. You can include the information in the top of an instance catalog, you can give it the output of of a Rubin Operational Simulator simulation which will give a list of visits with all of the needed information, or you can manually specify information in the YAML file itself. + +This input type allows you to specify file inputs which contain this information. + + Will need to say more about other ways too. Do it here? + +- RegisterValueType('OpsimData' +- RegisterBandpassType('OpsimBandpass' + + +Telescope Configuration +----------------------- + +The optical system of the telescope can be configured including optical aberrations, the state of active optics system, variations due to temperature etc. Individual actuators and other elements of the optics system can also be configured as an input before the simulation starts. + +If the photons are ray-traced through the optics with the `Batoid package `__ photons will be modified by the changes as they propagate through the optics. See :ref:`the stamp keyword ` below for details. + +- TelescopeLoader(DetectorTelescope)) + +Sky Model +--------- + +Including the skyModel will load the Rubin Simulation Sky Model from the rubin-sims package. If you have loaded this module, you will will be able top to refer the ``skyLevel`` variable in the image section to set the brightness of the sky. You can also use the ``apply_sky_gradient`` option in the image section to make the sky level vary over each sensor. + +- RegisterInputType('sky_model' +- RegisterValueType('SkyLevel' + +Atmospheric PSF +---------------- + +The class is used to create the PSF which is induced by the atmosphere. There are two parametric PSFs available: a double Gaussian and a Kolmogorov PSF. The ``AtmosphericPSF`` type is a fully ray-traced turbulent atmosphere with multiple atmospheric layers all of which can have their parameters specified. Additionally, you can optionally add a parametric PSF screen which simulates the Rubin Optics. + +.. warning:: + You should not attempt to use the option to add parametric optics if you are using fully ray-traced optics. Otherwise, you will simulate the optics twice. See See :ref:`the stamp keyword ` below how to activate the ray-traced mode. + +- RegisterObjectType('AtmosphericPSF' +- RegisterObjectType('DoubleGaussianPSF' +- RegisterObjectType('KolmogorovPSF' + +Tree Rings +---------- + +Tree-rings are a silicon sensor effect induced by internal electric fields in the 3D structure of the silicon CCD. The fields are created by internal variations in dopant concentration that form while the silicon boule is being grown. You can find more about *imSim*'s implementation of tree rings in :ref:`the Tree Ring validation section `. This keyword tells imSim where to find the data file which describes the parameters to be used when the effect is turned on. It creates dictionaries that can be used by the LSST sensor description in :ref:`LSST Camera ` section below. + +- RegisterInputType('tree_rings', +- RegisterValueType('TreeRingCenter' +- RegisterValueType('TreeRingFunc' + +Checkpointing +------------- + +As imSim runs, if this option is turned on, it will periodically check-point its progress, writing out its interim output as it runs. Then, on re-running, it will use this output so as to not redo previous calculations. This has two main use-cases. The first is the case where you are rerunning several times. This will avoid recreating sensors that have already been simulated. The 2nd main use case is for if a job is stopped before it completes. This is particularly common when using a batch system with time-limits. This option allows you to restart your job and pick where you left off. These keywords tell *imSim* where to find the checkpoint files and how they are named. + +.. warning:: + + Be careful to manually delete any check-point files if you have made any changes to to the configuration between runs. Currently, *imSim* only checks if a file for a individual sensor already exists. + +- RegisterInputType('checkpoint', + + +Image types +=========== + +These classes define how to draw images. The basic *GalSim* image types include 'Single', 'Tiled', and 'Scattered'. *imSim* adds a new type of image that can be used along with a new type of WCS object that uses ray-traced photons to map out a TAN-SIP WCS. + +.. _LSST-Camera-label: + +LSST Camera Images +------------------ + +The ``LSST_Image`` type is a version of the *GalSim* "Scattered Image" image class that has been modified to understand how to draw the Rubin sky background and how to apply effects such as vignetting to the sky and certain bright objects. + +*imSim* also registers a new type of WCS object. When this WCS is chosen the `Batoid ray-tracing package `__ traces a set of rays through the optics and fits the result to create a WCS which accurately represents the current state of the telescope optics. + +- RegisterImageType('LSST_Image', LSST_ImageBuilder()) + +- RegisterWCSType('Batoid', BatoidWCSBuilder(), input_type="telescope") +- RegisterWCSType('Dict' + +Image Calibration Flats +----------------------- + + *imSim* also supplies a ```LSST_Flat`` image type. Calibration flats have extremely high background levels and special file, memory and SED handling are employed in this case in order to optimize computational efficiency. + + - RegisterImageType('LSST_Flat', LSST_FlatBuilder()) + +.. _stamp-label: + +StampTypes +========== + +The Stamp drawing code does the main work to actually render the image of an astronomical object. *imSim* adds the ``LSST_Silicon`` type which understands how to draw objects in the LSSTCam sensors including accounting for absorption in the atmosphere, integrating the SEDs of the objects with the chosen filter, ray-tracing photons through the optical system, adding diffractive spikes from the telescope spider, automatically using various approximations for both very bright and very dim objects etc. Those options are set with the parameters below. + +- RegisterStampType('LSST_Silicon', + + +There are a set of operations that can act on photons in *GalSim*. The are put together in a list and then all of the photons have those operations act on them in turn. This list of photon-operations are specified in the stamp section. You can read more about them in the *GalSim* documentation covering `GalSim Photon Ops `__. *imSim* adds a new set of Photon Operators to ray-trace the photons through the optical system using the `Batoid package `__. + +If you do not turn these on, you should use the parameterized optics available in the atmospheric PSF instead. You have three choices: + + - RubinOptics: + + Photons ray-traced though the Rubin optical system. + + - RubinDiffractionOptics: + + Ray-traced photons including the effects of diffraction when passing through edges like the telescope spiders. + + - RubinDiffraction: + + Diffractive effects only. + + +- RegisterPhotonOpType(identifier, + + +Output types +============ + +The output field is used to specify where to write output files and what format they should be. There are several possibilities, including FITS files before and after electronics readout, and various types of truth information. *imSim* adds the ``LSST_CCD`` type. It understands how to write "eimage" files which are true representations of the electrons in the CCD including signals from the objects and cosmic rays with important physics effects such as the brighter-fatter effect and tree-rings applied. + +It can also write "amp" files. These are fully readout electronics files with one amplifier per FITS HDU with all of the proper headers needed to be processed by the Rubin Science Pipelines. Both of these output formats can be examined with standard tools such as *ds9*. + +There are also several extra outputs available to the user including a centroid file containing the true position of the rendered sources, a list of optical path differences in the optical system, and a map of surface figure errors. + +- RegisterOutputType('LSST_CCD', LSST_CCDBuilder()) +- RegisterExtraOutput('readout', CameraReadout()) +- RegisterExtraOutput('opd', OPDBuilder()) + + + diff --git a/doc/validation/tree-ring.rst b/doc/validation/tree-ring.rst index 856e4fa7..3da2ce52 100644 --- a/doc/validation/tree-ring.rst +++ b/doc/validation/tree-ring.rst @@ -1,3 +1,5 @@ +.. _tree-ring-label: + Effect: Tree rings ################## From 3d7a2ded9384d03111306c3878b897b61bf0adf0 Mon Sep 17 00:00:00 2001 From: Chris Walter Date: Thu, 13 Jul 2023 18:30:49 -0400 Subject: [PATCH 09/33] Add LSSTCam section --- doc/index.rst | 1 + doc/lsst-camera.rst | 3 +++ 2 files changed, 4 insertions(+) create mode 100644 doc/lsst-camera.rst diff --git a/doc/index.rst b/doc/index.rst index 3af02a01..79e750ef 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -16,3 +16,4 @@ Contents features.rst data-formats.rst module-use.rst + lsst-camera.rst \ No newline at end of file diff --git a/doc/lsst-camera.rst b/doc/lsst-camera.rst new file mode 100644 index 00000000..3c15e628 --- /dev/null +++ b/doc/lsst-camera.rst @@ -0,0 +1,3 @@ +=============================== +Understanding the LSST Camera +=============================== \ No newline at end of file From c2b86fa66ddbf974717d914a6ede3752454dbc06 Mon Sep 17 00:00:00 2001 From: Chris Walter Date: Thu, 13 Jul 2023 18:35:48 -0400 Subject: [PATCH 10/33] Notes for contents --- doc/data-formats.rst | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/doc/data-formats.rst b/doc/data-formats.rst index aad66f36..2b39e731 100644 --- a/doc/data-formats.rst +++ b/doc/data-formats.rst @@ -1,2 +1,14 @@ -Data formats -############ +Data formats of input and output files +###################################### + +:: + + show how to use + + sky catalogs? + instance catalogs? + + + contents of files + viewing with ds9 etc + From d1f62b863ee89a8433c0206f34c534fc9f28795b Mon Sep 17 00:00:00 2001 From: Chris Walter Date: Thu, 13 Jul 2023 20:27:17 -0400 Subject: [PATCH 11/33] Fix title. --- doc/index.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/index.rst b/doc/index.rst index 79e750ef..ac938a8d 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -1,4 +1,6 @@ +================================================================== imSim: The GalSim based Rubin Observatory image simulation package +================================================================== imSim is a software package that simulates the Rubin Observatory and LSST survey. It produces simulated images from the 3.25 Gigapixel camera which are suitable to be processed through the Rubin Data Management pipeline. imSim produced the simulated exposures used in the DESC DC2 data challenge, and is the basis for the DP0 Data Set used by the wider Rubin Science community. imSim is open source software and its development is overseen in the DESC. From 34d187b93503eedd4b47614daaef0a1de3084cec Mon Sep 17 00:00:00 2001 From: Chris Walter Date: Mon, 17 Jul 2023 16:42:41 -0400 Subject: [PATCH 12/33] Add a new section for describing the optics. --- doc/lsst-optical.rst | 127 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 doc/lsst-optical.rst diff --git a/doc/lsst-optical.rst b/doc/lsst-optical.rst new file mode 100644 index 00000000..31468ac3 --- /dev/null +++ b/doc/lsst-optical.rst @@ -0,0 +1,127 @@ +.. _optical-system-label: + +======================== +The Rubin Optical System +======================== + +Controlling Optical Perturbations +--------------------------------- + +Examples of perturbations dicts: + +.. code-block:: py + + # Shift M2 in x and y by 1 mm + {'M2': {'shift': [1e-3, 1e-3, 0.0]}} + + # Rotate M3 about the local x axis by 1 arcmin + {'M3': {'rotX': 1*galim.arcmin}} + + # Apply 1 micron of the Z6 Zernike aberration to M1 + # using list of coefficients indexed by Noll index (starting at 0). + {'M1': {'Zernike': {'coef': [0.0]*6+[1e-6]}}} + # or specify Noll index and value + {'M1': {'Zernike': {'idx': 6, 'val': 1e-6}}} + + # Apply 1 micron of Z6 and 2 microns of Z4 to M1 + {'M1': {'Zernike': {'coef': [0.0]*4 + [2e-6], 0.0, 1e-6]}}} + # or + {'M1': {'Zernike': {'idx': [4, 6], 'val': [2e-6, 1e-6]}}} + + # By default, Zernike inner and outer radii are inferred from the + # optic's obscuration, but you can also manually override them. + {'M1': { + 'Zernike': { + 'coef': [0.0]*4+[2e-6, 0.0, 1e-6], + 'R_outer': 4.18, + 'R_inner': 2.558 + } + }} + + + # You can specify multiple perturbations in a single dict + { + 'M2': {'shift':[1e-3, 1e-3, 0.0]}, + 'M3': {'rotX':1*galim.arcmin} + } + + # The telescope loader will preserve the order of multiple perturbations, + # but to help disambiguate non-commuting perturbations, you can also use a + # list: + [ + {'M3': {'rotX':1*galim.arcmin}}, # X-rot is applied first + {'M3': {'rotY':1*galim.arcmin}} + ] + + # is the same as + [ + {'M3': { + 'rotX':1*galim.arcmin}, + 'rotY':1*galim.arcmin} + } + } + ] + +Specifying FEA parameters +------------------------- + +Examples of fea config dicts + +.. code-block:: yaml + + # Set M1M3 gravitational perturbations. This requires a zenith angle + # be supplied. + fea: + m1m3_gravity: + zenith: 30 deg + + + # Set M1M3 temperature induced figure perturbations. This requires + # the bulk temperature and 4 temperature gradients be supplied. + fea: + m1m3_temperature: + m1m3_TBulk: 0.1 # Celsius + m1m3_TxGrad: 0.01 # Celsius/meter + m1m3_TyGrad: 0.01 # Celsius/meter + m1m3_TzGrad: 0.01 # Celsius/meter + m1m3_TrGrad: 0.01 # Celsius/meter + + # Engage M1M3 lookup table. Requires zenith angle and optionally a + # fractional random error to apply to each force actuator. + fea: + m1m3_lut: + zenith: 39 deg + error: 0.01 # fractional random error to apply to each actuator + seed: 1 # random seed for error above + + # Set M2 gravitational perturbations. Requires zenith angle. + fea: + m2_gravity: + zenith: 30 deg + + # Set M2 temperature gradient induced figure errors. Requires 2 temperature + # gradients (in the z and radial directions). + fea: + m2_temperature: + m2_TzGrad: 0.01 # Celsius/meter + m2_TrGrad: 0.01 # Celsius/meter + + # Set camera gravitational perturbations. Requires zenith angle and camera + # rotator angle. + fea: + camera_gravity: + zenith: 30 deg + rotation: -25 deg + + # Set camera temperature-induced perturbations. Requires the bulk + # temperature of the camera. + fea: + camera_temperature: + camera_TBulk: 0.1 # Celsius + + # Set the Active Optics degrees of freedom. There are 50 baseline degrees + # of freedom, so we won't copy them all here, but you can imagine a list of + # 50 floats as the specifications for each degree of freedom. + fea: + aos_dof: + dof: list-of-50-floats From 2260a08310c3747d6f2e665b2cfa2d1cc8afb549 Mon Sep 17 00:00:00 2001 From: Chris Walter Date: Mon, 17 Jul 2023 16:43:03 -0400 Subject: [PATCH 13/33] Put the optics section in the index. --- doc/index.rst | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/doc/index.rst b/doc/index.rst index ac938a8d..78040146 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -17,5 +17,6 @@ Contents config.rst features.rst data-formats.rst - module-use.rst - lsst-camera.rst \ No newline at end of file + lsst-camera.rst + lsst-optical.rst + module-use.rst \ No newline at end of file From 2fe85bd8e89e237894c602c44eaaed0289962913 Mon Sep 17 00:00:00 2001 From: Chris Walter Date: Mon, 17 Jul 2023 16:43:33 -0400 Subject: [PATCH 14/33] A bit of structure in the camera section. --- doc/lsst-camera.rst | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/doc/lsst-camera.rst b/doc/lsst-camera.rst index 3c15e628..2cf5b00e 100644 --- a/doc/lsst-camera.rst +++ b/doc/lsst-camera.rst @@ -1,3 +1,11 @@ =============================== Understanding the LSST Camera -=============================== \ No newline at end of file +=============================== + +The Camera Layout +----------------- + +Specifying which sensors to simulate +------------------------------------ + + From 1855d4ebd92f97577641652f429e9aae8a8bd404 Mon Sep 17 00:00:00 2001 From: Chris Walter Date: Mon, 17 Jul 2023 17:14:53 -0400 Subject: [PATCH 15/33] Key documentation through sky-model. --- doc/config.rst | 199 ++++++++++++++++++++++++++++++++++++++++--- doc/lsst-optical.rst | 2 +- 2 files changed, 186 insertions(+), 15 deletions(-) diff --git a/doc/config.rst b/doc/config.rst index 232176d4..54b610d3 100644 --- a/doc/config.rst +++ b/doc/config.rst @@ -49,10 +49,63 @@ Instance catalogs Instance catalogs are text files best suited to making small handcrafted inputs. For legacy and compatibility purposes, They follow the format of the *PhoSim* program inputs which are documented on `PhoSim Web Site `__. The file should contain a a header including metadata describing the observation and a list of sources. -- RegisterInputType('instance_catalog', -- RegisterValueType('InstCatWorldPos' -- RegisterObjectType('InstCatObj' -- RegisterSEDType('InstCatSED' +Key Name: instance_catalog +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Required keywords to set: +""""""""""""""""""""""""" + + * ``file_name`` = *str_value* (default = None) The name of the text file containing the instance catalog entries. + +Optional keywords to set: +""""""""""""""""""""""""" + * ``sed_dir`` = *str_value* (default = None) The directory that contains the template SED files for objects. Typically this is set via an enviroment variable. + * ``edge_pix`` = *float_value* (default = 100.0) How many pixels are objects allowed to be past the edge of the sensor to consider their light. + * ``sort_mag`` = *bool_value* (default = True) Whether or not to sort the objects by magnitude and process the brightest objects first. + * ``flip_g2`` = *bool_value* (default = True) If True, apply a minus sign to the g2 lensing parameter used to shear the objects + * ``min_source`` = *int_value* (default = False) if set, skip simulating any sensor which does not have at least min_sources on it. + * ``skip_invalid`` = *bool_value* (default = True) Check the objects for some validity conditions and skip those which are invalid. + +.. _InstCat-label: + +Instance Catalog Object Type +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Once an instance catalog has been read in, objects from it can be used as an object type for the top level GalSim ``gal`` field like this: + +.. code-block:: yaml + + # Define the galaxy (or delta function) to use + gal: + type: InstCatObj + +Optional keywords to set: +""""""""""""""""""""""""" + + * ``index`` = *int_value* (default = number of objects in the file) be default all of the objects in the file will be processed, here you can specify an index your self of exactly which objects should be read if you would like by specifying a sequence of which items to process. + * ``num`` = *int_value* (default = 1) If you have multiple Random Numbers defined in the config file. This option will allow you specify which one you should use. The default is the first and usually only one. + +.. _InstCatWorld-label: + +Instance Catalog World position +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Once an instance catalog has been read in, the worlkd position as defined in the file can be specified to the top level GalSim ``stamp`` field like this: + +.. code-block:: yaml + + # Define the galaxy (or delta function) to use + world_pos: + type: InstCatWorldPos + + +Optional keywords to set: +"""""""""""""""""""""""" + These are the same as for ``InstCatObj`` above. + + +``RegisterSEDType('InstCatSED`` not used?? Check.. + Sky Catalogs @@ -60,44 +113,162 @@ Sky Catalogs Instance catalogs are text based and utilize a lot of disk space for the information contained in them. Also, one instance catalog is needed for each visit, even if those visits take place at the exact same position on the sky. This causes enormous duplication of information. Instead, large area simulations, *imSim* utilizes an API based system known as `skyCatalogs `__. The *skyCatalog* presents a unified interface to *imSim* via an API of databases that contain all of the object in the sky. By configuring *imSim* to use the *skyCatalog* API only metadata for the visits are needed. *imSim* will retrieve a list of all of the objects it needs to render through the interface. *skyCatalogs* can contain static and transient information and databases exist both for synthetic skies and true sources of information such as the Gaia catalog. The *skyCatalog* can also serve as a source of truth information when later analyzing simulated data. +Key Name: sky_catalog +^^^^^^^^^^^^^^^^^^^^^ + +Required keywords to set: +""""""""""""""""""""""""" + + * ``file_name`` = *str_value* (default = None) The name of the yaml text file which specifies sky catalog positions. + * ``band`` = *str_value* (default = None) The name of the LSST band to use. + +Optional keywords to set: +""""""""""""""""""""""""" + + * ``edge_pix`` = *float_value* (default = 100.0) How many pixels is the buffer region were objects are allowed to be past the edge of the sensor. + * ``obj_types`` : *list* List or tuple of object types to render, e.g., ('star', 'galaxy'). If None, then consider all object types. + * ``max_flux`` = *float_value* (default = None) If object flux exceeds max_flux, the return None for that object. if max_flux == None, then don't apply a maximum flux cut. + * ``apply_dc2_dilation`` = *bool_value* (default False) Flag to increase object sizes by a factor sqrt(a/b) where a, b are the semi-major and semi-minor axes, respectively. This has the net effect of using the semi-major axis as the sersic half-light radius when building the object. This will only be applied to galaxies. + * ``approx_nobjects`` = *int_value* (default None) Approximate number of objects per CCD used by galsim to set up the image processing. If None, then the actual number of objects found by skyCatalogs, via .getNObjects, will be used. + * ``mjd`` = *float_vaue* MJD of the midpoint of the exposure. -- RegisterObjectType('SkyCatObj' -- RegisterValueType('SkyCatWorldPos' +Sky Catalog Object Type +^^^^^^^^^^^^^^^^^^^^^^^ + The ``SkyCatObj`` is used as in the :ref:`InstCatObj ` case above. + +Sky Catalog World Position +^^^^^^^^^^^^^^^^^^^^^^^^^^ + + The ``SkyCatWorldPos`` is used as in the :ref:`InstCatWorldPos ` case above. OpSim Data ---------- .. note:: - We need to rationalize this and figure out the best approach. It's hard to explain now. + We need to rationalize this and figure out the best approach. It's hard to explain now. Will also need to say more about other ways too. Do it here? Each visit requires metadata that describes the time of exposure, the filter being employed, the direction that the telescope is pointing etc. There are several ways to pass this information to *imSim*. You can include the information in the top of an instance catalog, you can give it the output of of a Rubin Operational Simulator simulation which will give a list of visits with all of the needed information, or you can manually specify information in the YAML file itself. This input type allows you to specify file inputs which contain this information. - Will need to say more about other ways too. Do it here? +Key Name: opsim_data +^^^^^^^^^^^^^^^^^^^^ +Note that several metadata keywords are required to be specified in the file. They include: *rightascension, declination, mjd, altitude, azimuth, filter, rotskypos, rottelpos, dist2moon, moonalt, moondec, moonphase, moonra, nsnap, seqnum, obshistid, seed, seeing, sunalt, and , vistime.* + +Required keywords to set: +"""""""""""""""""""""""""" + + * ``file_name`` = *str_value* (default = None) The name of the text file that contains the required metadata information. Note that this data file can also contain object information. + +Optional keywords to set: +""""""""""""""""""""""""" + + * ``visit`` = *int_value* (default = None) The visit number. + * ``snap`` = *int_value* (default = 0) How many exposures should be taken. + * ``image_type`` = *string_value* (default = 'SKYEXP') The type of exposure to be taken. Other options include 'FLAT' and 'BIAS'. + * ``reason`` = *string_value* (default='survey') The reason the exposurew was taken. Other options include 'calibration' + -- RegisterValueType('OpsimData' -- RegisterBandpassType('OpsimBandpass' +OpSim Value Type +^^^^^^^^^^^^^^^^^ + +Once the opsim data has been specified you can use those values in other parts of the YAML file by specifying keys which have been set. An example is shown below: + +.. code-block:: yaml + + atm_psf: + # This enables the AtmosphericPSF type for the PSF + + airmass: { type: OpsimData, field: airmass } + rawSeeing: { type: OpsimData, field: rawSeeing } + band: { type: OpsimData, field: band } + +The ``field`` key is required. + +OpSim Bandpass +^^^^^^^^^^^^^^ + +Once the metadata information has been specified you can use that information to specify the bandpass in other parts of the YAML file. Using the LSST band that you specified it will read in the appropriate throughput file amd use it for the bandpass. An example is shown below. + +.. code-block:: yaml + + image: + type: LSST_Image + + bandpass: { type: OpsimBandpass } + + +There are no configuration parameters for this class. Telescope Configuration ----------------------- The optical system of the telescope can be configured including optical aberrations, the state of active optics system, variations due to temperature etc. Individual actuators and other elements of the optics system can also be configured as an input before the simulation starts. -If the photons are ray-traced through the optics with the `Batoid package `__ photons will be modified by the changes as they propagate through the optics. See :ref:`the stamp keyword ` below for details. +If the photons are ray-traced through the optics with the `Batoid package `__ photons will be modified by the changes as they propagate through the optics. See :ref:`the stamp keyword ` below for details. For more details on the extensive control over the perturbation and FEA parameters of the optical system please refer to :ref:`the optical system section ` + +Key Name: telescope +^^^^^^^^^^^^^^^^^^^^ + +Required keywords to set: +"""""""""""""""""""""""""" + + * ``file_name`` = *str_value* (default = None) The name of a yaml file describing the Rubin optics distributed with the batoid package. The filename can be constructed via the config system in the YAML file as in the following example. + + .. code-block:: yaml + + telescope: + file_name: + type: FormattedStr + format : LSST_%s.yaml + items: + - { type: OpsimData, field: band } + + +Optional keywords to set: +""""""""""""""""""""""""" + + * ``rotTelPos`` = *angle_value* (default = None) The angle of the camera rotator in degrees. + * ``cameraName`` = *string_value* (default = 'LSSTCam') The name of the camera to use. + * ``perturbations:`` = YAML dictionary (default = 'None') See :ref:`the optical system section ` for documentation. + * ``fea:`` = YAML dictionary (default = 'None') See :ref:`the optical system section ` for documentation -- TelescopeLoader(DetectorTelescope)) Sky Model --------- Including the skyModel will load the Rubin Simulation Sky Model from the rubin-sims package. If you have loaded this module, you will will be able top to refer the ``skyLevel`` variable in the image section to set the brightness of the sky. You can also use the ``apply_sky_gradient`` option in the image section to make the sky level vary over each sensor. -- RegisterInputType('sky_model' -- RegisterValueType('SkyLevel' +Key Name: sky-model +^^^^^^^^^^^^^^^^^^^^ +Required keywords to set: +"""""""""""""""""""""""""" + + * ``exp_time`` = *float_value* (default = None) The exposure time in seconds. + * ``mjd`` = *float_value* THE MJD of the observation. + +Optional keywords to set: +""""""""""""""""""""""""" + + * ``eff_area`` = *float_value* (default = RUBIN_AREA) Collecting area of telescope in cm^2. Default: Rubin value from https://confluence.lsstcorp.org/display/LKB/LSST+Key+Numbers + + +SkyLevel Value Type +^^^^^^^^^^^^^^^^^^^ + +Once the Rubin sky-model has been specified you can use the calculated sky level in other parts of the YAML file. An example is shown below: + +.. code-block:: yaml + + image: + type: LSST_Image + + sky_level: { type: SkyLevel } # Computed from input.sky_model. + apply_sky_gradient: True + Atmospheric PSF ---------------- diff --git a/doc/lsst-optical.rst b/doc/lsst-optical.rst index 31468ac3..14141bae 100644 --- a/doc/lsst-optical.rst +++ b/doc/lsst-optical.rst @@ -7,7 +7,7 @@ The Rubin Optical System Controlling Optical Perturbations --------------------------------- -Examples of perturbations dicts: +Examples of perturbations dicts (for this documentation we should convert this to YAML file) .. code-block:: py From 8eb8a36a66205ae67f81d435123295782ed7b6e9 Mon Sep 17 00:00:00 2001 From: Chris Walter Date: Mon, 17 Jul 2023 17:20:05 -0400 Subject: [PATCH 16/33] Github unhappy with number of under-characters. --- doc/config.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/doc/config.rst b/doc/config.rst index 54b610d3..1387b45b 100644 --- a/doc/config.rst +++ b/doc/config.rst @@ -100,7 +100,8 @@ Once an instance catalog has been read in, the worlkd position as defined in the Optional keywords to set: -"""""""""""""""""""""""" +"""""""""""""""""""""""""" + These are the same as for ``InstCatObj`` above. From 438cba601324acbc885dab7a055b754626ab6ecb Mon Sep 17 00:00:00 2001 From: Chris Walter Date: Tue, 18 Jul 2023 14:06:11 -0400 Subject: [PATCH 17/33] Atmospheric PSF documentation. --- doc/config.rst | 71 +++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 65 insertions(+), 6 deletions(-) diff --git a/doc/config.rst b/doc/config.rst index 1387b45b..495990cd 100644 --- a/doc/config.rst +++ b/doc/config.rst @@ -82,7 +82,7 @@ Once an instance catalog has been read in, objects from it can be used as an obj Optional keywords to set: """"""""""""""""""""""""" - * ``index`` = *int_value* (default = number of objects in the file) be default all of the objects in the file will be processed, here you can specify an index your self of exactly which objects should be read if you would like by specifying a sequence of which items to process. + * ``index`` = *int_value* (default = number of objects in the file) by default all of the objects in the file will be processed, here you can specify an index your self of exactly which objects should be read if you would like by specifying a sequence of which items to process. * ``num`` = *int_value* (default = 1) If you have multiple Random Numbers defined in the config file. This option will allow you specify which one you should use. The default is the first and usually only one. .. _InstCatWorld-label: @@ -274,14 +274,73 @@ Once the Rubin sky-model has been specified you can use the calculated sky level Atmospheric PSF ---------------- -The class is used to create the PSF which is induced by the atmosphere. There are two parametric PSFs available: a double Gaussian and a Kolmogorov PSF. The ``AtmosphericPSF`` type is a fully ray-traced turbulent atmosphere with multiple atmospheric layers all of which can have their parameters specified. Additionally, you can optionally add a parametric PSF screen which simulates the Rubin Optics. +The class is used to create the PSF which is induced by the atmosphere. There are two parametric PSFs available: a double Gaussian and a Kolmogorov PSF. The ``AtmosphericPSF`` type is a fully ray-traced turbulent atmosphere with multiple atmospheric layers. Additionally, you can optionally add a parametric PSF screen which simulates the Rubin Optics. + +Key Name: atmosphericPSF +^^^^^^^^^^^^^^^^^^^^^^^^ + +This keyword enables an atmospheric PSF with 6 randomly generated atmospheric screens. Photons are raytraced through this atmosphere to produce a realistic atmospheric PSF. See section (``needs to be added``) for more information on the model. .. warning:: - You should not attempt to use the option to add parametric optics if you are using fully ray-traced optics. Otherwise, you will simulate the optics twice. See See :ref:`the stamp keyword ` below how to activate the ray-traced mode. + You should not attempt to use the option to add parametric optics (through the ``doOpt`` option) if you are using fully ray-traced optics. Otherwise, you will simulate the optics twice. See See :ref:`the stamp keyword ` below how to activate the ray-traced mode. + + +Required keywords to set: +"""""""""""""""""""""""""" + + * ``airmass`` = *float_value* (default = None) The aimass in the direction of the pointing. + * ``rawSeeing`` = *float_value* The FWHM seeing at zenith at 500 nm in arc seconds + * ``band`` = *str_value* The filter band of the observation. + * ``boresight`` = *RaDec_value* The CelestialCoord of the boresight of the observation. + + +Optional keywords to set: +""""""""""""""""""""""""" + + * ``t0`` = *float_value* (default = 0.0) Exposure time start in seconds. + * ``exptime`` = *float_value* (default = 30.0) Exposure time in seconds. + * ``kcrit`` = *float_value* (default = 0.2) Critical Fourier mode at which to split first and second kicks. + * ``screen_size`` = *float_value* (default = 819.2) Size of the phase screens in meters. + * ``screen_scale`` = *float_value* (default = 0.1) Size of phase screen "pixels" in meters. + * ``doOpt`` = *bool_value* (default = True) Add in optical phase screens? *SEE WARNING ABOVE* + * ``nproc`` = *int_value* (default = None) Number of processes to use in creating screens. If None (default), then allocate one process per phase screen, of which there are 6, nominally. + * ``save_file`` = *str_value* (default = None) A file name to use for saving the built atmosphere. If the file already exists, then the atmosphere is read in from this file, rather than being rebuilt. + + +Key Name: DoubleGaussianPSF +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +A wavelength and position-independent Double Gaussian PSF. This specific PSF comes from equation(30) of the signal-to-noise document (LSE-40), which can be found at http://www.astro.washington.edu/users/ivezic/Astr511/LSST_SNRdoc.pdf. + +Required keywords to set: +"""""""""""""""""""""""""" + + * ``fwhm`` = *float_value* (default = None) The full width at half max of the total PSF in arc seconds. + + +Optional keywords to set: +""""""""""""""""""""""""" + + * ``pixel_scale`` = *float_value* (default = 0.2) The pixel scale of the sensor in arc seconds. + + +Key Name: KolmogorovPSF +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +This PSF class is based on David Kirkby's presentation to the DESC Survey Simulations working group on 23 March 2017. + + https://confluence.slac.stanford.edu/pages/viewpage.action?spaceKey=LSSTDESC&title=SSim+2017-03-23 + + (you will need a SLAC Confluence account to access that link) + +Required keywords to set: +"""""""""""""""""""""""""" + + * ``airmass`` = *float_value* (default = None) The aimass in the direction of the pointing. + * ``rawSeeing`` = *float_value* The FWHM seeing at zenith at 500 nm in arc seconds + * ``band`` = *str_value* The filter band of the observation. + -- RegisterObjectType('AtmosphericPSF' -- RegisterObjectType('DoubleGaussianPSF' -- RegisterObjectType('KolmogorovPSF' Tree Rings ---------- From 944fc2d68f42fb2fc733864a75fdb0547e136788 Mon Sep 17 00:00:00 2001 From: Chris Walter Date: Tue, 18 Jul 2023 14:20:23 -0400 Subject: [PATCH 18/33] Tree ring documentation. --- doc/config.rst | 35 ++++++++++++++++++++++++++++++++--- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/doc/config.rst b/doc/config.rst index 495990cd..caf95fdf 100644 --- a/doc/config.rst +++ b/doc/config.rst @@ -347,9 +347,38 @@ Tree Rings Tree-rings are a silicon sensor effect induced by internal electric fields in the 3D structure of the silicon CCD. The fields are created by internal variations in dopant concentration that form while the silicon boule is being grown. You can find more about *imSim*'s implementation of tree rings in :ref:`the Tree Ring validation section `. This keyword tells imSim where to find the data file which describes the parameters to be used when the effect is turned on. It creates dictionaries that can be used by the LSST sensor description in :ref:`LSST Camera ` section below. -- RegisterInputType('tree_rings', -- RegisterValueType('TreeRingCenter' -- RegisterValueType('TreeRingFunc' +Key Name: tree_rings +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Required keywords to set: +"""""""""""""""""""""""""" + + * ``file_name`` = *str_value* (default = None) A file name that contains the parameters of the tree ring model for each sensor. + + +Optional keywords to set: +""""""""""""""""""""""""" + + * ``only_dets`` = *List* (default = None) Only read in the models for the listed sensors in order to save time on startup. + + + +TeeeRingCenter and TreeRingFunction Value Type +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Once the tree ring models have been read in, you can use them in other parts of the YAML file. The model is keyed on a detector name. An example is shown below: + +.. code-block:: yaml + + image: + type: LSST_Image + + sensor: + type: Silicon + + treering_center: { type: TreeRingCenter, det_name: $det_name } + treering_func: { type: TreeRingFunc, det_name: $det_name } + Checkpointing ------------- From 63600871ee2e34d138e99917529331ddb1e12173 Mon Sep 17 00:00:00 2001 From: Chris Walter Date: Tue, 18 Jul 2023 14:28:42 -0400 Subject: [PATCH 19/33] checkpoint documentation The end of the image section doc strings. --- doc/config.rst | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/doc/config.rst b/doc/config.rst index caf95fdf..4235a2ad 100644 --- a/doc/config.rst +++ b/doc/config.rst @@ -389,7 +389,31 @@ As imSim runs, if this option is turned on, it will periodically check-point its Be careful to manually delete any check-point files if you have made any changes to to the configuration between runs. Currently, *imSim* only checks if a file for a individual sensor already exists. -- RegisterInputType('checkpoint', + +Key Name: checkpoint +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Required keywords to set: +"""""""""""""""""""""""""" + + * ``file_name`` = *str_value* (default = None) A file name to store the checkpoint for each sensor. + + Be careful to give a unique name for each possible checkpoint. Here for example is a YAML code block + + .. code-block:: yaml + + file_name: + type: FormattedStr + format : checkpoint_%08d-%s.hdf + items: + - { type: OpsimData, field: observationId } + - "$det_name" + +Optional keywords to set: +""""""""""""""""""""""""" + + * ``dir`` = *str_value* (default = None) Put the files in a directory with this name. + Image types From 44673219b87b6876070d9aa47f7ce0772b842876 Mon Sep 17 00:00:00 2001 From: Chris Walter Date: Tue, 18 Jul 2023 17:43:59 -0400 Subject: [PATCH 20/33] Finish image types. --- doc/config.rst | 61 +++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 51 insertions(+), 10 deletions(-) diff --git a/doc/config.rst b/doc/config.rst index 4235a2ad..06ae07d4 100644 --- a/doc/config.rst +++ b/doc/config.rst @@ -415,7 +415,6 @@ Optional keywords to set: * ``dir`` = *str_value* (default = None) Put the files in a directory with this name. - Image types =========== @@ -423,24 +422,66 @@ These classes define how to draw images. The basic *GalSim* image types include .. _LSST-Camera-label: -LSST Camera Images ------------------- +Key name: LSST_Image +-------------------- + +The ``LSST_Image`` type is a version of the *GalSim* "Scattered Image" image class that has been modified to understand how to draw the Rubin sky background and how to apply effects such as vignetting to the sky and certain bright objects. There are extra optional keywords you can use with the ``LSST_Image`` type. + + +Optional keywords to set: +""""""""""""""""""""""""" + + * ``size`` = *int_value* (default = None) The size in pixels for X and Y + * ``xsize`` = *int_value* (default = None) X size only + * ``ysize`` = *int_value* (default = None) Y size only + * ``dytpe`` = *dytpe_value* (default = None) allows you to set numpy.dtype for the underlying data in the image. + * ``apply_sky_gradient`` = *bool_value* (default = False) If true vary the sky background level linearly across the sensors to match the expected flux at the four corners of the at each sensor. + * ``camera`` = *str_value* (default = None) name of the camera such as ``LsstCam``. + * ``nbatch`` = *int_value* (default = 10) The size of batches of images when checkpointing the objects to disk. + -The ``LSST_Image`` type is a version of the *GalSim* "Scattered Image" image class that has been modified to understand how to draw the Rubin sky background and how to apply effects such as vignetting to the sky and certain bright objects. *imSim* also registers a new type of WCS object. When this WCS is chosen the `Batoid ray-tracing package `__ traces a set of rays through the optics and fits the result to create a WCS which accurately represents the current state of the telescope optics. -- RegisterImageType('LSST_Image', LSST_ImageBuilder()) +Batoid WCS Type +^^^^^^^^^^^^^^^ -- RegisterWCSType('Batoid', BatoidWCSBuilder(), input_type="telescope") -- RegisterWCSType('Dict' +Required keywords to set: +"""""""""""""""""""""""""" + * ``boresight`` = *RaDec_value* The CelestialCoord of the boresight of the observation. + * ``obstime`` = *str_value* (default = None) The time of the observation either as a string or a astropy.time.Time instance + * ``det_name`` = *str_value* (default = None) The name of the sensor for this WCS. -Image Calibration Flats ------------------------ +Optional keywords to set: +""""""""""""""""""""""""" + + * ``camera`` = *str_value* (default = None) A camera object + * ``telescope`` = *str_value* (default = None) a batoid telescope optics including any needed rotations. + * ``temperature`` = *float_value* (default = 280K) Ambient temperature in Kelvin. + * ``pressure`` = *float_value* (default = calculated from Rubin height) Ambient pressure in kPa. + * ``H2O_pressure`` = *float_value* (default = 1 kPa) Water vapor pressure in kPa. + * ``wavelength`` = *float_value* (default = None) wavelenght of photon to use in nanometers. + * ``order`` = *int_value* (default = 3) SIP polynomial order for WCS fit. + +Key Name: LSST_Flat +------------------- *imSim* also supplies a ```LSST_Flat`` image type. Calibration flats have extremely high background levels and special file, memory and SED handling are employed in this case in order to optimize computational efficiency. - - RegisterImageType('LSST_Flat', LSST_FlatBuilder()) +Required keywords to set: +"""""""""""""""""""""""""" + * ``counts_per_pixel`` = *float_value* (default = None) Background count level per pixel + * ``xsize`` = *int_value* (default = None) X size only + * ``ysize`` = *int_value* (default = None) Y size only + + +Optional keywords to set: +""""""""""""""""""""""""" + + * ``max_count_per_iteration`` = *float_value* (default = 1000) How many photons to add per iteration. + * ``buffer_size`` = *int_value* (default = 5) Add a border region with this many pixels. + * ``nx`` = *int_value* (default = dynamically allocated) The number of segments to split the sensor into in X in order to control memory usage. + * ``ny`` = *int_value* (default = dynamically allocated) The number of segments to split the sensor into in Y in order to control memory usage. .. _stamp-label: From d30c8672876f8c61b2bd3b69cb0b2c8cb9f923c5 Mon Sep 17 00:00:00 2001 From: Chris Walter Date: Wed, 19 Jul 2023 14:18:08 -0400 Subject: [PATCH 21/33] Stamp section. --- doc/config.rst | 97 ++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 86 insertions(+), 11 deletions(-) diff --git a/doc/config.rst b/doc/config.rst index 06ae07d4..03052638 100644 --- a/doc/config.rst +++ b/doc/config.rst @@ -488,30 +488,105 @@ Optional keywords to set: StampTypes ========== -The Stamp drawing code does the main work to actually render the image of an astronomical object. *imSim* adds the ``LSST_Silicon`` type which understands how to draw objects in the LSSTCam sensors including accounting for absorption in the atmosphere, integrating the SEDs of the objects with the chosen filter, ray-tracing photons through the optical system, adding diffractive spikes from the telescope spider, automatically using various approximations for both very bright and very dim objects etc. Those options are set with the parameters below. +The Stamp drawing code does the main work to actually render the image of an astronomical object. *imSim* adds the ``LSST_Silicon`` type which understands how to draw objects in the LSSTCam sensors including accounting for absorption in the atmosphere, integrating the SEDs of the objects with the chosen filter, ray-tracing photons through the optical system, adding diffractive spikes from the telescope spider as the camera rotates, automatically using various approximations for both very bright and very dim objects etc. Those options are set with the parameters below. -- RegisterStampType('LSST_Silicon', +If an astronomical object is too bright, by default *imSim* will generate the objects with a FFT instead of via photon shooting in order to save computation time. This objects are typically saturated and not usable for analysis in any case. +Stamp Type: LSST_Silicon +---------------------- -There are a set of operations that can act on photons in *GalSim*. The are put together in a list and then all of the photons have those operations act on them in turn. This list of photon-operations are specified in the stamp section. You can read more about them in the *GalSim* documentation covering `GalSim Photon Ops `__. *imSim* adds a new set of Photon Operators to ray-trace the photons through the optical system using the `Batoid package `__. -If you do not turn these on, you should use the parameterized optics available in the atmospheric PSF instead. You have three choices: +Required keywords to set: +^^^^^^^^^^^^^^^^^^^^^^^^^ + + * ``fft_sb_threshold`` = *float_value* (default = 0) Over this number of counts, use a FFT instead of photon shooting for speed. + * ``airmass`` = *float_value* (default = 1.2) The airmass to use in FFTs + * ``rawseeing`` = *float_value* (default = 0.7) The FWHM seeing at zenith at 500 nm in arc seconds for FFTs. + * ``band`` = *str_value* (default = None) The filter band of the observation. - - RubinOptics: - Photons ray-traced though the Rubin optical system. +Optional keywords to set: +^^^^^^^^^^^^^^^^^^^^^^^^^ - - RubinDiffractionOptics: + * ``max_flux_simple`` = *float_value* (default = 100) If the flux is less than this value use a simple SED and apply other speed ups. + * ``method`` = *str_value* (default = 'auto') Choose between automatically deciding whether to use a FFT of photon shooting ('auto') or manually choose between 'fft' and 'phot'. + * ``maxN`` = *int_value* (detault = 1.0e6) Set limit on the size of photons batches when drawing the image. - Ray-traced photons including the effects of diffraction when passing through edges like the telescope spiders. - - RubinDiffraction: +Note there is an extra required keyword you must include in the stamp section that configures how diffraction passing through the telescope spiders is handled. - Diffractive effects only. +Key Name: diffraction_psf: +-------------------------- + +Required keywords to set: +^^^^^^^^^^^^^^^^^^^^^^^^^ + + * ``exptime`` = *float_value* (default = None) The time of the exposure. + * ``azimuth`` = *float_value* (default = None) The azimuth angle in degrees. + * ``altitude`` = *float_value* (default = None) The altitude angle in degrees. + * ``rotTelPos`` = *str_value* (default = None) The angle of the camera rotator in degrees. + + +Optional keywords to set: +^^^^^^^^^^^^^^^^^^^^^^^^^ + * ``enabled`` = *bool_value* (default = True) When doing FFTs, also calcululate paramteric diffraction spikes from the spider. + * ``spike_length_cutoff`` = *int_value* (default = 4000) In a FFT the size of the telescope spike length + * ``brightness threshold`` = *float_value* (default = Set by CCD full well value) In a FFT the value of a pixel that will cause it to be replaced with a diffraction spike. + * ``lattitude`` = *float_value* (default = Rubin Location) Geographic latitude of the observatory. + + +Finally, there are a set of operations that can act on photons in *GalSim*. The are put together in a list and then all of the photons have those operations act on them in turn. This list of photon-operations are specified in the stamp section. You can read more about them in the *GalSim* documentation covering `GalSim Photon Ops `__. *imSim* adds a new set of Photon Operators to ray-trace the photons through the optical system using the `Batoid package `__. + +If you do not turn these on, you should use the parameterized optics available in the atmospheric PSF instead. You have three choices: they are set with the the + +Photon Operation Type +--------------------- + +type: **RubinOptics** + +Photons ray-traced though the Rubin optical system. + +Required keywords to set: +^^^^^^^^^^^^^^^^^^^^^^^^^ -- RegisterPhotonOpType(identifier, + * ``boresight`` = *RaDec_value* (default = None) The CelestialCoord of the boresight of the observation. + * ``camera`` = *str_value* (default = None) The name of the camera to use. + +type: **RubinDiffractionOptics** + +Ray-traced photons including the effects of diffraction when passing through edges like the telescope spiders. + +Required keywords to set: +^^^^^^^^^^^^^^^^^^^^^^^^^ + + * ``boresight`` = *RaDec_value* (default = None) The CelestialCoord of the boresight of the observation. + * ``camera`` = *str_value* (default = None) The name of the camera to use. + * ``azimuth`` = *float_value* (default = None) The azimuth angle in degrees. + * ``altitude`` = *float_value* (default = None) The altitude angle in degrees. + + +Optional keywords to set: +^^^^^^^^^^^^^^^^^^^^^^^^^ + + * ``latitude`` = *bool_value* (default = True) The latitude of the observatory. + * ``disable_field_rotation`` = *bool_value* (default = False) Do not consider the effect of the rotation of the camera relative to the spiders of the telescope during the exposure. + +type: **RubinDiffraction** + +Diffractive effects only during the FFT. + +Required keywords to set: +^^^^^^^^^^^^^^^^^^^^^^^^^ + + * ``azimuth`` = *float_value* (default = None) The azimuth angle in degrees. + * ``altitude`` = *float_value* (default = None) The altitude angle in degrees. + * ``latitude`` = *bool_value* (default = True) The latitude of the observatory. + +Optional keywords to set: +^^^^^^^^^^^^^^^^^^^^^^^^^ + * ``disable_field_rotation`` = *bool_value* (default = False) Do not consider the effect of the rotation of the camera relative to the spiders of the telescope during the exposure. Output types ============ From 885521f91ddb1453fabfed4b41252e4a39a6f246 Mon Sep 17 00:00:00 2001 From: Chris Walter Date: Wed, 19 Jul 2023 14:53:56 -0400 Subject: [PATCH 22/33] output section. Complete config section. --- doc/config.rst | 59 +++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 56 insertions(+), 3 deletions(-) diff --git a/doc/config.rst b/doc/config.rst index 03052638..06e7a284 100644 --- a/doc/config.rst +++ b/doc/config.rst @@ -597,9 +597,62 @@ It can also write "amp" files. These are fully readout electronics files with on There are also several extra outputs available to the user including a centroid file containing the true position of the rendered sources, a list of optical path differences in the optical system, and a map of surface figure errors. -- RegisterOutputType('LSST_CCD', LSST_CCDBuilder()) -- RegisterExtraOutput('readout', CameraReadout()) -- RegisterExtraOutput('opd', OPDBuilder()) +Output Type: LSST_CCD +--------------------- + +For reading out LSST CCDs. + +Optional keywords to set: +^^^^^^^^^^^^^^^^^^^^^^^^^ + + * ``cosmic_ray_rate`` = *float_value* (default = 0) The rate of cosmic rays per second in a sensor. + * ``cosmic_ray_catalog`` = *str_value* (default = Distributed with *imSim*) A file containing cosmic ray images to paint on the sensor. + * ``header`` = *dictionary* (default = None) Extra items to add to the FITS header in the output files. + + +Output Type: readout +-------------------- + +Parameters modifying the LSSTCamera electronics readout. + +Optional keywords to set: +^^^^^^^^^^^^^^^^^^^^^^^^^ + + * ``camera_name`` = *str_value* (default = None) The camera object to use. + * ``readout_time`` = *float_value* (default = 2.0) The camera readout time in seconds. + * ``dark_current`` = *float_value* (default = 0.02) The dark current in electrons per second. + * ``bias_level`` = *float_value* (default = 1000.0) Bias readout level in ADUs. + * ``scti`` = *float_value* (default = 1.0e-6) The serial CTI + * ``pcti`` = *float_value* (default = 1.0e-6) The parallel CTI + * ``full_well`` = *float_value* (default = 1.0e5) Thu number of electrons needed to fill the sensor well. + * ``read_noise`` = *float_value* (default given by camera object) The read noise in ADU. + +Output Type: opd +-------------------- + +Write out the optical path differences images to study raytracing behaviour. + +Notes: + The OPD image coordinates are always aligned with the entrance pupil, + regardless of the value of rotTelPos. The OPD values are in nm, with + NaN values corresponding to vignetted regions. The OPD is always + computed for the fiducial telescope focal plane height; i.e., it ignores any detector-by-detector offsets in focal plane height. +Required keywords to set: +^^^^^^^^^^^^^^^^^^^^^^^^^ + + * ``file_name`` = *str_value* (default = None) The name of the file to write OPD images to. + * ``fields`` = *list* (default = None) List of field angles for which to compute OPD. Field angles are specified in the (rotated) coordinate system of the telescope's entrance pupil (usually the primary mirror). + +Optional keywords to set: +^^^^^^^^^^^^^^^^^^^^^^^^^ + * ``rotTelPos`` = *angle_value* (default = None) The angle of the camera rotator in degrees. + * ``nx`` = *int_value* (default = 255) Size of the OPD image in pixels. + * ``wavelength`` = *float_value* (default = None) avelength of light in nanometers. If not specified, then the wavelength will be taken from the current bandpass. + * ``projection`` = *str_value* (default = 'postel') Projection mapping field angles to spherical coordinates. See batoid documentation for more details. + * ``sphereRadius`` = *float_value* (default = None) Radius of reference sphere in meters. If not specified, then the radius will be taken from the telescope object. + * ``reference`` = *str_value* (default = 'chief') Either 'chief' or 'mean'. See batoid documentation for more details. + * ``eps`` = *float_value* (default = None) Annular Zernike obscuration fraction. If not specified, then the value will be taken from the telescope object. + * ``jmax`` = *int_value* (default = 28) Maximum Zernike Order. From b73e351b9c7a84ac2cf415689733d44b7d3a58a5 Mon Sep 17 00:00:00 2001 From: Chris Walter Date: Wed, 19 Jul 2023 15:08:21 -0400 Subject: [PATCH 23/33] Try to fix level consistency. --- doc/config.rst | 56 +++++++++++++++++++++++++++++--------------------- 1 file changed, 33 insertions(+), 23 deletions(-) diff --git a/doc/config.rst b/doc/config.rst index 06e7a284..2db72a5e 100644 --- a/doc/config.rst +++ b/doc/config.rst @@ -391,7 +391,7 @@ As imSim runs, if this option is turned on, it will periodically check-point its Key Name: checkpoint -^^^^^^^^^^^^^^^^^^^^^^^^^^^ +^^^^^^^^^^^^^^^^^^^^^ Required keywords to set: """""""""""""""""""""""""" @@ -422,8 +422,11 @@ These classes define how to draw images. The basic *GalSim* image types include .. _LSST-Camera-label: +LSST Images +----------- + Key name: LSST_Image --------------------- +^^^^^^^^^^^^^^^^^^^^ The ``LSST_Image`` type is a version of the *GalSim* "Scattered Image" image class that has been modified to understand how to draw the Rubin sky background and how to apply effects such as vignetting to the sky and certain bright objects. There are extra optional keywords you can use with the ``LSST_Image`` type. @@ -464,7 +467,7 @@ Optional keywords to set: * ``order`` = *int_value* (default = 3) SIP polynomial order for WCS fit. Key Name: LSST_Flat -------------------- +^^^^^^^^^^^^^^^^^^^ *imSim* also supplies a ```LSST_Flat`` image type. Calibration flats have extremely high background levels and special file, memory and SED handling are employed in this case in order to optimize computational efficiency. @@ -492,12 +495,15 @@ The Stamp drawing code does the main work to actually render the image of an ast If an astronomical object is too bright, by default *imSim* will generate the objects with a FFT instead of via photon shooting in order to save computation time. This objects are typically saturated and not usable for analysis in any case. +LSST Silicon Sensor Stamps +-------------------------- + Stamp Type: LSST_Silicon ----------------------- +^^^^^^^^^^^^^^^^^^^^^^^^^ Required keywords to set: -^^^^^^^^^^^^^^^^^^^^^^^^^ +""""""""""""""""""""""""" * ``fft_sb_threshold`` = *float_value* (default = 0) Over this number of counts, use a FFT instead of photon shooting for speed. * ``airmass`` = *float_value* (default = 1.2) The airmass to use in FFTs @@ -506,7 +512,7 @@ Required keywords to set: Optional keywords to set: -^^^^^^^^^^^^^^^^^^^^^^^^^ +""""""""""""""""""""""""" * ``max_flux_simple`` = *float_value* (default = 100) If the flux is less than this value use a simple SED and apply other speed ups. * ``method`` = *str_value* (default = 'auto') Choose between automatically deciding whether to use a FFT of photon shooting ('auto') or manually choose between 'fft' and 'phot'. @@ -516,10 +522,10 @@ Optional keywords to set: Note there is an extra required keyword you must include in the stamp section that configures how diffraction passing through the telescope spiders is handled. Key Name: diffraction_psf: --------------------------- +^^^^^^^^^^^^^^^^^^^^^^^^^^ Required keywords to set: -^^^^^^^^^^^^^^^^^^^^^^^^^ +""""""""""""""""""""""""" * ``exptime`` = *float_value* (default = None) The time of the exposure. * ``azimuth`` = *float_value* (default = None) The azimuth angle in degrees. @@ -528,7 +534,7 @@ Required keywords to set: Optional keywords to set: -^^^^^^^^^^^^^^^^^^^^^^^^^ +""""""""""""""""""""""""" * ``enabled`` = *bool_value* (default = True) When doing FFTs, also calcululate paramteric diffraction spikes from the spider. * ``spike_length_cutoff`` = *int_value* (default = 4000) In a FFT the size of the telescope spike length @@ -544,21 +550,21 @@ Photon Operation Type --------------------- type: **RubinOptics** - +^^^^^^^^^^^^^^^^^^^^^ Photons ray-traced though the Rubin optical system. Required keywords to set: -^^^^^^^^^^^^^^^^^^^^^^^^^ +"""""""""""""""""""""""" * ``boresight`` = *RaDec_value* (default = None) The CelestialCoord of the boresight of the observation. * ``camera`` = *str_value* (default = None) The name of the camera to use. type: **RubinDiffractionOptics** - +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Ray-traced photons including the effects of diffraction when passing through edges like the telescope spiders. Required keywords to set: -^^^^^^^^^^^^^^^^^^^^^^^^^ +""""""""""""""""""""""""" * ``boresight`` = *RaDec_value* (default = None) The CelestialCoord of the boresight of the observation. * ``camera`` = *str_value* (default = None) The name of the camera to use. @@ -567,24 +573,25 @@ Required keywords to set: Optional keywords to set: -^^^^^^^^^^^^^^^^^^^^^^^^^ +"""""""""""""""""""""""" * ``latitude`` = *bool_value* (default = True) The latitude of the observatory. * ``disable_field_rotation`` = *bool_value* (default = False) Do not consider the effect of the rotation of the camera relative to the spiders of the telescope during the exposure. type: **RubinDiffraction** +^^^^^^^^^^^^^^^^^^^^^^^^^^ Diffractive effects only during the FFT. Required keywords to set: -^^^^^^^^^^^^^^^^^^^^^^^^^ +""""""""""""""""""""""""" * ``azimuth`` = *float_value* (default = None) The azimuth angle in degrees. * ``altitude`` = *float_value* (default = None) The altitude angle in degrees. * ``latitude`` = *bool_value* (default = True) The latitude of the observatory. Optional keywords to set: -^^^^^^^^^^^^^^^^^^^^^^^^^ +"""""""""""""""""""""""""" * ``disable_field_rotation`` = *bool_value* (default = False) Do not consider the effect of the rotation of the camera relative to the spiders of the telescope during the exposure. @@ -597,13 +604,16 @@ It can also write "amp" files. These are fully readout electronics files with on There are also several extra outputs available to the user including a centroid file containing the true position of the rendered sources, a list of optical path differences in the optical system, and a map of surface figure errors. +LSST CCD Sensor output and readout +---------------------------------- + Output Type: LSST_CCD ---------------------- +^^^^^^^^^^^^^^^^^^^^^ For reading out LSST CCDs. Optional keywords to set: -^^^^^^^^^^^^^^^^^^^^^^^^^ +"""""""""""""""""""""""" * ``cosmic_ray_rate`` = *float_value* (default = 0) The rate of cosmic rays per second in a sensor. * ``cosmic_ray_catalog`` = *str_value* (default = Distributed with *imSim*) A file containing cosmic ray images to paint on the sensor. @@ -611,12 +621,12 @@ Optional keywords to set: Output Type: readout --------------------- +^^^^^^^^^^^^^^^^^^^^ Parameters modifying the LSSTCamera electronics readout. Optional keywords to set: -^^^^^^^^^^^^^^^^^^^^^^^^^ +"""""""""""""""""""""""" * ``camera_name`` = *str_value* (default = None) The camera object to use. * ``readout_time`` = *float_value* (default = 2.0) The camera readout time in seconds. @@ -628,7 +638,7 @@ Optional keywords to set: * ``read_noise`` = *float_value* (default given by camera object) The read noise in ADU. Output Type: opd --------------------- +^^^^^^^^^^^^^^^^ Write out the optical path differences images to study raytracing behaviour. @@ -639,13 +649,13 @@ Notes: computed for the fiducial telescope focal plane height; i.e., it ignores any detector-by-detector offsets in focal plane height. Required keywords to set: -^^^^^^^^^^^^^^^^^^^^^^^^^ +"""""""""""""""""""""""""" * ``file_name`` = *str_value* (default = None) The name of the file to write OPD images to. * ``fields`` = *list* (default = None) List of field angles for which to compute OPD. Field angles are specified in the (rotated) coordinate system of the telescope's entrance pupil (usually the primary mirror). Optional keywords to set: -^^^^^^^^^^^^^^^^^^^^^^^^^ +"""""""""""""""""""""""""" * ``rotTelPos`` = *angle_value* (default = None) The angle of the camera rotator in degrees. * ``nx`` = *int_value* (default = 255) Size of the OPD image in pixels. From dafc5e84e879e69664c41080d444e30a55b759ac Mon Sep 17 00:00:00 2001 From: Chris Walter Date: Wed, 19 Jul 2023 15:10:13 -0400 Subject: [PATCH 24/33] Make GH happy with underscore lengths. --- doc/config.txt | 132 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 doc/config.txt diff --git a/doc/config.txt b/doc/config.txt new file mode 100644 index 00000000..024d2779 --- /dev/null +++ b/doc/config.txt @@ -0,0 +1,132 @@ + +Options in photon_ops.py ????? +RegisterPhotonOpType(identifier, Factory(), input_type=input_type) +(the registration is in a decorator) + +---- + +input: + *instance_catalog: + + *opsim_data: + + *telescope: + + *sky_model: + + *atm_psf: + + *tree_rings: + + *checkpoint: + + - skyCatalog + +RegisterInputType('instance_catalog', InstCatalogLoader(InstCatalog, has_nobj=True)) +RegisterValueType('InstCatWorldPos', InstCatWorldPos, [CelestialCoord], + input_type='instance_catalog') +RegisterObjectType('InstCatObj', InstCatObj, input_type='instance_catalog') +RegisterSEDType('InstCatSED', InstCatSEDBuilder(), input_type='instance_catalog') + +RegisterInputType('opsim_data', InputLoader(OpsimDataLoader, file_scope=True, takes_logger=True)) +RegisterValueType('OpsimData', OpsimData, [float, int, str], input_type='opsim_data') +RegisterBandpassType('OpsimBandpass', OpsimBandpass(), input_type='opsim_data') + +RegisterInputType('telescope', TelescopeLoader(DetectorTelescope)) + +RegisterInputType('sky_model', SkyModelLoader(SkyModel)) +RegisterValueType('SkyLevel', SkyLevel, [float], input_type='sky_model') + +RegisterInputType('atm_psf', AtmLoader()) +RegisterObjectType('AtmosphericPSF', BuildAtmosphericPSF, input_type='atm_psf') +RegisterObjectType('DoubleGaussianPSF', BuildDoubleGaussianPSF) +RegisterObjectType('KolmogorovPSF', BuildKolmogorovPSF) + +RegisterInputType('tree_rings', InputLoader(TreeRings, takes_logger=True)) +RegisterValueType('TreeRingCenter', TreeRingCenter, [galsim.PositionD], input_type='tree_rings') +RegisterValueType('TreeRingFunc', TreeRingFunc, [galsim.LookupTable], input_type='tree_rings') + +RegisterInputType('checkpoint', InputLoader(Checkpointer, takes_logger=True)) + +RegisterInputType('sky_catalog', + SkyCatalogLoader(SkyCatalogInterface, has_nobj=True)) +RegisterObjectType('SkyCatObj', SkyCatObj, input_type='sky_catalog') +RegisterValueType('SkyCatWorldPos', SkyCatWorldPos, [galsim.CelestialCoord], + input_type='sky_catalog') + + +image: + type: LSST_Image + + bandpass: { type: OpsimBandpass } + + wcs: + + camera: "@output.camera" + + noise: + + sky_level: { type: SkyLevel } # Computed from input.sky_model. + + apply_vignetting: True + vignetting_data_file: LSSTCam_vignetting_data.json + + apply_sky_gradient: True + + use_flux_sky_areas: False + + sensor: + +RegisterImageType('LSST_Flat', LSST_FlatBuilder()) +RegisterImageType('LSST_Image', LSST_ImageBuilder()) + +RegisterWCSType('Batoid', BatoidWCSBuilder(), input_type="telescope") +RegisterWCSType('Dict', DictWCS()) + +psf: + type: Convolve + items: + - + type: AtmosphericPSF + - + type: Gaussian + fwhm: 0.3 + +gal: + type: InstCatObj + +stamp: + type: LSST_Silicon + + world_pos: + type: InstCatWorldPos + + fft_photon_ops: + + photon_ops: + + +RegisterStampType('LSST_Silicon', LSST_SiliconBuilder()) + + +output: + type: LSST_CCD + + camera: LsstCam + + exptime: $exptime + + cosmic_ray_rate: 0.2 + + det_num: + + dir: fits + + readout: + + truth: + +RegisterOutputType('LSST_CCD', LSST_CCDBuilder()) + +RegisterExtraOutput('readout', CameraReadout()) +RegisterExtraOutput('opd', OPDBuilder()) From 0bb4a9d711890c2e7f63b6390982982ebc9dc6cd Mon Sep 17 00:00:00 2001 From: Chris Walter Date: Wed, 19 Jul 2023 15:13:43 -0400 Subject: [PATCH 25/33] Commit the correct file this time. Also remove accidentally committed file. --- doc/config.rst | 2 +- doc/config.txt | 132 ------------------------------------------------- 2 files changed, 1 insertion(+), 133 deletions(-) delete mode 100644 doc/config.txt diff --git a/doc/config.rst b/doc/config.rst index 2db72a5e..4f465661 100644 --- a/doc/config.rst +++ b/doc/config.rst @@ -554,7 +554,7 @@ type: **RubinOptics** Photons ray-traced though the Rubin optical system. Required keywords to set: -"""""""""""""""""""""""" +"""""""""""""""""""""""""" * ``boresight`` = *RaDec_value* (default = None) The CelestialCoord of the boresight of the observation. * ``camera`` = *str_value* (default = None) The name of the camera to use. diff --git a/doc/config.txt b/doc/config.txt deleted file mode 100644 index 024d2779..00000000 --- a/doc/config.txt +++ /dev/null @@ -1,132 +0,0 @@ - -Options in photon_ops.py ????? -RegisterPhotonOpType(identifier, Factory(), input_type=input_type) -(the registration is in a decorator) - ----- - -input: - *instance_catalog: - - *opsim_data: - - *telescope: - - *sky_model: - - *atm_psf: - - *tree_rings: - - *checkpoint: - - - skyCatalog - -RegisterInputType('instance_catalog', InstCatalogLoader(InstCatalog, has_nobj=True)) -RegisterValueType('InstCatWorldPos', InstCatWorldPos, [CelestialCoord], - input_type='instance_catalog') -RegisterObjectType('InstCatObj', InstCatObj, input_type='instance_catalog') -RegisterSEDType('InstCatSED', InstCatSEDBuilder(), input_type='instance_catalog') - -RegisterInputType('opsim_data', InputLoader(OpsimDataLoader, file_scope=True, takes_logger=True)) -RegisterValueType('OpsimData', OpsimData, [float, int, str], input_type='opsim_data') -RegisterBandpassType('OpsimBandpass', OpsimBandpass(), input_type='opsim_data') - -RegisterInputType('telescope', TelescopeLoader(DetectorTelescope)) - -RegisterInputType('sky_model', SkyModelLoader(SkyModel)) -RegisterValueType('SkyLevel', SkyLevel, [float], input_type='sky_model') - -RegisterInputType('atm_psf', AtmLoader()) -RegisterObjectType('AtmosphericPSF', BuildAtmosphericPSF, input_type='atm_psf') -RegisterObjectType('DoubleGaussianPSF', BuildDoubleGaussianPSF) -RegisterObjectType('KolmogorovPSF', BuildKolmogorovPSF) - -RegisterInputType('tree_rings', InputLoader(TreeRings, takes_logger=True)) -RegisterValueType('TreeRingCenter', TreeRingCenter, [galsim.PositionD], input_type='tree_rings') -RegisterValueType('TreeRingFunc', TreeRingFunc, [galsim.LookupTable], input_type='tree_rings') - -RegisterInputType('checkpoint', InputLoader(Checkpointer, takes_logger=True)) - -RegisterInputType('sky_catalog', - SkyCatalogLoader(SkyCatalogInterface, has_nobj=True)) -RegisterObjectType('SkyCatObj', SkyCatObj, input_type='sky_catalog') -RegisterValueType('SkyCatWorldPos', SkyCatWorldPos, [galsim.CelestialCoord], - input_type='sky_catalog') - - -image: - type: LSST_Image - - bandpass: { type: OpsimBandpass } - - wcs: - - camera: "@output.camera" - - noise: - - sky_level: { type: SkyLevel } # Computed from input.sky_model. - - apply_vignetting: True - vignetting_data_file: LSSTCam_vignetting_data.json - - apply_sky_gradient: True - - use_flux_sky_areas: False - - sensor: - -RegisterImageType('LSST_Flat', LSST_FlatBuilder()) -RegisterImageType('LSST_Image', LSST_ImageBuilder()) - -RegisterWCSType('Batoid', BatoidWCSBuilder(), input_type="telescope") -RegisterWCSType('Dict', DictWCS()) - -psf: - type: Convolve - items: - - - type: AtmosphericPSF - - - type: Gaussian - fwhm: 0.3 - -gal: - type: InstCatObj - -stamp: - type: LSST_Silicon - - world_pos: - type: InstCatWorldPos - - fft_photon_ops: - - photon_ops: - - -RegisterStampType('LSST_Silicon', LSST_SiliconBuilder()) - - -output: - type: LSST_CCD - - camera: LsstCam - - exptime: $exptime - - cosmic_ray_rate: 0.2 - - det_num: - - dir: fits - - readout: - - truth: - -RegisterOutputType('LSST_CCD', LSST_CCDBuilder()) - -RegisterExtraOutput('readout', CameraReadout()) -RegisterExtraOutput('opd', OPDBuilder()) From c95948b25e63e2c44d7815ca50ac3ce786f451d6 Mon Sep 17 00:00:00 2001 From: Chris Walter Date: Wed, 19 Jul 2023 15:22:20 -0400 Subject: [PATCH 26/33] Ugh.. more underlines too short. --- doc/config.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/config.rst b/doc/config.rst index 4f465661..4653058a 100644 --- a/doc/config.rst +++ b/doc/config.rst @@ -573,7 +573,7 @@ Required keywords to set: Optional keywords to set: -"""""""""""""""""""""""" +"""""""""""""""""""""""""" * ``latitude`` = *bool_value* (default = True) The latitude of the observatory. * ``disable_field_rotation`` = *bool_value* (default = False) Do not consider the effect of the rotation of the camera relative to the spiders of the telescope during the exposure. @@ -613,7 +613,7 @@ Output Type: LSST_CCD For reading out LSST CCDs. Optional keywords to set: -"""""""""""""""""""""""" +"""""""""""""""""""""""""" * ``cosmic_ray_rate`` = *float_value* (default = 0) The rate of cosmic rays per second in a sensor. * ``cosmic_ray_catalog`` = *str_value* (default = Distributed with *imSim*) A file containing cosmic ray images to paint on the sensor. @@ -626,7 +626,7 @@ Output Type: readout Parameters modifying the LSSTCamera electronics readout. Optional keywords to set: -"""""""""""""""""""""""" +"""""""""""""""""""""""""" * ``camera_name`` = *str_value* (default = None) The camera object to use. * ``readout_time`` = *float_value* (default = 2.0) The camera readout time in seconds. From c24436a74bfa8ec6316bfa62904ea9eca0321017 Mon Sep 17 00:00:00 2001 From: Chris Walter Date: Wed, 19 Jul 2023 16:54:35 -0400 Subject: [PATCH 27/33] Make the tables reasonable. It fills me with rage I had to do this. --- doc/_static/custom.css | 7 +++++++ doc/conf.py | 7 +++++++ 2 files changed, 14 insertions(+) create mode 100644 doc/_static/custom.css diff --git a/doc/_static/custom.css b/doc/_static/custom.css new file mode 100644 index 00000000..6628c12d --- /dev/null +++ b/doc/_static/custom.css @@ -0,0 +1,7 @@ +.tight-table td { + white-space: normal !important; +} + +.wy-nav-content { + max-width: none; +} diff --git a/doc/conf.py b/doc/conf.py index 74e5554d..845641f7 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -9,6 +9,13 @@ sys.path.insert(0, os.path.abspath("..")) +html_static_path = ['_static'] + +html_css_files = [ + 'custom.css', +] + + def load_imsim_version(): """Extract version of imsim without importing the whole imsim module""" From 4b48bd59c69beb8f0e6ef3bb6de0f0e6f5fd715d Mon Sep 17 00:00:00 2001 From: Chris Walter Date: Wed, 19 Jul 2023 16:54:53 -0400 Subject: [PATCH 28/33] updates tables through sky. --- doc/features.rst | 62 +++++++++++++++++++++++------------------------- 1 file changed, 30 insertions(+), 32 deletions(-) diff --git a/doc/features.rst b/doc/features.rst index 4998725e..b87c8c76 100644 --- a/doc/features.rst +++ b/doc/features.rst @@ -1,15 +1,15 @@ Features Implemented in imSim ############################# -This summary table should give a high level overview of effects. For detailed information please make/link to a subpage or appropriate reference. +These summary tables should give a high level overview of effects that have been implmented in imSim. For detailed information please make/link to a subpage or appropriate reference. Go directly to: `Sensors `_ - `Sky `_ - `Throughputs `_ - `Atmospheric `_ - `Optics `_ - `Calibration Products `_ Sensor Table ------------ - -.. image:: img/features.svg +.. + .. image:: img/features.svg This table is a list of current and not yet implemented sensor effects in imSim along with pointers to the techniques used to @@ -19,6 +19,7 @@ peformed. .. list-table:: :widths: 10 10 10 15 15 :header-rows: 1 + :class: tight-table * - Effect - Implementation @@ -46,42 +47,39 @@ peformed. * - CTE - readout.py - - + - Camera Integration and Testing - - * - Noise Rate - readout.py + - Camera Integration and Testing - - - - Noise rate is YYY * - Xtalk - readout.py - - Currently Unknown + - Camera Integration and Testing - - - Crosstalk values are read from obs_lsst. + - Crosstalk values are read from obs_lsst camera discription * - Hot Pixels/Rows - - See Note + - **being implemented** + - Camera Integration and Testing - - - - We will mask locations without actually simulating them. * - Fringing - - Not yet - - + - **being implemented** + - Sensor Testing and electromagnetic model + - Please see: https://inspirehep.net/literature/2183279 - - - Some formalism and a standalone simulation - `here `__. - The hooks to implement code for this in exist now in the GalSim API (more info needed) * - Cosmic Rays - - cosmic_rays.py: Approximately 10K cosmic rays which are randomly addd to - the exposures can be be found in cosmic_ray_catalog.fits.gz - - Template data taken from ITL test stands at UofA. + - cosmic_rays.py: ~10K cosmic are randomly added to the exposures. + - Template data taken from ITL test stands at UofA. We should remeasure on summit. + - - - - We should normalize to mountain level. * - Edge rolloff - Not yet @@ -90,26 +88,26 @@ peformed. - * - Bleeding - - Not yet - - Test stand at Davis. Specialized bleed run. + - bleed_trails.py called from readout.py + - Test stand at Davis. Specialized bleed runs. + - - - - Current tests are exploring behavior at the midline for ITL and E2V sensors * - Spider Diffraction - - diffraction.py, photon_ops.py + - diffraction.py, diffraction_fft.py photon_ops.py - - - Statistical Diffraction during batoid ray tracing. + - Statistical Diffraction during batoid ray tracing or parametric model with FFT. - Page link :doc:`validation/diffraction` Sky Model --------- -imSim uses the project sky model. It is located in the sims stack and called -sims_skybrightness. +imSim uses the Rubin project sky model. It is called sims_skybrightness and is located in the rubin-sims package which is an *imSim* dependency. .. list-table:: :widths: 10 10 10 15 15 :header-rows: 1 + :class: tight-table * - Effect - Implementation @@ -118,16 +116,12 @@ sims_skybrightness. - Validation Page and Notebooks * - Sky Background - - LSST eups package `git repo `_ + - See `here `_ - Based on the `ESO sky brightness model `_ and all-sky camera data from LSST site for twilight sky. - - The model includes light from twilight (scattered sunlight), zodiacal light - (scattered sunlight from SS dust), scattered moonlight, airglow, and emission lines - from the upper and lower atmosphere. The model can return SEDs or - magnitude per sq arcsec in LSST filters. + - The model includes light from twilight (scattered sunlight), zodiacal light (scattered sunlight from SS dust), scattered moonlight, airglow, and emission lines from the upper and lower atmosphere. The model can return SEDs or magnitude per sq arcsec in LSST filters. - Validation plots can be found in the `SPIE paper `_. - Note the model does not include any "weather" (e.g., clouds, variable OH emission). - There is an option to change the solar activity, which scales the airglow component. + Note the model does not include any "weather" (e.g., clouds, variable OH emission). There is an option to change the solar activity, which scales the airglow component. System Throughputs ------------------- @@ -144,6 +138,7 @@ We need more research then we can add more information to a detailed page for ea .. list-table:: :widths: 10 10 10 15 15 :header-rows: 1 + :class: tight-table * - Effect - Implementation @@ -197,6 +192,7 @@ Atmospheric model .. list-table:: :widths: 10 10 10 15 15 :header-rows: 1 + :class: tight-table * - Effect - Implementation @@ -216,6 +212,7 @@ Optical model .. list-table:: Sky Model :widths: 10 10 10 15 15 :header-rows: 1 + :class: tight-table * - Effect - Implementation @@ -248,6 +245,7 @@ Calibration Products .. list-table:: :widths: 10 10 10 15 15 :header-rows: 1 + :class: tight-table * - Effect - Implementation From 12f36849df122a36f072bc0905969a030c4d3a3d Mon Sep 17 00:00:00 2001 From: Chris Walter Date: Wed, 19 Jul 2023 22:54:31 -0400 Subject: [PATCH 29/33] Update the section on features. There are a few missing sections, but they are noted. --- doc/config.rst | 4 +- doc/features.rst | 119 +++++++++++----------------- doc/validation/aberrated-optics.rst | 8 +- 3 files changed, 55 insertions(+), 76 deletions(-) diff --git a/doc/config.rst b/doc/config.rst index 4653058a..1c99b173 100644 --- a/doc/config.rst +++ b/doc/config.rst @@ -276,10 +276,12 @@ Atmospheric PSF The class is used to create the PSF which is induced by the atmosphere. There are two parametric PSFs available: a double Gaussian and a Kolmogorov PSF. The ``AtmosphericPSF`` type is a fully ray-traced turbulent atmosphere with multiple atmospheric layers. Additionally, you can optionally add a parametric PSF screen which simulates the Rubin Optics. +.. _AtmosphericPSF-label: + Key Name: atmosphericPSF ^^^^^^^^^^^^^^^^^^^^^^^^ -This keyword enables an atmospheric PSF with 6 randomly generated atmospheric screens. Photons are raytraced through this atmosphere to produce a realistic atmospheric PSF. See section (``needs to be added``) for more information on the model. +This keyword enables an atmospheric PSF with 6 randomly generated atmospheric screens. Photons are raytraced through this atmosphere to produce a realistic atmospheric PSF. .. warning:: You should not attempt to use the option to add parametric optics (through the ``doOpt`` option) if you are using fully ray-traced optics. Otherwise, you will simulate the optics twice. See See :ref:`the stamp keyword ` below how to activate the ray-traced mode. diff --git a/doc/features.rst b/doc/features.rst index b87c8c76..25223b1a 100644 --- a/doc/features.rst +++ b/doc/features.rst @@ -1,20 +1,17 @@ Features Implemented in imSim ############################# -These summary tables should give a high level overview of effects that have been implmented in imSim. For detailed information please make/link to a subpage or appropriate reference. +These summary tables should give a high level overview of effects that have been implemented in imSim. For detailed information please see the linked sub-pages, code, or appropriate reference. Go directly to: -`Sensors `_ - `Sky `_ - `Throughputs `_ - `Atmospheric `_ - `Optics `_ - `Calibration Products `_ +`Sensors `_ - `Sky `_ - `Throughputs `_ - `Atmospheric PSF `_ - `Optics `_ - `Calibration Products `_ -Sensor Table ------------- +Sensor Effects +-------------- .. .. image:: img/features.svg -This table is a list of current and not yet implemented -sensor effects in imSim along with pointers to the techniques used to -implement them and the internal validation tests that have been -peformed. +This table is a list of sensor effects in imSim along with pointers to the techniques used to implement them, and the internal validation tests that have been performed. .. list-table:: :widths: 10 10 10 15 15 @@ -93,11 +90,7 @@ peformed. - - - * - Spider Diffraction - - diffraction.py, diffraction_fft.py photon_ops.py - - - - Statistical Diffraction during batoid ray tracing or parametric model with FFT. - - Page link :doc:`validation/diffraction` + Sky Model --------- @@ -126,14 +119,10 @@ imSim uses the Rubin project sky model. It is called sims_skybrightness and is l System Throughputs ------------------- -All of the system throughputs are recorded in -`baseline `_. -This information is copied from the System Engineering database. More information can be -found in the `README `_ file. -In that directory you can find a graphical representation of the total throughput along with datafile -representing each component and the total throughput. The file representing each throughput curve is -referenced below. [It looks like the README might be a bit out of date with the files.. -We need more research then we can add more information to a detailed page for each] +All of the system throughputs are recorded in the `throughputs baseline `_. +This information is copied from the System Engineering database. More information can be found in the `README `_ file. +In that directory you can find a graphical representation of the total throughput along with datafile representing each component and the total throughput. The file representing each throughput curve is +referenced below. .. list-table:: :widths: 10 10 10 15 15 @@ -148,68 +137,59 @@ We need more research then we can add more information to a detailed page for ea * - Camera QE and AR - detector.dat - - SysEngineering 1.1 + - SysEngineering 1.7 - Expected response (QE response + AR coatings) of the CCDs provided by each of the two vendors under consideration. - - We expect a merge from the SysEng database very soon. + - * - Lens - lens[1,2,3].dat - - SysEngineering 1.1 + - SysEngineering 1.7 - Combination of fused silicon and BroadBand AntiReflective (BBAR) coatings - * - Filters - filter[u,g,r,i,z,y].dat - - SysEngineering 1.1 - - Filter throughput in each band (from manufacturer?) - - + - SysEngineering 1.7 + - Filter throughput in each band. We expect an update with as-built numbers soon. + - * - Mirrors - m[1,2,3].dat - - SysEngineering 1.1 + - SysEngineering 1.7 - Reflectivity curve for each mirror - * - Atmosphere - atmosphere_std.dat and atmosphere_10.dat - - SysEngineering 1.1 + - SysEngineering 1.7 - MODTRAN based standard US atmosphere with Aerosols added. - Both typical (standard) throughput with airmass X=1.2 and optimum X=1.0 files are provided * - Total - total[u,g,r,i,z,y].dat - - SysEngineering 1.1 + - SysEngineering 1.7 - The total throughput by band - -[What about darsky.dat? Do we use this, now that we have the ESO model? -Or is this used by OpSim? Should we include it? What is hardware[u,g,r,i,z,y].dat?] +.. note:: + + The hardware[u,g,r,i,z,y].dat files contain everything except atmospheric effects. Multiplying those with the atmosphere results in a total throughput curve. Atmospheric throughputs for a large set of atmospheres can be found in https://github.com/lsst/throughputs/tree/main/atmos. -Atmospheric model +Atmospheric PSF model ----------------- -.. list-table:: - :widths: 10 10 10 15 15 - :header-rows: 1 - :class: tight-table +.. note:: - * - Effect - - Implementation - - Data / Model Source - - Short description - - Validation Page and Notebooks + To be added. See the :ref:`atmospheric psf ` config section on how to configure the atmosphere and in https://iopscience.iop.org/article/10.3847/1538-4365/abd62c for a description of the model. - * - - - - - - - - - Optical model ------------- -.. list-table:: Sky Model +You have a choice of parametric of fully raytraced optics via *batoid*. + +.. list-table:: :widths: 10 10 10 15 15 :header-rows: 1 :class: tight-table @@ -221,46 +201,41 @@ Optical model - Validation Page and Notebooks * - Vignetting - - Not yet - - + - vignetting.py - + - Either emergent for raytraced objects or via a function for those produced via FFT. The sky backround is vignetted via a function. - * - Ghosts - - Not currently possible + - Not currently possible. Planned in the next version of *imSim* when the abilty to handle raytraced light across multiple sensors being processed in parallel will be updated. - - - - There is currently no optical ray trace + - + + * - Spider Diffraction Spikes + - diffraction.py, diffraction_fft.py photon_ops.py + - + - Statistical Diffraction during batoid ray tracing or parametric model with FFT. + - Page link :doc:`validation/diffraction` * - Aberrated optics - - optical_system.py - - Sensitivity matrix from LSST SE LCA-XXX - - Difference from AO corrected mean represented as a sum of Zernikes contributing a phase screen. - - Page link :doc:`validation/aberrated-optics` + - optical_system.py telescope_loader.py + - + - Either a parametric model built around a sensitivity matrix, or a fully raytraced optical model with FEA and pertubation controls using several degrees of freedom including bending modes and physical actuators. + - Page link :doc:`validation/aberrated-optics` for the parametric case :doc:`lsst-optical` for the raytraced case. Calibration Products -------------------- -.. list-table:: - :widths: 10 10 10 15 15 - :header-rows: 1 - :class: tight-table +.. note:: - * - Effect - - Implementation - - Data / Model Source - - Short description - - Validation Page and Notebooks + To be added. Description of flats, darks etc need to be added. - * - - - - - - - - - +Detailed Description of Physical Effects Implemented in imSim +------------------------------------------------------------- -Detailed Physical Effects Implemented in imSim ----------------------------------------------- +Several of the effects listed above have detailed pages descrubing how the model was constructed and what data was used. .. toctree:: :maxdepth: 2 diff --git a/doc/validation/aberrated-optics.rst b/doc/validation/aberrated-optics.rst index 5937bf63..b80d0d92 100644 --- a/doc/validation/aberrated-optics.rst +++ b/doc/validation/aberrated-optics.rst @@ -1,6 +1,8 @@ Effect: Abberated Optics ######################## +(Parameteric Version) + The LSST active optics system (AOS) is designed to minimize optical aberrations by modifying the positions and surface figures of telescope components in real time. The LSST AOS is comprised of two @@ -69,7 +71,7 @@ nominal value :math:`n_i` and deviations from that nominal value W(u,v,x,y) = \sum_i \left(n_i(x,y) + \delta n_i(x,y)\right) Z_i(u,v). - + The nominal Zernike coefficients are estimated using the Zemax model. These will differ slightly from the real LSST, however an “as-built” Zemax model will not be available until closer to the @@ -87,7 +89,7 @@ From these distributions, the aberrated optics model generates a random set of optical deviations representing an independent state of the LSST optics system. These deviations are then mapped to the corresponding Zernike coefficients using the sensitivity matrix -:math:`A` outlined in `Angeli, Xin et. al +:math:`A` outlined in `Angeli, Xin et. al 2014 `_ The sensitivity matrix, and by extension :math:`\delta_n`, has been @@ -115,7 +117,7 @@ Completed Checks Uncompleted Checks ~~~~~~~~~~~~~~~~~~ -3. The average PSF due strictly to the optical system should be +3. The average PSF due strictly to the optical system should be physically reasonable over a large collection of random optical states. Validation Results: From 38dd849e3a05e80464e7bfc66c024864fdc67562 Mon Sep 17 00:00:00 2001 From: Chris Walter Date: Wed, 19 Jul 2023 22:57:06 -0400 Subject: [PATCH 30/33] "Title underline too short." bane of my existence. --- doc/features.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/features.rst b/doc/features.rst index 25223b1a..64a3bc6a 100644 --- a/doc/features.rst +++ b/doc/features.rst @@ -177,7 +177,7 @@ referenced below. The hardware[u,g,r,i,z,y].dat files contain everything except atmospheric effects. Multiplying those with the atmosphere results in a total throughput curve. Atmospheric throughputs for a large set of atmospheres can be found in https://github.com/lsst/throughputs/tree/main/atmos. Atmospheric PSF model ------------------ +--------------------- .. note:: From fff24f321d9e0549b3b5883019b69a465b40ef5b Mon Sep 17 00:00:00 2001 From: Chris Walter Date: Wed, 19 Jul 2023 23:14:08 -0400 Subject: [PATCH 31/33] Cleanup and make notes in non-complete sections. Put guidance and ideas in for: data-formats.rst lsst-camera.rst lsst-optical.rst module-use.rst including adding an image of the camera focal plane. --- doc/data-formats.rst | 11 +++-------- doc/features.rst | 4 ++-- doc/img/FP_layout.png | Bin 0 -> 315272 bytes doc/lsst-camera.rst | 6 ++++++ doc/lsst-optical.rst | 3 +++ doc/module-use.rst | 2 ++ 6 files changed, 16 insertions(+), 10 deletions(-) create mode 100644 doc/img/FP_layout.png diff --git a/doc/data-formats.rst b/doc/data-formats.rst index 2b39e731..fd72ab5f 100644 --- a/doc/data-formats.rst +++ b/doc/data-formats.rst @@ -1,14 +1,9 @@ Data formats of input and output files ###################################### -:: +.. note:: - show how to use + This section could be used to explain in more details about the various input and output files, what is in them, how to use and visualize them. - sky catalogs? - instance catalogs? - - - contents of files - viewing with ds9 etc + Not yet written. diff --git a/doc/features.rst b/doc/features.rst index 64a3bc6a..fd28ca4d 100644 --- a/doc/features.rst +++ b/doc/features.rst @@ -28,13 +28,13 @@ This table is a list of sensor effects in imSim along with pointers to the techn - GalSim Feature (Silicon.cpp) - Linear scaling of pixel edge vertices displacement derived with Poisson Solver. Pre-computed solutions available for both E2V and ITL sensors, with both 8 and 32 vertices per edge. - GalSim reads in vertex data from full electrostatic Poisson solver, scales them linearly with collected charges, and co-adds the effects from all pixels iteratively while collecting the image. - - Page link :doc:`validation/brighter-fatter` + - :doc:`validation/brighter-fatter` * - Diffusion - GalSim Feature (sensor.py / Silicon.cpp) - Diffusion Parameters estimated from first principles and validated with Fe55 - GalSim applies random Gaussian displacement for every photon using temperature and voltage dependent amplitude, See page link - - Page link :doc:`validation/diffusion` + - :doc:`validation/diffusion` * - Tree Rings - GalSim Feature (Silicon.cpp) / imSim configuration (tree_rings.py) diff --git a/doc/img/FP_layout.png b/doc/img/FP_layout.png new file mode 100644 index 0000000000000000000000000000000000000000..cbbe8aefadf21f6a1bbc95f29abf4300a84ce93c GIT binary patch literal 315272 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

U|2J?0d*5R)XF>Z+zbS7^D8;*w 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≈o6jKfVbZli8sT>{u-v7T^GX7Igd(E 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 M`rN6a6LvTL3p)BB=Kufz literal 0 HcmV?d00001 diff --git a/doc/lsst-camera.rst b/doc/lsst-camera.rst index 2cf5b00e..28ee638b 100644 --- a/doc/lsst-camera.rst +++ b/doc/lsst-camera.rst @@ -2,9 +2,15 @@ Understanding the LSST Camera =============================== +.. note:: + + This section will contain an image of the focal plane, a description of the sensor numbering scheme, and how to specify sensors to simulate in the YAML input files. + The Camera Layout ----------------- +.. image:: img/FP_layout.png + Specifying which sensors to simulate ------------------------------------ diff --git a/doc/lsst-optical.rst b/doc/lsst-optical.rst index 14141bae..c78dfbb0 100644 --- a/doc/lsst-optical.rst +++ b/doc/lsst-optical.rst @@ -4,6 +4,9 @@ The Rubin Optical System ======================== +.. note:: + This section will explain how to control the optical system through batoid along with examples for YAML file input. Basic introduction to batoid concepts would also be appropriate. + Controlling Optical Perturbations --------------------------------- diff --git a/doc/module-use.rst b/doc/module-use.rst index 72b54597..96fa0208 100644 --- a/doc/module-use.rst +++ b/doc/module-use.rst @@ -1,3 +1,5 @@ Using the imSim module with other GalSim based Programs ======================================================= +.. note:: + This section could contain information on how the imsim module classes (such as input and electronics readout) could be used with other GalSim based programs such as shear-estimation, SSI and blending programs. From 2018b695a93b49e8837e22164f3411ea85c5a50d Mon Sep 17 00:00:00 2001 From: Chris Walter Date: Thu, 20 Jul 2023 13:28:52 -0400 Subject: [PATCH 32/33] Fix throughput after feedback from Lynne. --- doc/features.rst | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/doc/features.rst b/doc/features.rst index fd28ca4d..b6fc56d6 100644 --- a/doc/features.rst +++ b/doc/features.rst @@ -138,8 +138,7 @@ referenced below. * - Camera QE and AR - detector.dat - SysEngineering 1.7 - - Expected response (QE response + AR coatings) of the CCDs provided by each of the two - vendors under consideration. + - Expected response (QE response + AR coatings) of the CCDs. Currently, these numbers are joint minimums of the responses of the two vendor's sensors (e2V and ITL). - * - Lens From 7fcf0df9179be2b8b82679da994067e5e13e94bc Mon Sep 17 00:00:00 2001 From: Chris Walter Date: Thu, 20 Jul 2023 13:30:59 -0400 Subject: [PATCH 33/33] Add note with source hosting location. --- doc/index.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/index.rst b/doc/index.rst index 78040146..52d3ef42 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -6,6 +6,8 @@ imSim is a software package that simulates the Rubin Observatory and LSST survey This documentation covers installation, configuration, and usage instructions for the imSim program. It also includes descriptions of several of the models implemented by imSim. +The source code of *imSim* is hosted at https://github.com/LSSTDESC/imSim. + Contents ########