PS I'm working on a beta Java program to decode recon, so maybe I can help those who do it by hand!
Satellite blackouts???
Moderator: S2k Moderators
Forum rules
The posts in this forum are NOT official forecasts and should not be used as such. They are just the opinion of the poster and may or may not be backed by sound meteorological data. They are NOT endorsed by any professional institution or STORM2K. For official information, please refer to products from the National Hurricane Center and National Weather Service.
- FritzPaul
- S2K Supporter

- Posts: 468
- Age: 58
- Joined: Sat Aug 28, 2004 7:09 pm
- Location: Pensacola, FL
- Contact:
Satellite blackouts???
Does anyone know if we're going to have satellite eclipses every night like we had in the beginning of 04 season?
PS I'm working on a beta Java program to decode recon, so maybe I can help those who do it by hand!
PS I'm working on a beta Java program to decode recon, so maybe I can help those who do it by hand!
0 likes
-
PurdueWx80
- Professional-Met

- Posts: 2720
- Joined: Fri Aug 13, 2004 8:33 pm
- Location: Madison, WI
- Contact:
Re: Satellite blackouts???
FritzPaul wrote:Does anyone know if we're going to have satellite eclipses every night like we had in the beginning of 04 season?
This won't happen until we get much closer to the Fall equinox.
0 likes
- senorpepr
- Military Met/Moderator

- Posts: 12542
- Age: 43
- Joined: Fri Aug 22, 2003 9:22 pm
- Location: Mackenbach, Germany
- Contact:
Re: Satellite blackouts???
FritzPaul wrote:Does anyone know if we're going to have satellite eclipses every night like we had in the beginning of 04 season?
PS I'm working on a beta Java program to decode recon, so maybe I can help those who do it by hand!
There are satellite eclipses every spring and fall thanks to the angle of the Earth in relation to the Sun.
However, within a few years they will have a GOES satellite operational that will maintain energy long enough to stay powered through the "eclipse period."
0 likes
-
PurdueWx80
- Professional-Met

