Tutorial: Generating Mock Catalogs with Lightcones - galacticusorg/galacticus GitHub Wiki

Suppose that you want to create a catalog of galaxies as would be found in a survey of an area of the sky out to some redshift. Such a “mock catalog” can be built by populating with galaxies all of the dark matter halos which happen to lie within the cone which that area makes as it is projected from the observer through the Universe.

Generating such a mock catalog using Galacticus involves first extracting the halos (and their merger trees) within this “lightcone” from a suitable N-body simulation, and then processing them through . In this tutorial, we will specifically make use of the Millennium Simulation database to provide the merger trees, but the same principles apply to any N-body simulation.

The script, scripts/aux/Millennium_Lightcone_Grab.pl can be used to retrieve merger trees that intersect a given lightcone from the Millennium Database and to store them in ’s format (see here). The script is used as follows:

    scripts/aux/Millennium_Lightcone_Grab.pl <lightconeDirectory> <fieldSize> <maximumRedshift>
        --user <myUserName> --password <myPassword> --treesPerFile <treesPerFile>

Here, <lightconeDirectory> is the name of a (pre-existing) directory into which merger tree data will be stored, <fieldSize> is the length (in degrees) of one side of the square field of view of the lightcone, <maximumRedshift> is the highist redshift for which halos should be included in the catalog. The --user and --password options allow you to specify your username and password for accessing the Millennium Simulation database. Finally, the --treesPerFile specifies how many merger trees should be stored in each file (the script will split the lightcone between many files—this is primarily so that each request sent to the Millennium Database server is not too large). If no value is specified a default of 200 trees per file will be used.

The script generates multiple SQL queries to the Millennium database in order to first find all halos which intersect the lightcone and second to retrieve the complete merger tree associated with each such halo. These merger trees are then stored in ’s merger tree file format in files named Lightcone_Trees_AAA:BBB.hdf5 in the given <lightconeDirectory>, where AAA and BBB are numbers giving the first and last trees in the file5.

Each of the merger tree files created can then be run through Galacticus in the usual way (see the tutorial on "Using N-body Merger Trees"). Outputs should be requested at every Millennium snapshot (up to the largest redshift to be considered), and the lightcone filter should be used to cause only those galaxies which intersect the lightcone to be output—for example:

    <!-- Set output redshifts to the snapshots in the Millennium Simulation. -->
    <outputRedshifts value=
       "0.0000 0.0199 0.0414 0.0645 0.0893 0.1159 0.1444 0.1749 0.2075 0.2425
        0.2798 0.3197 0.3623 0.4079 0.4566 0.5086 0.5642 0.6236 0.6871 0.7550
        0.8277 0.9055 0.9887 1.0779 1.1734 1.2758 1.3857 1.5036 1.6303 1.7663
        1.9126 2.0700 2.2395 2.4220 2.6189 2.8312 3.0604 3.3081 3.5759 3.8657
        4.1795 4.5196 4.8884 5.2888 5.7239 6.1968"
    />

    <!-- Add a lightcone filter with the required geometry -->
    <mergerTreeOutput>
      <galacticFilter value="lightcone"/>
    </mergerTreeOutput>

    <!-- Switch on output of lightcone data -->
    <outputLightconeData value="true"/>

    <!-- Prune away trees not appearing in the lightcone -->
    <mergerTreeOperator value="pruneLightcone"/>

    <!-- Specify lightcone geometry -->
    <geometryLightcone value="square">
      <origin value="0 0 0"/>
      <unitVector1 value=" 1 1  1"/>
      <unitVector2 value=" 0 1 -1"/>
      <unitVector3 value="-2 1  1"/>
      <lengthReplication value="500"/>
      <lengthHubbleExponent value="-1"/>
      <lengthUnitsInSI value="3.08567758135e22"/>
      <angularSize value="0.5"/>
      <timeEvolvesAlongLightcone value="true"/>
      <redshift value=
       "0.0000 0.0199 0.0414 0.0645 0.0893 0.1159 0.1444 0.1749 0.2075 0.2425
        0.2798 0.3197 0.3623 0.4079 0.4566 0.5086 0.5642 0.6236 0.6871 0.7550
        0.8277 0.9055 0.9887 1.0779 1.1734 1.2758 1.3857 1.5036 1.6303 1.7663
        1.9126 2.0700 2.2395 2.4220 2.6189 2.8312 3.0604 3.3081 3.5759 3.8657
        4.1795 4.5196 4.8884 5.2888 5.7239 6.1968"
      />
    </geometryLightcone>

In the above causes lightcone coordinate information (i.e. the position and velocity of each galaxy in a coordinate system with axes aligned along the line of sight of the lightcone and parallel to the two edges of the square field of view, along with the redshift) to be output (see the documentation on the lightcone nodePropertyExtractor), and is set to pruneLightcone to cause any merger trees which have no nodes within the lightcone volume to be pruned away (as there is no need to process them). Finally, the geometryLightcone parameter describes the geometry of the lightcone to be used—see the documentation for details.

⚠️ **GitHub.com Fallback** ⚠️