Use the forms below to enter parameters for the ranking program (Data up through January 2017)

Layer to map: 1 = SLP, 2 = Height at pressure level (select level), 3 = 2-meter Temp, 4 = Temp at pressure level (select level), 5 = U-wind component (select level), 6 = V-wind component (select level), 7 = Skin Temp, 8 = Precipitable Water, 9 = Relative Humidity (select level up to 300 mb), 10 = ERSST v.4 SSTs (Slow, through Nov 2016: 2.5 minutes), 11 = Wind Speed (select level), 12 = U-wind Shear (select levels), 13 = Height Thickness (select levels), 14 = Temperature Between Pressure Levels, 15 = Potential Velocity (0.2101 sigma), 16 = NASA Global Temps (VERY SLOW!: Through Nov 2016), 17 = Specific Humidity, 18 = Tropical Cyclone Formation Combined [Temporarily Disabled]

Choose Theme (1-17):
Pressure Level: 0 = 1000mb, 1 = 925mb, 2 = 850mb, 3 = 700mb, 4 = 600mb, 5 = 500mb, 6 = 400mb, 7 = 300mb, 8 = 250mb, 9 = 200mb, 10 = 150mb, 11 = 100mb, 12 = 70mb, 13 = 50mb, 14 = 30mb, 15 = 20mb, 16 = 10mb

Note 1: use lower pressure level 0 for surface themes - layers 1, 3, 7, 8, and 10.
Note 2: use only lower pressure level for themes 2, 4, 5, 6, 9, and 11.
Note 3: use lower and upper pressure levels for themes 12, 13, and 14.

Lower pressure level:       Upper pressure level:
Bounding Coords for Rank Computation
North Lat > Left Lon >
South Lat > Right Lon >

This computes a single, rank value for the selected
time period. It does not affect the map. Remember that
longitude runs from 0 to 360 (no E-W). These values do not
affect the area to be mapped (see bottom of page). Click HERE for
a blank map with labelled grid lines.
Last month to start evaluation (e.g., 2 for Feb): Number of months (up to 12) to evaluate (e.g., 3 for Dec-Feb): Year of last month to start evaluation: Map Type: 1=Cyclindrical, 2=North Pole (NH Only), 3=Lambert Equal Area (Best for High Lats),
Manually Enter Map Bounds: 0=No, 1=Yes       North Lat > South Lat > Left Lon > Right Lon >
Note 1: Coords only used if map type is Cylindrical (1) or Lambert Equal Area (3).
Note 2: If Using Lambert Equal Area, make sure longitude spread is <= 50° in mid-latitudes.
Map of Ranks, Max Year, or Min Year:

1 = Ranks, 2 = Max Year, 3 = Min Year    Min/Max % >=
Raw data obtained from ESRL. Analysis may not be accurate. Use at your own risk!

   (to reset form, select theme 0 and press button)


Once it starts, DO NOT HIT REFRESH.
The program takes 1-2 minutes to run. If two levels are used, count on 2 minutes.
For NASA GISS temps, 2.5 minutes (1 month) to 10 minutes (12 months).
Wait for completion message and URL below, then scroll down to view map. ....
Year has invalid characters.

"; $valid = false; } // Layer must be 1-2 numeric characters if(preg_match('/^[0-9]{1,2}$/', $_POST['layer'])) { $layer = $_POST['layer']; } else { echo "

Layer has invalid characters.

"; $valid = false; } // Pressure 1 must be 1-2 numeric characters if(preg_match('/^[0-9]{1,2}$/', $_POST['pressure1'])) { $pressure1 = $_POST['pressure1']; } else { echo "

Pressure level has invalid characters.

"; $valid = false; } // Pressure2 must be 1-2 numeric characters if(preg_match('/^[0-9]{1,2}$/', $_POST['pressure2'])) { $pressure2 = $_POST['pressure2']; } else { echo "

Pressure level 2 has invalid characters.

"; $valid = false; } // Month must be 1-2 numeric characters if(preg_match('/^[0-9]{1,2}$/', $_POST['month'])) { $month = $_POST['month']; } else { echo "

Month number has invalid characters.

"; $valid = false; } // Num months must be 1-2 numeric characters if(preg_match('/^[0-9]{1,2}$/', $_POST['nummonths'])) { $nummonths = $_POST['nummonths']; } else { echo "

Num months has invalid characters.

"; $valid = false; } // Map type must be 1 numeric character if(preg_match('/^[0-9]{1,2}$/', $_POST['maptype'])) { $maptype = $_POST['maptype']; } else { echo "

Map type has invalid characters.

"; $valid = false; } // Map type must be 1 numeric character if(preg_match('/^[0-9]{1,2}$/', $_POST['mapoverride'])) { $mapoverride = $_POST['mapoverride']; } else { echo "

Map override has invalid characters.

"; $valid = false; } // NLat must be 1-3 numeric characters if(preg_match('/^[\-0-9]{1,3}$/', $_POST['NLat'])) { $NLat = $_POST['NLat']; } else { echo "

NLat has invalid characters.

"; $valid = false; } // SLat must be 1-3 numeric characters if(preg_match('/^[\-0-9]{1,3}$/', $_POST['SLat'])) { $SLat = $_POST['SLat']; } else { echo "