- Posts: 2720
- Joined: Fri Aug 13, 2004 8:33 pm
- Location: Madison, WI
- Contact:
http://www.ssd.noaa.gov/PS/SATS/eclipse.html
Keep your eye here, they'll update it shortly. Based on last Fall's eclipse schedule, this season's should start in mid-August. The peak amount of missing images will be within a few weeks on either side of the Equinox.
Keep your eye here, they'll update it shortly. Based on last Fall's eclipse schedule, this season's should start in mid-August. The peak amount of missing images will be within a few weeks on either side of the Equinox.
0 likes
Code: Select all
<html>
<head>
<title>Hurricane Decoder</title>
<script>
<!--
var headerline1;
var headerline2;
var timeline;
var latlonline;
var minheightline;
var maxsfcwline;
var bearingsfcline;
var maxflwline;
var bearingflline;
var minpline;
var maxtempoline;
var maxtempiline;
var dewpointline;
var eyetypeline;
var eyeformline;
var fixline;
var fixaccline;
var remarksline;
var readpline = false;
function clearit()
{
document.getElementById("report").value = "";
document.getElementById("report").select();
}
function round2(innum)
{
var answer;
answer = Math.round(innum*100);
return answer/100.0;
}
function analyze(intext)
{
if (intext.indexOf("URNT12") != -1) {headerline1 = intext; return;}
if ((intext.indexOf("VORTEX") != -1) && (intext.indexOf("MESSAGE") != -1)) {headerline2 = intext; return;}
if (intext.substring(0,2) == "A.") {timeline = intext; return;}
if (intext.substring(0,2) == "B.") {latlonline = intext; return;}
if (intext.substring(0,2) == "C.") {minheightline = intext; return;}
if (intext.substring(0,2) == "D.") {maxsfcwline = intext; return;}
if (intext.substring(0,2) == "E.") {bearingsfcline = intext; return;}
if (intext.substring(0,2) == "F.") {maxflwline = intext; return;}
if (intext.substring(0,2) == "G.") {bearingflline = intext; return;}
if (intext.substring(0,2) == "H.") {minpline = intext; return;}
if (intext.substring(0,2) == "I.") {maxtempoline = intext; return;}
if (intext.substring(0,2) == "J.") {maxtempiline = intext; return;}
if (intext.substring(0,2) == "K.") {dewpointline = intext; return;}
if (intext.substring(0,2) == "L.") {eyetypeline = intext; return;}
if (intext.substring(0,2) == "M.") {eyeformline = intext; return;}
if (intext.substring(0,2) == "N.") {fixline = intext; return;}
if (intext.substring(0,2) == "O.") {fixaccline = intext; return;}
if (intext.substring(0,2) == "P.") {remarksline = intext; readpline = true; return;}
if ((intext.indexOf("DEG") != -1) && (intext.indexOf("MIN") != -1)) {latlonline = latlonline+intext; return;}
if (readpline) {remarksline = remarksline + intext; return;}
return;
}
function fixtime(intime)
{
var nowtime = new Date();
var utctimeval;
var localtimeval;
var marker = intime.indexOf("/");
var thehour, theminute, theday, theyear;
var newtimes;
// Fix for date of 1st in UTC, but 30/31 in local
theday = intime.substring(marker-2,marker);
thehour = intime.substring(marker+1,marker+3);
theminute = intime.substring(marker+3,marker+5);
if (nowtime.getFullYear) theyear = nowtime.getFullYear();
else
theyear = (nowtime.getYear() <= 1900) ? nowtime.getYear()+1900 : nowtime.getYear();
utctimeval = new Date(theyear, nowtime.getMonth(),theday,thehour,theminute);
localtimeval = new Date(Date.UTC(theyear, nowtime.getMonth(),theday,thehour,theminute));
if (localtimeval.getDate() != utctimeval.getDate())
{
if (utctimeval.getDate() == 1)
{
utctimeval.setMonth(utctimeval.getMonth()+1);
localtimeval = new Date(Date.UTC(theyear, nowtime.getMonth()+1,theday,thehour,theminute));
}
}
newtimes = "<b>Date/Time of Recon Report:</b> "+localtimeval.toLocaleString();
return newtimes;
}
function fixlat(inline)
{
var existline = inline;
var latd, latm, latdir, lond, lonm, londir;
existline = existline.substring(3);
latd = existline.substring(0,existline.indexOf(" DEG"));
existline = existline.substring(existline.indexOf(" DEG")+4);
latm = existline.substring(0,existline.indexOf(" MIN"));
existline = existline.substring(existline.indexOf(" MIN")+5);
latdir = existline.substring(0,1);
existline = existline.substring(1);
lond = existline.substring(0,existline.indexOf(" DEG"));
existline = existline.substring(existline.indexOf(" DEG")+4);
lonm = existline.substring(0,existline.indexOf(" MIN"));
existline = existline.substring(existline.indexOf(" MIN")+5);
londir = existline.substring(0,1);
existline = "<b>Position of the center:</b> "+latd+"°"+latm+"' "+latdir+" "+lond+"°"+lonm+"' "+londir;
return existline;
}
function fixpline(intext)
{
var existline = intext;
var mpress, epress;
// Search for extrap example
existline = existline.substring(3);
mpress = existline.substring(0,existline.indexOf(" MB"));
epress = round2(parseInt(mpress)*(0.02953));
epress =
existline = "<b>Minimum pressure: </b>"+mpress+"mb ("+epress+"in)";
return existline;
}
function fixhline(intext)
{
var existline = intext;
var press, height, normal;
existline = existline.substring(3);
if (existline.indexOf("NA") != -1) return "";
press = existline.substring(0,existline.indexOf(" MB"));
existline = existline.substring(existline.indexOf(" MB")+4);
height = existline.substring(0,existline.indexOf(" M"));
switch (parseInt(press))
{
case 700: normal = 3011; break;
case 850: normal = 1457; break;
case 925: normal = 762; break;
default: normal = -1;
}
if (normal < 0) return "";
existline = "<b>Minimum Height Measured At Standard Level Of "+press+"mb:</b> "+height+"m (Normal: "+normal+")";
return existline;
}
function fixswline(intext)
{
var existline = intext.substring(3);
var speed;
if (intext.indexOf("NA") != -1) return "<b>Maximum Surface Winds Were:</b> Not Estimated";
speed = existline.substring(0,existline.indexOf(" KT"));
return "<b>Maximum Surface Winds Were Estimated At:</b> "+speed+"KT";
}
function fixsbear(intext)
{
var existline = intext.substring(3);
var angle, dist;
if (intext.indexOf("NA") != -1) return "<b>No Bearing From Center To Estimated Surface Winds Was Measured</b>";
angle = existline.substring(0,existline.indexOf(" DEG"));
existline = existline.substring(existline.indexOf(" DEG")+5);
dist = existline.substring(0,existline.indexOf(" NM"));
existline = "<b>Estimated Surface Winds Were Measured "+dist+"nm ("+dist*1.15+"miles) From Center At Bearing "+angle+"°</b>";
return existline;
}
function fixflwbear(intext)
{
var existline = intext.substring(3);
var angle, speed;
if (intext.indexOf("NA") != -1) return "<b>No Maximum Flight Level Winds Were Measured</b>";
angle = existline.substring(0,existline.indexOf(" DEG"));
existline = existline.substring(existline.indexOf(" DEG")+5);
speed = existline.substring(0,existline.indexOf(" KT"));
existline = "<b>Maximum Flight Level Winds Were "+speed+"KT ("+round2(speed*1.15)+"mph) From "+angle+"°</b>";
return existline;
}
function fixflbear(intext)
{
var existline = intext.substring(3);
var angle, dist;
if (intext.indexOf("NA") != -1) return "<b>No Bearing From Center To Maximum Flight Level Winds Was Measured</b>";
angle = existline.substring(0,existline.indexOf(" DEG"));
existline = existline.substring(existline.indexOf(" DEG")+5);
dist = existline.substring(0,existline.indexOf(" NM"));
existline = "<b>Maximum Flight Level Winds Were Measured "+dist+"nm ("+dist*1.15+"miles) From Center At Bearing "+angle+"°</b>";
return existline;
}
function fixeyetype(intext)
{
var existline = intext.substring(3);
if (intext.indexOf("NA") != -1) return "<b>Eye Wall Was < 50% Closed</b>";
return "<b>Eye Wall Was Characterized As Being "+existline+"</b>";
}
function fixeyeform(intext)
{
var existline = intext.substring(3);
if (intext.indexOf("NA") != -1) return "<b>Eye Did Not Have A Definable Form</b>";
return "<b>Eye Form Was Characterized As Being "+existline+"</b>";
}
function fixfixline(intext)
{
var existline = intext.substring(3);
var ftypes, fheights;
ftypes = existline.substring(0,existline.indexOf("/"));
fheights = existline.substring(existline.indexOf("/")+1);
existline = "<b>Center Fix Established Using:</b> ";
if (ftypes.indexOf("1") != -1) existline = existline + "Penetration ";
if (ftypes.indexOf("2") != -1) existline = existline + "Radar ";
if (ftypes.indexOf("3") != -1) existline = existline + "Wind ";
if (ftypes.indexOf("4") != -1) existline = existline + "Pressure ";
if (ftypes.indexOf("5") != -1) existline = existline + "Temperature ";
existline = existline + "<br><b>Center Fix Established At Level(s):</b> ";
if (fheights.indexOf("0") != -1) existline = existline + "Surface ";
if (fheights.indexOf("1") != -1) existline = existline + "1500ft ";
if (fheights.indexOf("8") != -1) existline = existline + "850mb ";
if (fheights.indexOf("7") != -1) existline = existline + "700mb ";
if (fheights.indexOf("5") != -1) existline = existline + "500mb ";
if (fheights.indexOf("4") != -1) existline = existline + "400mb ";
if (fheights.indexOf("3") != -1) existline = existline + "300mb ";
if (fheights.indexOf("2") != -1) existline = existline + "200mb ";
if (fheights.indexOf("9") != -1) existline = existline + "925mb ";
return existline;
}
function fixacc(intext)
{
var existline = intext.substring(3);
var navacc, metacc;
navacc = existline.substring(0,existline.indexOf("/"));
metacc = existline.substring(existline.indexOf("/")+1);
return "<b>Navigational Accuracy Measured At "+parseFloat(navacc)+"nm</b><br><b>Meteorological Accuracy Measured At "+parseFloat(metacc)+"nm</b>";
}
function fixremarks(intext)
{
var existline = intext.substring(3);
var plane, planenum, msncnt, depnum, ocean, storm;
plane = existline.substring(0,existline.indexOf(" "));
if (plane.indexOf("AF") != -1)
{
planenum = plane.substring(2);
plane = plane.substring(0,2);
}
else
{
planenum = plane.substring(4);
plane = plane.substring(0,4);
}
existline = existline.substring(existline.indexOf(" ")+1);
msncnt = existline.substring(0,2);
existline = existline.substring(2);
depnum = existline.substring(0,2);
existline = existline.substring(2);
ocean = existline.substring(0,1);
switch (ocean)
{
case "A": ocean = "Atlantic Ocean"; break;
case "E": ocean = "Eastern Pacific Ocean"; break;
case "C": ocean = "Central Pacific Ocean"; break;
}
existline = existline.substring(2);
storm = existline.substring(0,existline.indexOf(" "));
existline = "<b>Storm "+storm+": Observed By "+plane+" #"+planenum+"</b><br><b>Storm #"+depnum+" in "+ocean+"</b>";
return existline;
}
function cleanup()
{
if (timeline != "") timeline = fixtime(timeline);
if (latlonline != "") latlonline = fixlat(latlonline);
if (minpline != "") minpline = fixpline(minpline);
if (minheightline != "") minheightline = fixhline(minheightline);
if (maxsfcwline != "") maxsfcwline = fixswline(maxsfcwline);
if (bearingsfcline != "") bearingsfcline = fixsbear(bearingsfcline);
if (maxflwline != "") maxflwline = fixflwbear(maxflwline);
if (bearingflline != "") bearingflline = fixflbear(bearingflline);
if (eyetypeline != "") eyetypeline = fixeyetype(eyetypeline);
if (eyeformline != "") eyeformline = fixeyeform(eyeformline);
if (fixline != "") fixline = fixfixline(fixline);
if (fixaccline != "") fixaccline = fixacc(fixaccline);
if (remarksline != "") remarksline = fixremarks(remarksline);
}
function decode()
{
var dtext;
var subline;
var nextcut;
dtext = document.getElementById("report").value;
dtext = dtext.toUpperCase();
nextcut = dtext.indexOf("\n");
while (nextcut != -1)
{
subline = dtext.substring(0,nextcut);
analyze(subline);
dtext = dtext.substring(nextcut+1);
nextcut = dtext.indexOf("\n");
}
cleanup();
// document.getElementById("line1").innerHTML = headerline1;
// document.getElementById("line2").innerHTML = headerline2;
document.getElementById("line3").innerHTML = timeline;
document.getElementById("line4").innerHTML = latlonline;
document.getElementById("line5").innerHTML = minheightline;
document.getElementById("line6").innerHTML = maxsfcwline;
document.getElementById("line7").innerHTML = bearingsfcline;
document.getElementById("line8").innerHTML = maxflwline;
document.getElementById("line9").innerHTML = bearingflline;
document.getElementById("line10").innerHTML = minpline;
// document.getElementById("line11").innerHTML = maxtempoline;
// document.getElementById("line12").innerHTML = maxtempiline;
// document.getElementById("line13").innerHTML = dewpointline;
document.getElementById("line14").innerHTML = eyetypeline;
document.getElementById("line15").innerHTML = eyeformline;
document.getElementById("line16").innerHTML = fixline;
document.getElementById("line17").innerHTML = fixaccline;
document.getElementById("line18").innerHTML = remarksline;
}
-->
</script>
</head>
<body onload="clearit()">
<center>
<b>Copy and paste recon report in this box:</b> (Reports available
<a target="_blank" href="http://www.nhc.noaa.gov/text/MIAREPNT2.shtml">here</a>)<br>
<textarea id="report" style="width:275px;height:150px"></textarea><br>
<input type="button" id="submit" value="Decode" onclick="decode()">
<input type="button" id="clear" value="Clear" onclick="clearit()">
<br><hr>
<div id="line18"></div>
<div id="line1"></div>
<div id="line2"></div>
<div id="line3"></div>
<div id="line4"></div>
<div id="line5"></div>
<div id="line6"></div>
<div id="line7"></div>
<div id="line8"></div>
<div id="line9"></div>
<div id="line10"></div>
<div id="line11"></div>
<div id="line12"></div>
<div id="line13"></div>
<div id="line14"></div>
<div id="line15"></div>
<div id="line16"></div>
<div id="line17"></div>
</center>
</body>
</html>
0 likes
ericinmia wrote:Code: Select all
<html>
<head>
<title>Hurricane Decoder</title>
<script>
<!--
var headerline1;
var headerline2;
var timeline;
var latlonline;
var minheightline;
var maxsfcwline;
var bearingsfcline;
var maxflwline;
var bearingflline;
var minpline;
var maxtempoline;
var maxtempiline;
var dewpointline;
var eyetypeline;
var eyeformline;
var fixline;
var fixaccline;
var remarksline;
var readpline = false;
function clearit()
{
document.getElementById("report").value = "";
document.getElementById("report").select();
}
function round2(innum)
{
var answer;
answer = Math.round(innum*100);
return answer/100.0;
}
function analyze(intext)
{
if (intext.indexOf("URNT12") != -1) {headerline1 = intext; return;}
if ((intext.indexOf("VORTEX") != -1) && (intext.indexOf("MESSAGE") != -1)) {headerline2 = intext; return;}
if (intext.substring(0,2) == "A.") {timeline = intext; return;}
if (intext.substring(0,2) == "B.") {latlonline = intext; return;}
if (intext.substring(0,2) == "C.") {minheightline = intext; return;}
if (intext.substring(0,2) == "D.") {maxsfcwline = intext; return;}
if (intext.substring(0,2) == "E.") {bearingsfcline = intext; return;}
if (intext.substring(0,2) == "F.") {maxflwline = intext; return;}
if (intext.substring(0,2) == "G.") {bearingflline = intext; return;}
if (intext.substring(0,2) == "H.") {minpline = intext; return;}
if (intext.substring(0,2) == "I.") {maxtempoline = intext; return;}
if (intext.substring(0,2) == "J.") {maxtempiline = intext; return;}
if (intext.substring(0,2) == "K.") {dewpointline = intext; return;}
if (intext.substring(0,2) == "L.") {eyetypeline = intext; return;}
if (intext.substring(0,2) == "M.") {eyeformline = intext; return;}
if (intext.substring(0,2) == "N.") {fixline = intext; return;}
if (intext.substring(0,2) == "O.") {fixaccline = intext; return;}
if (intext.substring(0,2) == "P.") {remarksline = intext; readpline = true; return;}
if ((intext.indexOf("DEG") != -1) && (intext.indexOf("MIN") != -1)) {latlonline = latlonline+intext; return;}
if (readpline) {remarksline = remarksline + intext; return;}
return;
}
function fixtime(intime)
{
var nowtime = new Date();
var utctimeval;
var localtimeval;
var marker = intime.indexOf("/");
var thehour, theminute, theday, theyear;
var newtimes;
// Fix for date of 1st in UTC, but 30/31 in local
theday = intime.substring(marker-2,marker);
thehour = intime.substring(marker+1,marker+3);
theminute = intime.substring(marker+3,marker+5);
if (nowtime.getFullYear) theyear = nowtime.getFullYear();
else
theyear = (nowtime.getYear() <= 1900) ? nowtime.getYear()+1900 : nowtime.getYear();
utctimeval = new Date(theyear, nowtime.getMonth(),theday,thehour,theminute);
localtimeval = new Date(Date.UTC(theyear, nowtime.getMonth(),theday,thehour,theminute));
if (localtimeval.getDate() != utctimeval.getDate())
{
if (utctimeval.getDate() == 1)
{
utctimeval.setMonth(utctimeval.getMonth()+1);
localtimeval = new Date(Date.UTC(theyear, nowtime.getMonth()+1,theday,thehour,theminute));
}
}
newtimes = "<b>Date/Time of Recon Report:</b> "+localtimeval.toLocaleString();
return newtimes;
}
function fixlat(inline)
{
var existline = inline;
var latd, latm, latdir, lond, lonm, londir;
existline = existline.substring(3);
latd = existline.substring(0,existline.indexOf(" DEG"));
existline = existline.substring(existline.indexOf(" DEG")+4);
latm = existline.substring(0,existline.indexOf(" MIN"));
existline = existline.substring(existline.indexOf(" MIN")+5);
latdir = existline.substring(0,1);
existline = existline.substring(1);
lond = existline.substring(0,existline.indexOf(" DEG"));
existline = existline.substring(existline.indexOf(" DEG")+4);
lonm = existline.substring(0,existline.indexOf(" MIN"));
existline = existline.substring(existline.indexOf(" MIN")+5);
londir = existline.substring(0,1);
existline = "<b>Position of the center:</b> "+latd+"°"+latm+"' "+latdir+" "+lond+"°"+lonm+"' "+londir;
return existline;
}
function fixpline(intext)
{
var existline = intext;
var mpress, epress;
// Search for extrap example
existline = existline.substring(3);
mpress = existline.substring(0,existline.indexOf(" MB"));
epress = round2(parseInt(mpress)*(0.02953));
epress =
existline = "<b>Minimum pressure: </b>"+mpress+"mb ("+epress+"in)";
return existline;
}
function fixhline(intext)
{
var existline = intext;
var press, height, normal;
existline = existline.substring(3);
if (existline.indexOf("NA") != -1) return "";
press = existline.substring(0,existline.indexOf(" MB"));
existline = existline.substring(existline.indexOf(" MB")+4);
height = existline.substring(0,existline.indexOf(" M"));
switch (parseInt(press))
{
case 700: normal = 3011; break;
case 850: normal = 1457; break;
case 925: normal = 762; break;
default: normal = -1;
}
if (normal < 0) return "";
existline = "<b>Minimum Height Measured At Standard Level Of "+press+"mb:</b> "+height+"m (Normal: "+normal+")";
return existline;
}
function fixswline(intext)
{
var existline = intext.substring(3);
var speed;
if (intext.indexOf("NA") != -1) return "<b>Maximum Surface Winds Were:</b> Not Estimated";
speed = existline.substring(0,existline.indexOf(" KT"));
return "<b>Maximum Surface Winds Were Estimated At:</b> "+speed+"KT";
}
function fixsbear(intext)
{
var existline = intext.substring(3);
var angle, dist;
if (intext.indexOf("NA") != -1) return "<b>No Bearing From Center To Estimated Surface Winds Was Measured</b>";
angle = existline.substring(0,existline.indexOf(" DEG"));
existline = existline.substring(existline.indexOf(" DEG")+5);
dist = existline.substring(0,existline.indexOf(" NM"));
existline = "<b>Estimated Surface Winds Were Measured "+dist+"nm ("+dist*1.15+"miles) From Center At Bearing "+angle+"°</b>";
return existline;
}
function fixflwbear(intext)
{
var existline = intext.substring(3);
var angle, speed;
if (intext.indexOf("NA") != -1) return "<b>No Maximum Flight Level Winds Were Measured</b>";
angle = existline.substring(0,existline.indexOf(" DEG"));
existline = existline.substring(existline.indexOf(" DEG")+5);
speed = existline.substring(0,existline.indexOf(" KT"));
existline = "<b>Maximum Flight Level Winds Were "+speed+"KT ("+round2(speed*1.15)+"mph) From "+angle+"°</b>";
return existline;
}
function fixflbear(intext)
{
var existline = intext.substring(3);
var angle, dist;
if (intext.indexOf("NA") != -1) return "<b>No Bearing From Center To Maximum Flight Level Winds Was Measured</b>";
angle = existline.substring(0,existline.indexOf(" DEG"));
existline = existline.substring(existline.indexOf(" DEG")+5);
dist = existline.substring(0,existline.indexOf(" NM"));
existline = "<b>Maximum Flight Level Winds Were Measured "+dist+"nm ("+dist*1.15+"miles) From Center At Bearing "+angle+"°</b>";
return existline;
}
function fixeyetype(intext)
{
var existline = intext.substring(3);
if (intext.indexOf("NA") != -1) return "<b>Eye Wall Was < 50% Closed</b>";
return "<b>Eye Wall Was Characterized As Being "+existline+"</b>";
}
function fixeyeform(intext)
{
var existline = intext.substring(3);
if (intext.indexOf("NA") != -1) return "<b>Eye Did Not Have A Definable Form</b>";
return "<b>Eye Form Was Characterized As Being "+existline+"</b>";
}
function fixfixline(intext)
{
var existline = intext.substring(3);
var ftypes, fheights;
ftypes = existline.substring(0,existline.indexOf("/"));
fheights = existline.substring(existline.indexOf("/")+1);
existline = "<b>Center Fix Established Using:</b> ";
if (ftypes.indexOf("1") != -1) existline = existline + "Penetration ";
if (ftypes.indexOf("2") != -1) existline = existline + "Radar ";
if (ftypes.indexOf("3") != -1) existline = existline + "Wind ";
if (ftypes.indexOf("4") != -1) existline = existline + "Pressure ";
if (ftypes.indexOf("5") != -1) existline = existline + "Temperature ";
existline = existline + "<br><b>Center Fix Established At Level(s):</b> ";
if (fheights.indexOf("0") != -1) existline = existline + "Surface ";
if (fheights.indexOf("1") != -1) existline = existline + "1500ft ";
if (fheights.indexOf("8") != -1) existline = existline + "850mb ";
if (fheights.indexOf("7") != -1) existline = existline + "700mb ";
if (fheights.indexOf("5") != -1) existline = existline + "500mb ";
if (fheights.indexOf("4") != -1) existline = existline + "400mb ";
if (fheights.indexOf("3") != -1) existline = existline + "300mb ";
if (fheights.indexOf("2") != -1) existline = existline + "200mb ";
if (fheights.indexOf("9") != -1) existline = existline + "925mb ";
return existline;
}
function fixacc(intext)
{
var existline = intext.substring(3);
var navacc, metacc;
navacc = existline.substring(0,existline.indexOf("/"));
metacc = existline.substring(existline.indexOf("/")+1);
return "<b>Navigational Accuracy Measured At "+parseFloat(navacc)+"nm</b><br><b>Meteorological Accuracy Measured At "+parseFloat(metacc)+"nm</b>";
}
function fixremarks(intext)
{
var existline = intext.substring(3);
var plane, planenum, msncnt, depnum, ocean, storm;
plane = existline.substring(0,existline.indexOf(" "));
if (plane.indexOf("AF") != -1)
{
planenum = plane.substring(2);
plane = plane.substring(0,2);
}
else
{
planenum = plane.substring(4);
plane = plane.substring(0,4);
}
existline = existline.substring(existline.indexOf(" ")+1);
msncnt = existline.substring(0,2);
existline = existline.substring(2);
depnum = existline.substring(0,2);
existline = existline.substring(2);
ocean = existline.substring(0,1);
switch (ocean)
{
case "A": ocean = "Atlantic Ocean"; break;
case "E": ocean = "Eastern Pacific Ocean"; break;
case "C": ocean = "Central Pacific Ocean"; break;
}
existline = existline.substring(2);
storm = existline.substring(0,existline.indexOf(" "));
existline = "<b>Storm "+storm+": Observed By "+plane+" #"+planenum+"</b><br><b>Storm #"+depnum+" in "+ocean+"</b>";
return existline;
}
function cleanup()
{
if (timeline != "") timeline = fixtime(timeline);
if (latlonline != "") latlonline = fixlat(latlonline);
if (minpline != "") minpline = fixpline(minpline);
if (minheightline != "") minheightline = fixhline(minheightline);
if (maxsfcwline != "") maxsfcwline = fixswline(maxsfcwline);
if (bearingsfcline != "") bearingsfcline = fixsbear(bearingsfcline);
if (maxflwline != "") maxflwline = fixflwbear(maxflwline);
if (bearingflline != "") bearingflline = fixflbear(bearingflline);
if (eyetypeline != "") eyetypeline = fixeyetype(eyetypeline);
if (eyeformline != "") eyeformline = fixeyeform(eyeformline);
if (fixline != "") fixline = fixfixline(fixline);
if (fixaccline != "") fixaccline = fixacc(fixaccline);
if (remarksline != "") remarksline = fixremarks(remarksline);
}
function decode()
{
var dtext;
var subline;
var nextcut;
dtext = document.getElementById("report").value;
dtext = dtext.toUpperCase();
nextcut = dtext.indexOf("\n");
while (nextcut != -1)
{
subline = dtext.substring(0,nextcut);
analyze(subline);
dtext = dtext.substring(nextcut+1);
nextcut = dtext.indexOf("\n");
}
cleanup();
// document.getElementById("line1").innerHTML = headerline1;
// document.getElementById("line2").innerHTML = headerline2;
document.getElementById("line3").innerHTML = timeline;
document.getElementById("line4").innerHTML = latlonline;
document.getElementById("line5").innerHTML = minheightline;
document.getElementById("line6").innerHTML = maxsfcwline;
document.getElementById("line7").innerHTML = bearingsfcline;
document.getElementById("line8").innerHTML = maxflwline;
document.getElementById("line9").innerHTML = bearingflline;
document.getElementById("line10").innerHTML = minpline;
// document.getElementById("line11").innerHTML = maxtempoline;
// document.getElementById("line12").innerHTML = maxtempiline;
// document.getElementById("line13").innerHTML = dewpointline;
document.getElementById("line14").innerHTML = eyetypeline;
document.getElementById("line15").innerHTML = eyeformline;
document.getElementById("line16").innerHTML = fixline;
document.getElementById("line17").innerHTML = fixaccline;
document.getElementById("line18").innerHTML = remarksline;
}
-->
</script>
</head>
<body onload="clearit()">
<center>
<b>Copy and paste recon report in this box:</b> (Reports available
<a target="_blank" href="http://www.nhc.noaa.gov/text/MIAREPNT2.shtml">here</a>)<br>
<textarea id="report" style="width:275px;height:150px"></textarea><br>
<input type="button" id="submit" value="Decode" onclick="decode()">
<input type="button" id="clear" value="Clear" onclick="clearit()">
<br><hr>
<div id="line18"></div>
<div id="line1"></div>
<div id="line2"></div>
<div id="line3"></div>
<div id="line4"></div>
<div id="line5"></div>
<div id="line6"></div>
<div id="line7"></div>
<div id="line8"></div>
<div id="line9"></div>
<div id="line10"></div>
<div id="line11"></div>
<div id="line12"></div>
<div id="line13"></div>
<div id="line14"></div>
<div id="line15"></div>
<div id="line16"></div>
<div id="line17"></div>
</center>
</body>
</html>
Oh, ok I see now!
0 likes
mobilebay wrote:ericinmia wrote:Code: Select all
<html>
<head>
<title>Hurricane Decoder</title>
<script>
<!--
var headerline1;
var headerline2;
var timeline;
var latlonline;
var minheightline;
var maxsfcwline;
var bearingsfcline;
var maxflwline;
var bearingflline;
var minpline;
var maxtempoline;
var maxtempiline;
var dewpointline;
var eyetypeline;
var eyeformline;
var fixline;
var fixaccline;
var remarksline;
var readpline = false;
function clearit()
{
document.getElementById("report").value = "";
document.getElementById("report").select();
}
function round2(innum)
{
var answer;
answer = Math.round(innum*100);
return answer/100.0;
}
function analyze(intext)
{
if (intext.indexOf("URNT12") != -1) {headerline1 = intext; return;}
if ((intext.indexOf("VORTEX") != -1) && (intext.indexOf("MESSAGE") != -1)) {headerline2 = intext; return;}
if (intext.substring(0,2) == "A.") {timeline = intext; return;}
if (intext.substring(0,2) == "B.") {latlonline = intext; return;}
if (intext.substring(0,2) == "C.") {minheightline = intext; return;}
if (intext.substring(0,2) == "D.") {maxsfcwline = intext; return;}
if (intext.substring(0,2) == "E.") {bearingsfcline = intext; return;}
if (intext.substring(0,2) == "F.") {maxflwline = intext; return;}
if (intext.substring(0,2) == "G.") {bearingflline = intext; return;}
if (intext.substring(0,2) == "H.") {minpline = intext; return;}
if (intext.substring(0,2) == "I.") {maxtempoline = intext; return;}
if (intext.substring(0,2) == "J.") {maxtempiline = intext; return;}
if (intext.substring(0,2) == "K.") {dewpointline = intext; return;}
if (intext.substring(0,2) == "L.") {eyetypeline = intext; return;}
if (intext.substring(0,2) == "M.") {eyeformline = intext; return;}
if (intext.substring(0,2) == "N.") {fixline = intext; return;}
if (intext.substring(0,2) == "O.") {fixaccline = intext; return;}
if (intext.substring(0,2) == "P.") {remarksline = intext; readpline = true; return;}
if ((intext.indexOf("DEG") != -1) && (intext.indexOf("MIN") != -1)) {latlonline = latlonline+intext; return;}
if (readpline) {remarksline = remarksline + intext; return;}
return;
}
function fixtime(intime)
{
var nowtime = new Date();
var utctimeval;
var localtimeval;
var marker = intime.indexOf("/");
var thehour, theminute, theday, theyear;
var newtimes;
// Fix for date of 1st in UTC, but 30/31 in local
theday = intime.substring(marker-2,marker);
thehour = intime.substring(marker+1,marker+3);
theminute = intime.substring(marker+3,marker+5);
if (nowtime.getFullYear) theyear = nowtime.getFullYear();
else
theyear = (nowtime.getYear() <= 1900) ? nowtime.getYear()+1900 : nowtime.getYear();
utctimeval = new Date(theyear, nowtime.getMonth(),theday,thehour,theminute);
localtimeval = new Date(Date.UTC(theyear, nowtime.getMonth(),theday,thehour,theminute));
if (localtimeval.getDate() != utctimeval.getDate())
{
if (utctimeval.getDate() == 1)
{
utctimeval.setMonth(utctimeval.getMonth()+1);
localtimeval = new Date(Date.UTC(theyear, nowtime.getMonth()+1,theday,thehour,theminute));
}
}
newtimes = "<b>Date/Time of Recon Report:</b> "+localtimeval.toLocaleString();
return newtimes;
}
function fixlat(inline)
{
var existline = inline;
var latd, latm, latdir, lond, lonm, londir;
existline = existline.substring(3);
latd = existline.substring(0,existline.indexOf(" DEG"));
existline = existline.substring(existline.indexOf(" DEG")+4);
latm = existline.substring(0,existline.indexOf(" MIN"));
existline = existline.substring(existline.indexOf(" MIN")+5);
latdir = existline.substring(0,1);
existline = existline.substring(1);
lond = existline.substring(0,existline.indexOf(" DEG"));
existline = existline.substring(existline.indexOf(" DEG")+4);
lonm = existline.substring(0,existline.indexOf(" MIN"));
existline = existline.substring(existline.indexOf(" MIN")+5);
londir = existline.substring(0,1);
existline = "<b>Position of the center:</b> "+latd+"°"+latm+"' "+latdir+" "+lond+"°"+lonm+"' "+londir;
return existline;
}
function fixpline(intext)
{
var existline = intext;
var mpress, epress;
// Search for extrap example
existline = existline.substring(3);
mpress = existline.substring(0,existline.indexOf(" MB"));
epress = round2(parseInt(mpress)*(0.02953));
epress =
existline = "<b>Minimum pressure: </b>"+mpress+"mb ("+epress+"in)";
return existline;
}
function fixhline(intext)
{
var existline = intext;
var press, height, normal;
existline = existline.substring(3);
if (existline.indexOf("NA") != -1) return "";
press = existline.substring(0,existline.indexOf(" MB"));
existline = existline.substring(existline.indexOf(" MB")+4);
height = existline.substring(0,existline.indexOf(" M"));
switch (parseInt(press))
{
case 700: normal = 3011; break;
case 850: normal = 1457; break;
case 925: normal = 762; break;
default: normal = -1;
}
if (normal < 0) return "";
existline = "<b>Minimum Height Measured At Standard Level Of "+press+"mb:</b> "+height+"m (Normal: "+normal+")";
return existline;
}
function fixswline(intext)
{
var existline = intext.substring(3);
var speed;
if (intext.indexOf("NA") != -1) return "<b>Maximum Surface Winds Were:</b> Not Estimated";
speed = existline.substring(0,existline.indexOf(" KT"));
return "<b>Maximum Surface Winds Were Estimated At:</b> "+speed+"KT";
}
function fixsbear(intext)
{
var existline = intext.substring(3);
var angle, dist;
if (intext.indexOf("NA") != -1) return "<b>No Bearing From Center To Estimated Surface Winds Was Measured</b>";
angle = existline.substring(0,existline.indexOf(" DEG"));
existline = existline.substring(existline.indexOf(" DEG")+5);
dist = existline.substring(0,existline.indexOf(" NM"));
existline = "<b>Estimated Surface Winds Were Measured "+dist+"nm ("+dist*1.15+"miles) From Center At Bearing "+angle+"°</b>";
return existline;
}
function fixflwbear(intext)
{
var existline = intext.substring(3);
var angle, speed;
if (intext.indexOf("NA") != -1) return "<b>No Maximum Flight Level Winds Were Measured</b>";
angle = existline.substring(0,existline.indexOf(" DEG"));
existline = existline.substring(existline.indexOf(" DEG")+5);
speed = existline.substring(0,existline.indexOf(" KT"));
existline = "<b>Maximum Flight Level Winds Were "+speed+"KT ("+round2(speed*1.15)+"mph) From "+angle+"°</b>";
return existline;
}
function fixflbear(intext)
{
var existline = intext.substring(3);
var angle, dist;
if (intext.indexOf("NA") != -1) return "<b>No Bearing From Center To Maximum Flight Level Winds Was Measured</b>";
angle = existline.substring(0,existline.indexOf(" DEG"));
existline = existline.substring(existline.indexOf(" DEG")+5);
dist = existline.substring(0,existline.indexOf(" NM"));
existline = "<b>Maximum Flight Level Winds Were Measured "+dist+"nm ("+dist*1.15+"miles) From Center At Bearing "+angle+"°</b>";
return existline;
}
function fixeyetype(intext)
{
var existline = intext.substring(3);
if (intext.indexOf("NA") != -1) return "<b>Eye Wall Was < 50% Closed</b>";
return "<b>Eye Wall Was Characterized As Being "+existline+"</b>";
}
function fixeyeform(intext)
{
var existline = intext.substring(3);
if (intext.indexOf("NA") != -1) return "<b>Eye Did Not Have A Definable Form</b>";
return "<b>Eye Form Was Characterized As Being "+existline+"</b>";
}
function fixfixline(intext)
{
var existline = intext.substring(3);
var ftypes, fheights;
ftypes = existline.substring(0,existline.indexOf("/"));
fheights = existline.substring(existline.indexOf("/")+1);
existline = "<b>Center Fix Established Using:</b> ";
if (ftypes.indexOf("1") != -1) existline = existline + "Penetration ";
if (ftypes.indexOf("2") != -1) existline = existline + "Radar ";
if (ftypes.indexOf("3") != -1) existline = existline + "Wind ";
if (ftypes.indexOf("4") != -1) existline = existline + "Pressure ";
if (ftypes.indexOf("5") != -1) existline = existline + "Temperature ";
existline = existline + "<br><b>Center Fix Established At Level(s):</b> ";
if (fheights.indexOf("0") != -1) existline = existline + "Surface ";
if (fheights.indexOf("1") != -1) existline = existline + "1500ft ";
if (fheights.indexOf("8") != -1) existline = existline + "850mb ";
if (fheights.indexOf("7") != -1) existline = existline + "700mb ";
if (fheights.indexOf("5") != -1) existline = existline + "500mb ";
if (fheights.indexOf("4") != -1) existline = existline + "400mb ";
if (fheights.indexOf("3") != -1) existline = existline + "300mb ";
if (fheights.indexOf("2") != -1) existline = existline + "200mb ";
if (fheights.indexOf("9") != -1) existline = existline + "925mb ";
return existline;
}
function fixacc(intext)
{
var existline = intext.substring(3);
var navacc, metacc;
navacc = existline.substring(0,existline.indexOf("/"));
metacc = existline.substring(existline.indexOf("/")+1);
return "<b>Navigational Accuracy Measured At "+parseFloat(navacc)+"nm</b><br><b>Meteorological Accuracy Measured At "+parseFloat(metacc)+"nm</b>";
}
function fixremarks(intext)
{
var existline = intext.substring(3);
var plane, planenum, msncnt, depnum, ocean, storm;
plane = existline.substring(0,existline.indexOf(" "));
if (plane.indexOf("AF") != -1)
{
planenum = plane.substring(2);
plane = plane.substring(0,2);
}
else
{
planenum = plane.substring(4);
plane = plane.substring(0,4);
}
existline = existline.substring(existline.indexOf(" ")+1);
msncnt = existline.substring(0,2);
existline = existline.substring(2);
depnum = existline.substring(0,2);
existline = existline.substring(2);
ocean = existline.substring(0,1);
switch (ocean)
{
case "A": ocean = "Atlantic Ocean"; break;
case "E": ocean = "Eastern Pacific Ocean"; break;
case "C": ocean = "Central Pacific Ocean"; break;
}
existline = existline.substring(2);
storm = existline.substring(0,existline.indexOf(" "));
existline = "<b>Storm "+storm+": Observed By "+plane+" #"+planenum+"</b><br><b>Storm #"+depnum+" in "+ocean+"</b>";
return existline;
}
function cleanup()
{
if (timeline != "") timeline = fixtime(timeline);
if (latlonline != "") latlonline = fixlat(latlonline);
if (minpline != "") minpline = fixpline(minpline);
if (minheightline != "") minheightline = fixhline(minheightline);
if (maxsfcwline != "") maxsfcwline = fixswline(maxsfcwline);
if (bearingsfcline != "") bearingsfcline = fixsbear(bearingsfcline);
if (maxflwline != "") maxflwline = fixflwbear(maxflwline);
if (bearingflline != "") bearingflline = fixflbear(bearingflline);
if (eyetypeline != "") eyetypeline = fixeyetype(eyetypeline);
if (eyeformline != "") eyeformline = fixeyeform(eyeformline);
if (fixline != "") fixline = fixfixline(fixline);
if (fixaccline != "") fixaccline = fixacc(fixaccline);
if (remarksline != "") remarksline = fixremarks(remarksline);
}
function decode()
{
var dtext;
var subline;
var nextcut;
dtext = document.getElementById("report").value;
dtext = dtext.toUpperCase();
nextcut = dtext.indexOf("\n");
while (nextcut != -1)
{
subline = dtext.substring(0,nextcut);
analyze(subline);
dtext = dtext.substring(nextcut+1);
nextcut = dtext.indexOf("\n");
}
cleanup();
// document.getElementById("line1").innerHTML = headerline1;
// document.getElementById("line2").innerHTML = headerline2;
document.getElementById("line3").innerHTML = timeline;
document.getElementById("line4").innerHTML = latlonline;
document.getElementById("line5").innerHTML = minheightline;
document.getElementById("line6").innerHTML = maxsfcwline;
document.getElementById("line7").innerHTML = bearingsfcline;
document.getElementById("line8").innerHTML = maxflwline;
document.getElementById("line9").innerHTML = bearingflline;
document.getElementById("line10").innerHTML = minpline;
// document.getElementById("line11").innerHTML = maxtempoline;
// document.getElementById("line12").innerHTML = maxtempiline;
// document.getElementById("line13").innerHTML = dewpointline;
document.getElementById("line14").innerHTML = eyetypeline;
document.getElementById("line15").innerHTML = eyeformline;
document.getElementById("line16").innerHTML = fixline;
document.getElementById("line17").innerHTML = fixaccline;
document.getElementById("line18").innerHTML = remarksline;
}
-->
</script>
</head>
<body onload="clearit()">
<center>
<b>Copy and paste recon report in this box:</b> (Reports available
<a target="_blank" href="http://www.nhc.noaa.gov/text/MIAREPNT2.shtml">here</a>)<br>
<textarea id="report" style="width:275px;height:150px"></textarea><br>
<input type="button" id="submit" value="Decode" onclick="decode()">
<input type="button" id="clear" value="Clear" onclick="clearit()">
<br><hr>
<div id="line18"></div>
<div id="line1"></div>
<div id="line2"></div>
<div id="line3"></div>
<div id="line4"></div>
<div id="line5"></div>
<div id="line6"></div>
<div id="line7"></div>
<div id="line8"></div>
<div id="line9"></div>
<div id="line10"></div>
<div id="line11"></div>
<div id="line12"></div>
<div id="line13"></div>
<div id="line14"></div>
<div id="line15"></div>
<div id="line16"></div>
<div id="line17"></div>
</center>
</body>
</html>
Oh, ok I see now!
Well thats No jog or wobble this confirms WNW TURN!
0 likes
- senorpepr
- Military Met/Moderator

