Source code for generate_array_config
#!/usr/bin/python3
"""
Generate sim_telarray configuration files for a given array.
The applications generates the sim_telarray configuration files for a given array, site,
and model_version using the model parameters stored in the database.
Command line arguments
----------------------
site : str
Site name (e.g., North, South).
array_layout_name : str
Name of the layout array (e.g., test_layout, alpha, 4mst, etc.).
array_element_list : list
List of array elements (e.g., telescopes) to plot (e.g., ``LSTN-01 LSTN-02 MSTN``).
Example
-------
North - 5.0.0:
.. code-block:: console
simtools-generate-array-config --site North --array_layout_name alpha --model_version 5.0.0
The output is saved in simtools-output/test/model.
"""
import logging
from pathlib import Path
import simtools.utils.general as gen
from simtools.configuration import configurator
from simtools.model.array_model import ArrayModel
def _parse(label, description):
"""
Parse command line configuration.
Parameters
----------
label : str
Label describing the application.
description : str
Description of the application.
Returns
-------
CommandLineParser
Command line parser object.
"""
config = configurator.Configurator(label=label, description=description)
return config.initialize(db_config=True, simulation_model=["site", "layout", "model_version"])
[docs]
def main():
"""Generate sim_telarray configuration files for a given array."""
args_dict, db_config = _parse(
label=Path(__file__).stem,
description=("Generate sim_telarray configuration files for a given array."),
)
logger = logging.getLogger("simtools")
logger.setLevel(gen.get_log_level_from_user(args_dict["log_level"]))
array_model = ArrayModel(
label=args_dict["label"],
model_version=args_dict["model_version"],
mongo_db_config=db_config,
site=args_dict.get("site"),
layout_name=args_dict.get("array_layout_name"),
array_elements=args_dict.get("array_elements"),
)
array_model.print_telescope_list()
array_model.export_all_simtel_config_files()
if __name__ == "__main__":
main()