SLat has invalid characters.

"; $valid = false; } // LLon must be 1-3 numeric characters if(preg_match('/^[0-9]{1,3}$/', $_POST['LLon'])) { $LLon = $_POST['LLon']; } else { echo "

LLon has invalid characters.

"; $valid = false; } // RLon must be 1-3 numeric characters if(preg_match('/^[0-9]{1,3}$/', $_POST['RLon'])) { $RLon = $_POST['RLon']; } else { echo "

RLon has invalid characters.

"; $valid = false; } // Weight1 must be 1-3 numeric characters if(preg_match('/^[\-0-9]{1,3}$/', $_POST['weight1'])) { $weight1 = $_POST['weight1']; } else { echo "

Weight1 has invalid characters.

"; $valid = false; } // Weight2 must be 1-3 numeric characters if(preg_match('/^[\-0-9]{1,3}$/', $_POST['weight2'])) { $weight2 = $_POST['weight2']; } else { echo "

Weight2 has invalid characters.

"; $valid = false; } // Weight3 must be 1-3 numeric characters if(preg_match('/^[\-0-9]{1,3}$/', $_POST['weight3'])) { $weight3 = $_POST['weight3']; } else { echo "

Weight3 has invalid characters.

"; $valid = false; } // Weight4 must be 1-3 numeric characters if(preg_match('/^[\-0-9]{1,3}$/', $_POST['weight4'])) { $weight4 = $_POST['weight4']; } else { echo "

Weight4 has invalid characters.

"; $valid = false; } // Map type must be 1 numeric character if(preg_match('/^[0-9]{1,2}$/', $_POST['rankoryear'])) { $rankoryear = $_POST['rankoryear']; } else { echo "

rankoryear has invalid characters.

"; $valid = false; } // Year must be exactly 4 numeric characters. if(preg_match('/^[0-9]{4}$/', $_POST['pctyear'])) { $pctyear = $_POST['pctyear']; } else { echo "

pctyear has invalid characters.

"; $valid = false; } // Only execute system command if inputs are valid. if($valid) { // Run a system command, like running a command from a terminal. // It's safe to use $year and $month here because we know they are // purely numeric strings of appropriate lengths. The 2>&1 part at // the end redirects stderr into stdout. It makes it possible to see // error messages from the system command during development. //exec("/bin/echo \"$year $layer\" 2>&1", $output); putenv("NCARG_ROOT=/home/bbrettschneider/ncl-6.3.0"); putenv("NCARG_NCARG=/home/bbrettschneider/ncl-6.3.0/lib/ncarg"); putenv("NCARG_COLORMAPS=/home/bbrettschneider/ncl-6.3.0/lib/ncarg/colormaps"); exec("/home/bbrettschneider/ncl-6.3.0/bin/ncl -n -Q fromweb=\"1\" webvariable=\"$layer\" webpctyear=\"$pctyear\" mapoverride=\"$mapoverride\" weblevel1=\"$pressure1\" weblevel2=\"$pressure2\" webmaptheme=\"$rankoryear\" webmaptype=\"$maptype\" webyear=\"$year\" webnlat=\"$NLat\" webslat=\"$SLat\" webllon=\"$LLon\" webrlon=\"$RLon\" webweight1=\"$weight1\" webweight2=\"$weight2\" webweight3=\"$weight3\" webweight4=\"$weight4\" webmonth=\"$month\" webnummonths=\"$nummonths\" /home/bbrettschneider/MaxYear4b.ncl", $output); //echo "

The program takes 1-2 minutes to run.

"; //echo "

Layer options 10 and higher take aboput 2 minutes.

"; //echo "

Wait for completion message at bottom. DO NOT REFRESH.

"; // Display the output (and errors) from the system command. This is // strictly for development. Once the command is working as intended, // these three lines should be removed or commented out to avoid // showing the raw system output to the user. //echo "

Command output:

"; $combined = implode("
", $output); echo $combined; $link = "/images/" . $year . '_' . $layer . '_' . $month . '_' . $nummonths . '_' . $pressure1 . '_' . $pressure2 . '_' . $maptype . '_' . $NLat . '_' . $SLat . '_' . $LLon . '_' . $RLon . ".png"; $link2 = "/images/" . $year . '_' . $layer . '_' . $month . '_' . $nummonths . '_' . $pressure1 . '_' . $pressure2 . '_' . $maptype . '_' . $NLat . '_' . $SLat . '_' . $LLon . '_' . $RLon . "_panel.png"; $link3 = "/images/" . $year . '_' . $layer . '_' . $month . '_' . $nummonths . '_' . $pressure1 . '_' . $pressure2 . '_' . $maptype . '_' . $NLat . '_' . $SLat . '_' . $LLon . '_' . $RLon . ".txt"; //if ($layer != 0) echo "Here" ; if ($layer != 0) echo " Here, or scroll to view map below.
"; if ($layer != 0) echo "Click Here for the plot with attached trendline.
"; if ($layer != 0) echo "Click Here for a text file with annual averages in your selection box.
"; if ($layer != 0) echo "
"; if ($layer != 0) echo "
"; //echo "Click Here to View Map" ; } } ?>