- Posts: 12542
- Age: 43
- Joined: Fri Aug 22, 2003 9:22 pm
- Location: Mackenbach, Germany
- Contact:
Re: Satellite blackouts???
FritzPaul wrote:PS I'm working on a beta Java program to decode recon, so maybe I can help those who do it by hand!
Although there are javascripts written for vortex ans supplementary vortex messages, a recco, dropsonde, and minob decoder would be AWESOME! I'd build one, but I'm not familiar with javascript at all. Matter of fact, if you (or anyone) can make it happen, I'd like to put it on the S2K Recon Page.
0 likes
- huricanwatcher
- Category 3

- Posts: 893
- Age: 65
- Joined: Sat Sep 13, 2003 6:09 pm
- Location: Kirkwood NY
- Contact:
- HurricaneQueen
- S2K Supporter

- Posts: 1011
- Age: 80
- Joined: Sat Oct 12, 2002 7:36 pm
- Location: No. Naples, Fl (Vanderbilt Beach area)
Re: Satellite blackouts???
senorpepr wrote:FritzPaul wrote:PS I'm working on a beta Java program to decode recon, so maybe I can help those who do it by hand!
Although there are javascripts written for vortex ans supplementary vortex messages, a recco, dropsonde, and minob decoder would be AWESOME! I'd build one, but I'm not familiar with javascript at all. Matter of fact, if you (or anyone) can make it happen, I'd like to put it on the S2K Recon Page.
Thanks...
If you can get me the standard layout for the ones you want, i'll code it for you as time allows.
I like how it was quoted for accuracy and space so many times.... lol
-Eric
0 likes
-
Brent
- S2K Supporter

