Package: deepsurveysim
SummaryModern astronomical surveys have multiple competing scientific goals.
Optimizing the observation schedule for these goals presents significant computational and theoretical challenges, and state-of-the-art methods rely on expensive human inspection of simulated telescope schedules.
Automated methods, such as reinforcement learning, have recently been explored to accelerate scheduling.DeepSurveySimprovides methods for tracking and approximating sky conditions for a  set of observations from a user-supplied telescope configuration.DocumentationReadTheDocsBuild locallyFirst install the package from source, then runpip install sphinx
cd docs
make htmlThe folderdocs/_build/htmlwill be populated with the documentation.
Navigate tofile:///<path to local install>/docs/_build/html/index.htmlin any web browser to view.InstallationInstall from pipSimply runpip install DeepSurveySimThis will install the project with all its mandatory requirements.If you wish to include the optionalskybright, use the command:pip install DeepSurveySim[skybright]Not installing this will result in loss of the variablessky_magintude,tau, andteff, but will work on most (if not all) machines.Install from sourceThe project is built withpoetry, and this is the recommended install method.
All dependencies are resolved in thepoetry.lockfile, so you can install immediately from the commandgit clone https://github.com/deepskies/DeepSurveySim.git
poetry shell
poetry install --all-extrasAssuming you have poetry installed on your base environment.
This will use lock file to install all the correct versions.
To use the installed environment, use the commandpoetry shellto enter it.
The commandexitwill take you out of this environment as it would for any other type of virtual environment.Otherwise, you can use thepyproject.tomlwith your installer of choice.To verify all the depedencies are properly installed - runpython run pytest.Example:To run as a live envoriment for RLfrom DeepSurveySim.Survey.survey import Survey
from DeepSurveySim.IO.read_config import ReadConfig

seo_config = ReadConfig(
        observator_configuration="DeepSurveySim/settings/SEO.yaml"
    )()

survey_config = ReadConfig(
        observator_configuration="DeepSurveySim/settings/equatorial_survey.yaml",
        survey=True
    )()

env = Survey(seo_config, survey_config)
observation = env._observation_calculation()

stop = True
while not stop:
    action = model.predict_action(observation)
    observation, reward, stop, log = env.step()To generate observationsfrom DeepSurveySim.Survey.survey import Survey
from DeepSurveySim.IO.read_config import ReadConfig

seo_config = ReadConfig(
        observator_configuration="DeepSurveySim/settings/SEO.yaml"
    )()

survey_config = ReadConfig(
        observator_configuration="DeepSurveySim/settings/equatorial_survey.yaml",
        survey=True
    )()

env = Survey(seo_config, survey_config)
observations = env()AcknowledgementThis work was produced by Fermi Research Alliance, LLC under Contract No. DE-AC02-07CH11359 with the U.S. Department of Energy, Office of Science, Office of High Energy Physics. Publisher acknowledges the U.S. Government license to provide public access under the DOE Public Access Plan DOE Public Access Plan.We acknowledge the Deep Skies Lab as a community of multi-domain experts and collaborators who’ve facilitated an environment of open discussion, idea-generation, and collaboration. This community was important for the development of this project.We thank Franco Terranova  and Shohini Rhae for their assistance in testing the preliminary version of the package, and Eric Neilsen  Jr. for his domain expertise.CitationIf this package is useful for your work, we request you cite us:If theskybrightoption is used, we also encourage its citation:@misc{skybright_Neilsen:2019,
    author = "Neilsen, Eric",
    title = "{skybright}",
    reportNumber = "FERMILAB-CODE-2019-01",
    doi = "10.11578/dc.20190212.1",
    month = "2",
    year = "2019"
}