IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Aug 23, 2010, 7:26:50 AM (16 years ago)
Author:
eugene
Message:

add option to change output image size (not yet working); fix scale parameters for random galaxies

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ppSim/src/ppSimMakeGalaxies.c

    r29002 r29011  
    109109                // galaxy->index = (1/2n)
    110110
    111                 float factor = galaxyGridRandom ? drand48() : i / num;
    112                 float index = (galaxyIndexMin  + factor * galaxyIndexSlope); // factor of 0.5 because the Sersic model creates exp(-z^n), not exp(-r^n)
    113                 galaxy->index = 0.5/index;
     111                float rndValue;
    114112
    115                 factor = galaxyGridRandom ? drand48() : i / num;
    116                 float scale = (galaxyRmajorMin + factor * galaxyRmajorSlope);
     113                rndValue = galaxyGridRandom ? drand48() : i / num;
     114                float index = (galaxyIndexMin  + rndValue * galaxyIndexSlope);
     115                galaxy->index = 0.5/index; // factor of 0.5 because the Sersic model creates exp(-z^n), not exp(-r^n)
     116
     117                rndValue = galaxyGridRandom ? drand48() : i / num;
     118                float scale = (galaxyRmajorMin + rndValue * galaxyRmajorSlope);
    117119
    118120                // for a sersic model,
     
    121123                float Io = exp(bn);
    122124
    123                 // galaxy->Rmaj  = scale * fR;
    124 
    125125                galaxy->Rmaj  = scale;
    126126
    127                 factor = galaxyGridRandom ? drand48() : i / num;
    128                 galaxy->Rmin  = (galaxyARatioMin + factor * galaxyARatioSlope) * galaxy->Rmaj;
     127                rndValue = galaxyGridRandom ? drand48() : i / num;
     128                galaxy->Rmin  = (galaxyARatioMin + rndValue * galaxyARatioSlope) * galaxy->Rmaj;
    129129
    130                 factor = galaxyGridRandom ? drand48() : i / num;
    131                 galaxy->theta = (galaxyThetaMin  + factor * galaxyThetaSlope);
     130                rndValue = galaxyGridRandom ? drand48() : i / num;
     131                galaxy->theta = (galaxyThetaMin  + rndValue * galaxyThetaSlope);
    132132
    133133                // galaxy->peak *= Io;
     
    158158            galaxy->y    = psRandomUniform(rng) * ySize; // y position
    159159
    160             // galaxy->flux = pow ((double)((i + 1) / norm), (double) (1.0 / galaxyLum));
     160            float index = (sqrt(psRandomUniform(rng)) * galaxyIndexSlope  + galaxyIndexMin);
     161            galaxy->index = 0.5/index; // factor of 0.5 because the Sersic model creates exp(-z^n), not exp(-r^n)
    161162
    162             galaxy->index = (sqrt(psRandomUniform(rng)) * galaxyIndexSlope  + galaxyIndexMin);
     163            float scale = (psRandomUniform(rng) * galaxyRmajorSlope + galaxyRmajorMin);
     164
     165            // for a sersic model,
     166            float bn = 1.9992*index - 0.3271;
     167            float fR = 1.0 / (sqrt(2.0) * pow (bn, index));
     168            float Io = exp(bn);
     169
     170            galaxy->Rmaj  = scale;
     171
     172            galaxy->Rmin  = (PS_SQR(psRandomUniform(rng)) * galaxyARatioSlope + galaxyARatioMin) * galaxy->Rmaj;
     173
    163174            galaxy->theta = (psRandomUniform(rng) * galaxyThetaSlope  + galaxyThetaMin);
    164             galaxy->Rmaj  = (psRandomUniform(rng) * galaxyRmajorSlope + galaxyRmajorMin);
    165             galaxy->Rmin  = (PS_SQR(psRandomUniform(rng)) * galaxyARatioSlope + galaxyARatioMin) * galaxy->Rmaj;
    166175
    167176            // the flux is only approximately correct (scaling of the peak is wrong)
     
    170179            galaxy->peak = galaxy->flux / (2.0*M_PI*PS_SQR(seeing));
    171180
     181            if (0) {
     182              fprintf (stderr, "Rmaj: %f, scale: %f, index: %f, bn: %f, Ro: %f, Io: %f\n", galaxy->Rmaj, scale, index, bn, fR, Io);
     183            }
     184
    172185            psArrayAdd (galaxies, 100, galaxy);
    173186        }
Note: See TracChangeset for help on using the changeset viewer.