- Posts: 38266
- Age: 37
- Joined: Sun May 16, 2004 10:30 pm
- Location: Tulsa Oklahoma
- Contact:
ericinmia wrote:Code: Select all
<html>
<head>
<title>Hurricane Decoder</title>
<script>
<!--
var headerline1;
var headerline2;
var timeline;
var latlonline;
var minheightline;
var maxsfcwline;
var bearingsfcline;
var maxflwline;
var bearingflline;
var minpline;
var maxtempoline;
var maxtempiline;
var dewpointline;
var eyetypeline;
var eyeformline;
var fixline;
var fixaccline;
var remarksline;
var readpline = false;
function clearit()
{
document.getElementById("report").value = "";
document.getElementById("report").select();
}
function round2(innum)
{
var answer;
answer = Math.round(innum*100);
return answer/100.0;
}
function analyze(intext)
{
if (intext.indexOf("URNT12") != -1) {headerline1 = intext; return;}
if ((intext.indexOf("VORTEX") != -1) && (intext.indexOf("MESSAGE") != -1)) {headerline2 = intext; return;}
if (intext.substring(0,2) == "A.") {timeline = intext; return;}
if (intext.substring(0,2) == "B.") {latlonline = intext; return;}
if (intext.substring(0,2) == "C.") {minheightline = intext; return;}
if (intext.substring(0,2) == "D.") {maxsfcwline = intext; return;}
if (intext.substring(0,2) == "E.") {bearingsfcline = intext; return;}
if (intext.substring(0,2) == "F.") {maxflwline = intext; return;}
if (intext.substring(0,2) == "G.") {bearingflline = intext; return;}
if (intext.substring(0,2) == "H.") {minpline = intext; return;}
if (intext.substring(0,2) == "I.") {maxtempoline = intext; return;}
if (intext.substring(0,2) == "J.") {maxtempiline = intext; return;}
if (intext.substring(0,2) == "K.") {dewpointline = intext; return;}
if (intext.substring(0,2) == "L.") {eyetypeline = intext; return;}
if (intext.substring(0,2) == "M.") {eyeformline = intext; return;}
if (intext.substring(0,2) == "N.") {fixline = intext; return;}
if (intext.substring(0,2) == "O.") {fixaccline = intext; return;}
if (intext.substring(0,2) == "P.") {remarksline = intext; readpline = true; return;}
if ((intext.indexOf("DEG") != -1) && (intext.indexOf("MIN") != -1)) {latlonline = latlonline+intext; return;}
if (readpline) {remarksline = remarksline + intext; return;}
return;
}
function fixtime(intime)
{
var nowtime = new Date();
var utctimeval;
var localtimeval;
var marker = intime.indexOf("/");
var thehour, theminute, theday, theyear;
var newtimes;
// Fix for date of 1st in UTC, but 30/31 in local
theday = intime.substring(marker-2,marker);
thehour = intime.substring(marker+1,marker+3);
theminute = intime.substring(marker+3,marker+5);
if (nowtime.getFullYear) theyear = nowtime.getFullYear();
else
theyear = (nowtime.getYear() <= 1900) ? nowtime.getYear()+1900 : nowtime.getYear();
utctimeval = new Date(theyear, nowtime.getMonth(),theday,thehour,theminute);
localtimeval = new Date(Date.UTC(theyear, nowtime.getMonth(),theday,thehour,theminute));
if (localtimeval.getDate() != utctimeval.getDate())
{
if (utctimeval.getDate() == 1)
{
utctimeval.setMonth(utctimeval.getMonth()+1);
localtimeval = new Date(Date.UTC(theyear, nowtime.getMonth()+1,theday,thehour,theminute));
}
}
newtimes = "<b>Date/Time of Recon Report:</b> "+localtimeval.toLocaleString();
return newtimes;
}
function fixlat(inline)
{
var existline = inline;
var latd, latm, latdir, lond, lonm, londir;
existline = existline.substring(3);
latd = existline.substring(0,existline.indexOf(" DEG"));
existline = existline.substring(existline.indexOf(" DEG")+4);
latm = existline.substring(0,existline.indexOf(" MIN"));
existline = existline.substring(existline.indexOf(" MIN")+5);
latdir = existline.substring(0,1);
existline = existline.substring(1);
lond = existline.substring(0,existline.indexOf(" DEG"));
existline = existline.substring(existline.indexOf(" DEG")+4);
lonm = existline.substring(0,existline.indexOf(" MIN"));
existline = existline.substring(existline.indexOf(" MIN")+5);
londir = existline.substring(0,1);
existline = "<b>Position of the center:</b> "+latd+"°"+latm+"' "+latdir+" "+lond+"°"+lonm+"' "+londir;
return existline;
}
function fixpline(intext)
{
var existline = intext;
var mpress, epress;
// Search for extrap example
existline = existline.substring(3);
mpress = existline.substring(0,existline.indexOf(" MB"));
epress = round2(parseInt(mpress)*(0.02953));
epress =
existline = "<b>Minimum pressure: </b>"+mpress+"mb ("+epress+"in)";
return existline;
}
function fixhline(intext)
{
var existline = intext;
var press, height, normal;
existline = existline.substring(3);
if (existline.indexOf("NA") != -1) return "";
press = existline.substring(0,existline.indexOf(" MB"));
existline = existline.substring(existline.indexOf(" MB")+4);
height = existline.substring(0,existline.indexOf(" M"));
switch (parseInt(press))
{
case 700: normal = 3011; break;
case 850: normal = 1457; break;
case 925: normal = 762; break;
default: normal = -1;
}
if (normal < 0) return "";
existline = "<b>Minimum Height Measured At Standard Level Of "+press+"mb:</b> "+height+"m (Normal: "+normal+")";
return existline;
}
function fixswline(intext)
{
var existline = intext.substring(3);
var speed;
if (intext.indexOf("NA") != -1) return "<b>Maximum Surface Winds Were:</b> Not Estimated";
speed = existline.substring(0,existline.indexOf(" KT"));
return "<b>Maximum Surface Winds Were Estimated At:</b> "+speed+"KT";
}
function fixsbear(intext)
{
var existline = intext.substring(3);
var angle, dist;
if (intext.indexOf("NA") != -1) return "<b>No Bearing From Center To Estimated Surface Winds Was Measured</b>";
angle = existline.substring(0,existline.indexOf(" DEG"));
existline = existline.substring(existline.indexOf(" DEG")+5);
dist = existline.substring(0,existline.indexOf(" NM"));
existline = "<b>Estimated Surface Winds Were Measured "+dist+"nm ("+dist*1.15+"miles) From Center At Bearing "+angle+"°</b>";
return existline;
}
function fixflwbear(intext)
{
var existline = intext.substring(3);
var angle, speed;
if (intext.indexOf("NA") != -1) return "<b>No Maximum Flight Level Winds Were Measured</b>";
angle = existline.substring(0,existline.indexOf(" DEG"));
existline = existline.substring(existline.indexOf(" DEG")+5);
speed = existline.substring(0,existline.indexOf(" KT"));
existline = "<b>Maximum Flight Level Winds Were "+speed+"KT ("+round2(speed*1.15)+"mph) From "+angle+"°</b>";
return existline;
}
function fixflbear(intext)
{
var existline = intext.substring(3);
var angle, dist;
if (intext.indexOf("NA") != -1) return "<b>No Bearing From Center To Maximum Flight Level Winds Was Measured</b>";
angle = existline.substring(0,existline.indexOf(" DEG"));
existline = existline.substring(existline.indexOf(" DEG")+5);
dist = existline.substring(0,existline.indexOf(" NM"));
existline = "<b>Maximum Flight Level Winds Were Measured "+dist+"nm ("+dist*1.15+"miles) From Center At Bearing "+angle+"°</b>";
return existline;
}
function fixeyetype(intext)
{
var existline = intext.substring(3);
if (intext.indexOf("NA") != -1) return "<b>Eye Wall Was < 50% Closed</b>";
return "<b>Eye Wall Was Characterized As Being "+existline+"</b>";
}
function fixeyeform(intext)
{
var existline = intext.substring(3);
if (intext.indexOf("NA") != -1) return "<b>Eye Did Not Have A Definable Form</b>";
return "<b>Eye Form Was Characterized As Being "+existline+"</b>";
}
function fixfixline(intext)
{
var existline = intext.substring(3);
var ftypes, fheights;
ftypes = existline.substring(0,existline.indexOf("/"));
fheights = existline.substring(existline.indexOf("/")+1);
existline = "<b>Center Fix Established Using:</b> ";
if (ftypes.indexOf("1") != -1) existline = existline + "Penetration ";
if (ftypes.indexOf("2") != -1) existline = existline + "Radar ";
if (ftypes.indexOf("3") != -1) existline = existline + "Wind ";
if (ftypes.indexOf("4") != -1) existline = existline + "Pressure ";
if (ftypes.indexOf("5") != -1) existline = existline + "Temperature ";
existline = existline + "<br><b>Center Fix Established At Level(s):</b> ";
if (fheights.indexOf("0") != -1) existline = existline + "Surface ";
if (fheights.indexOf("1") != -1) existline = existline + "1500ft ";
if (fheights.indexOf("8") != -1) existline = existline + "850mb ";
if (fheights.indexOf("7") != -1) existline = existline + "700mb ";
if (fheights.indexOf("5") != -1) existline = existline + "500mb ";
if (fheights.indexOf("4") != -1) existline = existline + "400mb ";
if (fheights.indexOf("3") != -1) existline = existline + "300mb ";
if (fheights.indexOf("2") != -1) existline = existline + "200mb ";
if (fheights.indexOf("9") != -1) existline = existline + "925mb ";
return existline;
}
function fixacc(intext)
{
var existline = intext.substring(3);
var navacc, metacc;
navacc = existline.substring(0,existline.indexOf("/"));
metacc = existline.substring(existline.indexOf("/")+1);
return "<b>Navigational Accuracy Measured At "+parseFloat(navacc)+"nm</b><br><b>Meteorological Accuracy Measured At "+parseFloat(metacc)+"nm</b>";
}
function fixremarks(intext)
{
var existline = intext.substring(3);
var plane, planenum, msncnt, depnum, ocean, storm;
plane = existline.substring(0,existline.indexOf(" "));
if (plane.indexOf("AF") != -1)
{
planenum = plane.substring(2);
plane = plane.substring(0,2);
}
else
{
planenum = plane.substring(4);
plane = plane.substring(0,4);
}
existline = existline.substring(existline.indexOf(" ")+1);
msncnt = existline.substring(0,2);
existline = existline.substring(2);
depnum = existline.substring(0,2);
existline = existline.substring(2);
ocean = existline.substring(0,1);
switch (ocean)
{
case "A": ocean = "Atlantic Ocean"; break;
case "E": ocean = "Eastern Pacific Ocean"; break;
case "C": ocean = "Central Pacific Ocean"; break;
}
existline = existline.substring(2);
storm = existline.substring(0,existline.indexOf(" "));
existline = "<b>Storm "+storm+": Observed By "+plane+" #"+planenum+"</b><br><b>Storm #"+depnum+" in "+ocean+"</b>";
return existline;
}
function cleanup()
{
if (timeline != "") timeline = fixtime(timeline);
if (latlonline != "") latlonline = fixlat(latlonline);
if (minpline != "") minpline = fixpline(minpline);
if (minheightline != "") minheightline = fixhline(minheightline);
if (maxsfcwline != "") maxsfcwline = fixswline(maxsfcwline);
if (bearingsfcline != "") bearingsfcline = fixsbear(bearingsfcline);
if (maxflwline != "") maxflwline = fixflwbear(maxflwline);
if (bearingflline != "") bearingflline = fixflbear(bearingflline);
if (eyetypeline != "") eyetypeline = fixeyetype(eyetypeline);
if (eyeformline != "") eyeformline = fixeyeform(eyeformline);
if (fixline != "") fixline = fixfixline(fixline);
if (fixaccline != "") fixaccline = fixacc(fixaccline);
if (remarksline != "") remarksline = fixremarks(remarksline);
}
function decode()
{
var dtext;
var subline;
var nextcut;
dtext = document.getElementById("report").value;
dtext = dtext.toUpperCase();
nextcut = dtext.indexOf("\n");
while (nextcut != -1)
{
subline = dtext.substring(0,nextcut);
analyze(subline);
dtext = dtext.substring(nextcut+1);
nextcut = dtext.indexOf("\n");
}
cleanup();
// document.getElementById("line1").innerHTML = headerline1;
// document.getElementById("line2").innerHTML = headerline2;
document.getElementById("line3").innerHTML = timeline;
document.getElementById("line4").innerHTML = latlonline;
document.getElementById("line5").innerHTML = minheightline;
document.getElementById("line6").innerHTML = maxsfcwline;
document.getElementById("line7").innerHTML = bearingsfcline;
document.getElementById("line8").innerHTML = maxflwline;
document.getElementById("line9").innerHTML = bearingflline;
document.getElementById("line10").innerHTML = minpline;
// document.getElementById("line11").innerHTML = maxtempoline;
// document.getElementById("line12").innerHTML = maxtempiline;
// document.getElementById("line13").innerHTML = dewpointline;
document.getElementById("line14").innerHTML = eyetypeline;
document.getElementById("line15").innerHTML = eyeformline;
document.getElementById("line16").innerHTML = fixline;
document.getElementById("line17").innerHTML = fixaccline;
document.getElementById("line18").innerHTML = remarksline;
}
-->
</script>
</head>
<body onload="clearit()">
<center>
<b>Copy and paste recon report in this box:</b> (Reports available
<a target="_blank" href="http://www.nhc.noaa.gov/text/MIAREPNT2.shtml">here</a>)<br>
<textarea id="report" style="width:275px;height:150px"></textarea><br>
<input type="button" id="submit" value="Decode" onclick="decode()">
<input type="button" id="clear" value="Clear" onclick="clearit()">
<br><hr>
<div id="line18"></div>
<div id="line1"></div>
<div id="line2"></div>
<div id="line3"></div>
<div id="line4"></div>
<div id="line5"></div>
<div id="line6"></div>
<div id="line7"></div>
<div id="line8"></div>
<div id="line9"></div>
<div id="line10"></div>
<div id="line11"></div>
<div id="line12"></div>
<div id="line13"></div>
<div id="line14"></div>
<div id="line15"></div>
<div id="line16"></div>
<div id="line17"></div>
</center>
</body>
</html>
Huh??? What is all this mess???
0 likes
#neversummer
It decodes this:
To this:
Code: Select all
000
URNT12 KNHC 212359
VORTEX DATA MESSAGE
A. 21/23:15:10Z
B. 25 deg 40 min N
075 deg 51 min W
C. NA mb NA m
D. 35 kt
E. 311 deg 024 nm
F. 047 deg 021 kt
G. 302 deg 015 nm
H. EXTRAP 1009 mb
I. 23 C/ 310 m
J. 24 C/ 302 m
K. 22 C/ NA
L. NA
M. NA
N. 12345/ 1
O. 0.02 / 1 nm
P. AF307 01EEA INVEST OB 20
MAX FL WIND 45 KT E QUAD 22:31:00 Z
SLP EXTRAP FROM 1500 FT.
POORLY DEFINED CENTER ON RADAR.To this:
Code: Select all
Storm INVEST: Observed By AF #307
Storm #EE in Atlantic Ocean
Date/Time of Recon Report: NaN
Position of the center: 25° 40' N 075° 51' W
Maximum Surface Winds Were Estimated At: 35 KT
Estimated Surface Winds Were Measured 024nm (27.599999999999998miles) From Center At Bearing 311°
Maximum Flight Level Winds Were 021KT (24.15mph) From 047°
Maximum Flight Level Winds Were Measured 015nm (17.25miles) From Center At Bearing 302°
Minimum pressure: EXTRAP 1009mb (NaNin)
Eye Wall Was < 50% Closed
Eye Did Not Have A Definable Form
Center Fix Established Using: Penetration Radar Wind Pressure Temperature
Center Fix Established At Level(s): 1500ft
Navigational Accuracy Measured At 0.02nm
Meteorological Accuracy Measured At 1nm
0 likes
-
kevin
That is computer source code. Javascript which is a programming language..
Just because you don't get something doesn't mean its a mess or a waste of space.
The people who were being silly were the ones who quoted the entire thing. I know its because they click the quote button on the thread page, but really if you copy and paste something into the new reply box, and they select what you want quoted (hopefully something like this:
What the heck is this crazy bizzare way of speaking?
<<
It would be helpful.
Just because you don't get something doesn't mean its a mess or a waste of space.
The people who were being silly were the ones who quoted the entire thing. I know its because they click the quote button on the thread page, but really if you copy and paste something into the new reply box, and they select what you want quoted (hopefully something like this:
<html>
<head>
<title> Hurricane Decoder </title>
.... snipped for space
What the heck is this crazy bizzare way of speaking?
<<
It would be helpful.
0 likes
Who is online
Users browsing this forum: No registered users and 120 guests


