Ignore:
Timestamp:
06/13/19 15:31:08 (3 months ago)
Author:
kevin
Message:

Added Arias Intensity and ColorPGA option

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/reporting/gmewhtmlemail/gmewhtmlemail.c

    r8013 r8019  
    3030 *****************************************************************************/ 
    3131 
    32 #define VERSION_STR "1.8.1 - 2019-05-29" 
     32#define VERSION_STR "1.8.2 - 2019-06-12" 
    3333 
    3434#define MAX_STRING_SIZE 1024    /* used for many static string place holders */ 
     
    8686#define MAX_POL_LEN 120000      /* Maximum number of samples in a trace gif */ 
    8787#define MAX_WAVE_SERVERS 10 
     88#define MAX_COLOR_PGAS 10 
    8889#define MAX_ADDRESS 80 
    8990#define MAX_PORT 6 
     
    243244static char       KMLpreamble[MAX_STRING_SIZE];          // where to find the KML preamble needed for this. 
    244245static int        nwaveservers = 0;       // Number of waveservers 
     246static int        ncolorpga = 0;          // Number of color PGA values 
    245247static int        nemailrecipients = 0;   // Number of email recipients 
    246248static int        nStaticEmailRecipents = 0; 
     
    313315// Array of waveservers 
    314316static WAVESERV   waveservers[MAX_WAVE_SERVERS]; 
     317// Array of Color PGA values and colors 
     318static double colorpga_values[MAX_COLOR_PGAS]; 
     319static char   colorpga_colors[MAX_COLOR_PGAS][MAX_STRING_SIZE]; 
    315320// Array of email recipients 
    316321static EMAILREC   *emailrecipients = NULL; 
     
    16711676                MaxFacilitiesInTable = k_int(); 
    16721677            } 
    1673              
     1678            else if ( k_its("ColorPGA") ) 
     1679            { 
     1680                if (ncolorpga < MAX_COLOR_PGAS) 
     1681                { 
     1682                    colorpga_values[ncolorpga] = k_val(); 
     1683                    // if other color PGA values and this value is not less than previous value 
     1684                    if (ncolorpga > 0 && colorpga_values[ncolorpga] >= colorpga_values[ncolorpga - 1]) 
     1685                    { 
     1686                        logit("e", "gmewhtmlemail: Invalid ColorPGA value (%lf). Exiting.\n", 
     1687                              colorpga_values[ncolorpga]); 
     1688                        exit(-1); 
     1689                    } 
     1690                    strncpy(colorpga_colors[ncolorpga], k_str(), MAX_STRING_SIZE); 
     1691                    ncolorpga++; 
     1692                } 
     1693                else 
     1694                { 
     1695                    logit("e", "gmewhtmlemail: Excessive number of ColorPGA values. Exiting.\n"); 
     1696                    exit(-1); 
     1697                } 
     1698            } 
     1699 
    16741700             
    16751701 
     
    18881914        logit("","EstimatePGA result: %lf (%s)\n", ePGA, resultStr ); 
    18891915    return ePGA; 
     1916} 
     1917 
     1918static char* determine_pga_color(double pga) 
     1919{ 
     1920    if (ncolorpga > 0) 
     1921    { 
     1922        int i; 
     1923        for ( i = 0; i < ncolorpga; i++) 
     1924        { 
     1925            if (pga >= colorpga_values[i]) 
     1926            { 
     1927                return colorpga_colors[i]; 
     1928            } 
     1929        } 
     1930    } 
     1931    return NULL; 
     1932} 
     1933 
     1934static void print_table_header_cell(FILE *htmlfile, char *text) 
     1935{ 
     1936    fprintf( htmlfile, "<th><font size=\"1\" face=\"Sans-serif\" color=\"FFFFFF\">%s</font></th>", text); 
     1937} 
     1938 
     1939static void print_table_cell(FILE *htmlfile, double value) 
     1940{ 
     1941    fprintf( htmlfile, "<td style=\"text-align:right\"><font size=\"1\" face=\"Sans-serif\">%1.6lf</font></td>", value); 
     1942} 
     1943 
     1944static void print_table_cell_color(FILE *htmlfile, double value, char *color) 
     1945{ 
     1946    if (color == NULL) 
     1947    { 
     1948        fprintf( htmlfile, "<td style=\"text-align:right\"><font size=\"1\" face=\"Sans-serif\">%1.6lf</font></td>", value); 
     1949    } 
     1950    else 
     1951    { 
     1952        fprintf( htmlfile, "<td style=\"text-align:right;background-color:%s\"><font size=\"1\" face=\"Sans-serif\">%1.6lf</font></td>", color, value); 
     1953    } 
    18901954} 
    18911955 
     
    19081972        int i = 0, j = 0, ix = 0, jx = 0, snl_i = 0; //various counter variables 
    19091973        int num_snl = 0;        //so we don't have to always deference snl_sites  
     1974        char *color; 
     1975        double pgapg; 
    19101976 
    19111977        //Calculate the appropriate stream order: 
     
    19502016        fprintf( htmlfile, "<tr bgcolor=\"000060\">"); 
    19512017 
    1952         fprintf( htmlfile, "<th>#</th><th><font size=\"1\" face=\"Sans-serif\" color=\"FFFFFF\">Station</font></th>"); 
     2018        fprintf( htmlfile, "<th>#</th>"); 
     2019        print_table_header_cell( htmlfile, "Station"); 
    19532020        if ( fromArc ) { 
    1954                 fprintf( htmlfile, "<th><font size=\"1\" face=\"Sans-serif\" color=\"FFFFFF\">Distance (km)</font></th>"); 
     2021                print_table_header_cell( htmlfile, "Distance (km)"); 
    19552022            if ( ShowMiles ) 
    1956                 fprintf( htmlfile, "<th><font size=\"1\" face=\"Sans-serif\" color=\"FFFFFF\">Distance (mi)</font></th>"); 
    1957         } 
    1958         fprintf( htmlfile, "<th><font size=\"1\" face=\"Sans-serif\" color=\"FFFFFF\">PGA (%%g)</font></th>"); 
    1959         fprintf( htmlfile, "<th><font size=\"1\" face=\"Sans-serif\" color=\"FFFFFF\">PGA (g)</font></th>"); 
    1960         fprintf( htmlfile, "<th><font size=\"1\" face=\"Sans-serif\" color=\"FFFFFF\">PGA (cm/s/s)</font></th>"); 
    1961         fprintf( htmlfile, "<th><font size=\"1\" face=\"Sans-serif\" color=\"FFFFFF\">PGV (cm/s)</font></th>"); 
    1962         fprintf( htmlfile, "<th><font size=\"1\" face=\"Sans-serif\" color=\"FFFFFF\">PGD (cm)</font></th>"); 
    1963         fprintf( htmlfile, "<th><font size=\"1\" face=\"Sans-serif\" color=\"FFFFFF\">RSA 0.3s (cm/s/s)</font></th>"); 
    1964         fprintf( htmlfile, "<th><font size=\"1\" face=\"Sans-serif\" color=\"FFFFFF\">RSA 1s (cm/s/s)</font></th>"); 
    1965         fprintf( htmlfile, "<th><font size=\"1\" face=\"Sans-serif\" color=\"FFFFFF\">RSA 3s (cm/s/s)</font></th>"); 
     2023                print_table_header_cell( htmlfile, "Distance (mi)"); 
     2024        } 
     2025        print_table_header_cell( htmlfile, "AI"); 
     2026        print_table_header_cell( htmlfile, "PGA (%g)"); 
     2027        print_table_header_cell( htmlfile, "PGA (g)"); 
     2028        print_table_header_cell( htmlfile, "PGA (cm/s/s)"); 
     2029        print_table_header_cell( htmlfile, "PGV (cm/s)"); 
     2030        print_table_header_cell( htmlfile, "PGD (cm)"); 
     2031        print_table_header_cell( htmlfile, "RSA 0.3s (cm/s/s)"); 
     2032        print_table_header_cell( htmlfile, "RSA 1s (cm/s/s)"); 
     2033        print_table_header_cell( htmlfile, "RSA 3s (cm/s/s)"); 
    19662034        fprintf( htmlfile, "</tr>\n" ); 
    19672035 
     
    19862054                } 
    19872055                        } 
    1988             fprintf( htmlfile, "<td style=\"text-align:right\"><font size=\"1\" face=\"Sans-serif\">%1.6lf</font></td>", 100*smForSite[ix]->pga/CM_S_S_1_g); 
    1989             fprintf( htmlfile, "<td style=\"text-align:right\"><font size=\"1\" face=\"Sans-serif\">%1.6lf</font></td>", smForSite[ix]->pga/CM_S_S_1_g); 
    1990             fprintf( htmlfile, "<td style=\"text-align:right\"><font size=\"1\" face=\"Sans-serif\">%1.6lf</font></td>", smForSite[ix]->pga); 
    1991             fprintf( htmlfile, "<td style=\"text-align:right\"><font size=\"1\" face=\"Sans-serif\">%1.6lf</font></td>", smForSite[ix]->pgv); 
    1992             fprintf( htmlfile, "<td style=\"text-align:right\"><font size=\"1\" face=\"Sans-serif\">%1.6lf</font></td>", smForSite[ix]->pgd); 
     2056            print_table_cell( htmlfile, smForSite[ix]->ai); 
     2057            pgapg = 100*smForSite[ix]->pga/CM_S_S_1_g; 
     2058            color = determine_pga_color(pgapg); 
     2059            print_table_cell_color( htmlfile, pgapg, color); 
     2060            print_table_cell_color( htmlfile, smForSite[ix]->pga/CM_S_S_1_g, color); 
     2061            print_table_cell_color( htmlfile, smForSite[ix]->pga, color); 
     2062            print_table_cell( htmlfile, smForSite[ix]->pgv); 
     2063            print_table_cell( htmlfile, smForSite[ix]->pgd); 
    19932064            for ( j=0; j<3; j++ ) { 
    19942065                if ( j < smForSite[i]->nrsa) { 
    1995                         fprintf( htmlfile, "<td style=\"text-align:right\"><font size=\"1\" face=\"Sans-serif\">%1.6lf</font></td>", smForSite[ix]->rsa[j]); 
     2066                        print_table_cell( htmlfile, smForSite[ix]->rsa[j]); 
    19962067                                } else { 
    19972068                    fprintf( htmlfile, "<td>&nbsp;</td>"); 
Note: See TracChangeset for help on using the changeset viewer.