001 /* 002 * $Id: StormAODTInfo.java,v 1.1 2012/01/04 20:39:38 tommyj Exp $ 003 * 004 * This file is part of McIDAS-V 005 * 006 * Copyright 2007-2012 007 * Space Science and Engineering Center (SSEC) 008 * University of Wisconsin - Madison 009 * 1225 W. Dayton Street, Madison, WI 53706, USA 010 * https://www.ssec.wisc.edu/mcidas 011 * 012 * All Rights Reserved 013 * 014 * McIDAS-V is built on Unidata's IDV and SSEC's VisAD libraries, and 015 * some McIDAS-V source code is based on IDV and VisAD source code. 016 * 017 * McIDAS-V is free software; you can redistribute it and/or modify 018 * it under the terms of the GNU Lesser Public License as published by 019 * the Free Software Foundation; either version 3 of the License, or 020 * (at your option) any later version. 021 * 022 * McIDAS-V is distributed in the hope that it will be useful, 023 * but WITHOUT ANY WARRANTY; without even the implied warranty of 024 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 025 * GNU Lesser Public License for more details. 026 * 027 * You should have received a copy of the GNU Lesser Public License 028 * along with this program. If not, see http://www.gnu.org/licenses. 029 */ 030 031 package edu.wisc.ssec.mcidasv.control.cyclone; 032 033 import java.util.ArrayList; 034 035 /** 036 * Created by IntelliJ IDEA. User: yuanho Date: Feb 25, 2009 Time: 2:23:27 PM To 037 * change this template use File | Settings | File Templates. 038 */ 039 040 public class StormAODTInfo { 041 042 /* various constants */ 043 044 /** _more_ */ 045 static public int kstart_v72 = 24; /* 046 * inner cloud region analysis radius 047 * (km) 048 */ 049 050 /** _more_ */ 051 static public int kend_v72 = 136; /* outer cloud region analysis radius (km) */ 052 053 /** _more_ */ 054 static public int kenda_v72 = 190; /* 055 * automated cursor position analysis 056 * radius (km) 057 */ 058 059 /** _more_ */ 060 static public int keyerM_v72 = 24; /* 061 * outer eye region search radius (km) - 062 * Manual position 063 */ 064 065 /** _more_ */ 066 static public int keyerA_v72 = 75; /* 067 * outer eye region search radius (km) - 068 * Auto position 069 */ 070 071 /** _more_ */ 072 static public int kres_v72 = 4; /* width of the cloud region analysis rings */ 073 074 /** _more_ */ 075 static public int arfd_v72; /* the FILE id for the image in question */ 076 077 /* global variables */ 078 /* 079 * char eyetype_v72[7][20]={ 080 * "EYE","PINHOLE EYE","LARGE EYE","LARGE RAGGED","RAGGED","OBSCURED","NONE" 081 * }; 082 */ 083 084 /** _more_ */ 085 static public String eyetype_v72[] = { "EYE", "PINHOLE EYE", "LARGE EYE", 086 "NONE" }; 087 088 /** _more_ */ 089 static public String cloudtype_v72[] = { "UNIFORM CDO", "EMBEDDED CENTER", 090 "IRREGULAR CDO", "CURVED BAND", "SHEAR", "EYE" }; 091 092 /** _more_ */ 093 static public String cbasin_v72[] = { "ATLANTIC", "PACIFIC " }; 094 095 /** _more_ */ 096 static public String cmon_v72[] = { "JAN", "FEB", "MAR", "APR", "MAY", 097 "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC" }; 098 /* T#-Pressure/Wind relationships (Atlantic and Pacific) */ 099 /* increased from 73 to 83 to allow for >8.0 storms */ 100 101 /** _more_ */ 102 static public double tno_v72[] = { -9999., -8888., 1.0, 1.1, 1.2, 1.3, 1.4, 103 1.5, 1.6, 1.7, 1.8, 1.9, 2.0, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 104 2.8, 2.9, 3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 4.0, 105 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8, 4.9, 5.0, 5.1, 5.2, 5.3, 106 5.4, 5.5, 5.6, 5.7, 5.8, 5.9, 6.0, 6.1, 6.2, 6.3, 6.4, 6.5, 6.6, 107 6.7, 6.8, 6.9, 7.0, 7.1, 7.2, 7.3, 7.4, 7.5, 7.6, 7.7, 7.8, 7.9, 108 8.0, 8.1, 8.2, 8.3, 8.4, 8.5, 8.6, 8.7, 8.8, 8.9, 9.0 }; 109 110 /** _more_ */ 111 static public double pres_v72[][] = { 112 /* Atlantic pressure relationship values */ 113 { -9999.0, -8888.0, 1014.0, 1013.6, 1013.2, 1012.8, 1012.4, 1012.0, 114 1011.4, 1010.8, 1010.2, 1009.6, 1009.0, 1008.2, 1007.4, 115 1006.6, 1005.8, 1005.0, 1004.0, 1003.0, 1002.0, 1001.0, 116 1000.0, 998.8, 997.6, 996.4, 995.2, 994.0, 992.6, 991.2, 117 989.8, 988.4, 987.0, 985.4, 983.8, 982.2, 980.6, 979.0, 118 977.2, 975.4, 973.6, 971.8, 970.0, 968.0, 966.0, 964.0, 119 962.0, 960.0, 957.6, 955.2, 952.8, 950.4, 948.0, 945.4, 120 942.8, 940.2, 937.6, 935.0, 932.2, 929.4, 926.6, 923.8, 121 921.0, 918.0, 915.0, 912.0, 909.0, 906.0, 902.8, 899.6, 122 896.4, 893.2, 890.0, 886.6, 883.2, 879.8, 876.4, 873.0, 123 869.4, 865.8, 862.2, 858.6, 855.0 }, 124 /* Pacific pressure relationship values */ 125 { -9999.0, -8888.0, 1005.0, 1004.6, 1004.2, 1003.8, 1003.4, 1003.0, 126 1002.4, 1001.8, 1001.2, 1000.6, 1000.0, 999.4, 998.8, 127 998.2, 997.6, 997.0, 995.8, 994.6, 993.4, 992.2, 991.0, 128 989.6, 988.2, 986.8, 985.4, 984.0, 982.4, 980.8, 979.2, 129 977.6, 976.0, 974.0, 972.0, 970.0, 968.0, 966.0, 963.6, 130 961.2, 958.8, 956.4, 954.0, 951.4, 948.8, 946.2, 943.6, 131 941.0, 938.2, 935.4, 932.6, 929.8, 927.0, 924.4, 921.8, 132 919.2, 916.6, 914.0, 910.8, 907.6, 904.4, 901.2, 898.0, 133 894.2, 890.4, 886.6, 882.8, 879.0, 874.8, 870.6, 866.4, 134 862.2, 858.0, 853.4, 848.8, 844.2, 839.6, 835.0, 830.0, 135 825.0, 820.0, 815.0, 810.0 } }; 136 137 /* Atlantic/Pacific pressure relationship values */ 138 139 /** _more_ */ 140 static public double wind_v72[] = { -9999.0, -8888.0, 25.0, 25.0, 25.0, 141 25.0, 25.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 142 34.0, 35.0, 37.0, 39.0, 41.0, 43.0, 45.0, 47.0, 49.0, 51.0, 53.0, 143 55.0, 57.0, 59.0, 61.0, 63.0, 65.0, 67.4, 69.8, 72.2, 74.6, 77.0, 144 79.6, 82.2, 84.8, 87.4, 90.0, 92.4, 94.8, 97.2, 99.6, 102.0, 104.6, 145 107.2, 109.8, 112.4, 115.0, 117.4, 119.8, 122.2, 124.6, 127.0, 146 129.6, 132.2, 134.8, 137.4, 140.0, 143.0, 146.0, 149.0, 152.0, 147 155.0, 158.0, 161.0, 164.0, 167.0, 170.0, 173.0, 176.0, 179.0, 148 182.0, 185.0, 188.0, 191.0, 194.0, 197.0, 200.0 }; 149 /* BD curve break points */ 150 151 /** _more_ */ 152 static public double ebd_v72[] = { 30.0, 9.0, -30.0, -42.0, -54.0, -64.0, 153 -70.0, -76.0, -80.0, -84.0, -100.0 }; 154 155 /* AODT library global variables */ 156 157 /** _more_ */ 158 boolean odt_v72, olist_v72, oautomode_v72, override_v72; 159 160 /** _more_ */ 161 boolean ostartstr_v72, oland_v72, osearch_v72; 162 163 /** _more_ */ 164 float[][] spiralband_v72 = new float[2][37]; 165 166 /** _more_ */ 167 float fcstlat_v72, fcstlon_v72; 168 169 /** _more_ */ 170 double fcsttime_v72, starttime_v72, endtime_v72; 171 172 /** _more_ */ 173 String hfile_v72, fixfile_v72; 174 175 /** _more_ */ 176 String diagnostics_v72; 177 178 /** _more_ */ 179 IRData odthistoryfirst_v72; 180 181 /** _more_ */ 182 IRData odtcurrent_v72; 183 184 /** _more_ */ 185 public ArrayList<RingData> tcircfirst_v72; 186 187 /** _more_ */ 188 DataGrid areadata_v72; 189 190 /** 191 * Class RingData _more_ 192 * 193 * 194 * @author IDV Development Team 195 * @version $Revision: 1.1 $ 196 */ 197 public class RingData { 198 199 /** _more_ */ 200 float dist; 201 202 /** _more_ */ 203 float angle; 204 205 /** _more_ */ 206 float temp; 207 208 /** 209 * _more_ 210 */ 211 RingData() { 212 } 213 214 /** 215 * _more_ 216 * 217 * @param dist 218 * _more_ 219 * @param angle 220 * _more_ 221 * @param temp 222 * _more_ 223 */ 224 RingData(float dist, float angle, float temp) { 225 this.dist = dist; 226 this.angle = angle; 227 this.temp = temp; 228 } 229 230 ; 231 232 } 233 234 /** 235 * Class DataGrid _more_ 236 * 237 * 238 * @author IDV Development Team 239 * @version $Revision: 1.1 $ 240 */ 241 public class DataGrid { 242 243 /** _more_ */ 244 float[][] temp = new float[500][500]; 245 246 /** _more_ */ 247 float[][] lat = new float[500][500]; 248 249 /** _more_ */ 250 float[][] lon = new float[500][500]; 251 252 /** _more_ */ 253 int numx; 254 255 /** _more_ */ 256 int numy; 257 258 /** 259 * _more_ 260 */ 261 DataGrid() { 262 } 263 264 /** 265 * _more_ 266 * 267 * @param temp 268 * _more_ 269 * @param lon 270 * _more_ 271 * @param lat 272 * _more_ 273 * @param numx 274 * _more_ 275 * @param numy 276 * _more_ 277 */ 278 DataGrid(float[][] temp, float[][] lon, float[][] lat, int numx, 279 int numy) { 280 this.temp = temp; 281 this.lat = lat; 282 this.lon = lon; 283 this.numx = numx; 284 this.numy = numy; 285 } 286 } 287 288 ; 289 290 /** 291 * Class IRData _more_ 292 * 293 * 294 * @author IDV Development Team 295 * @version $Revision: 1.1 $ 296 */ 297 public class IRData { 298 299 /** _more_ */ 300 int date; 301 302 /** _more_ */ 303 int time; 304 305 /** _more_ */ 306 float TrawO; 307 308 /** _more_ */ 309 float Traw; 310 311 /** _more_ */ 312 float Tfinal; 313 314 /** _more_ */ 315 float Tfinal3; 316 317 /** _more_ */ 318 float CI; 319 320 /** _more_ */ 321 float eyet; 322 323 /** _more_ */ 324 float warmt; 325 326 /** _more_ */ 327 float cloudt; 328 329 /** _more_ */ 330 float cloudt2; 331 332 /** _more_ */ 333 float cwcloudt; 334 335 /** _more_ */ 336 float latitude; 337 338 /** _more_ */ 339 float longitude; 340 341 /** _more_ */ 342 float warmlatitude; 343 344 /** _more_ */ 345 float warmlongitude; 346 347 /** _more_ */ 348 float eyecdosize; 349 350 /** _more_ */ 351 float eyestdv; 352 353 /** _more_ */ 354 float cloudsymave; 355 356 /** _more_ */ 357 int sattype; 358 359 /** _more_ */ 360 int eyescene; 361 362 /** _more_ */ 363 int cloudscene; 364 365 /** _more_ */ 366 int eyesceneold; 367 368 /** _more_ */ 369 int cloudsceneold; 370 371 /** _more_ */ 372 int rule9; 373 374 /** _more_ */ 375 int rule8; 376 377 /** _more_ */ 378 int land; 379 380 /** _more_ */ 381 int eyefft; 382 383 /** _more_ */ 384 int cloudfft; 385 386 /** _more_ */ 387 int cwring; 388 389 /** _more_ */ 390 int ringcb; 391 392 /** _more_ */ 393 int ringcbval; 394 395 /** _more_ */ 396 int ringcbvalmax; 397 398 /** _more_ */ 399 float ringcblatmax; 400 401 /** _more_ */ 402 float ringcblonmax; 403 404 /** _more_ */ 405 float CIadjp; 406 /* float sst; */ 407 /* float TIEraw; */ 408 /* float TIEavg; */ 409 /* int TIEflag; */ 410 411 /** _more_ */ 412 int autopos; 413 414 /** _more_ */ 415 int LBflag; 416 417 /** _more_ */ 418 int rapiddiss; 419 420 /** _more_ */ 421 float rmw; 422 423 /** _more_ */ 424 char[] comment = new char[50]; 425 426 /** 427 * _more_ 428 */ 429 IRData() { 430 } 431 432 /** 433 * _more_ 434 * 435 * @param date 436 * _more_ 437 * @param time 438 * _more_ 439 * @param TrawO 440 * _more_ 441 * @param Traw 442 * _more_ 443 * @param Tfinal 444 * _more_ 445 * @param Tfinal3 446 * _more_ 447 * @param CI 448 * _more_ 449 * @param eyet 450 * _more_ 451 * @param warmt 452 * _more_ 453 * @param cloudt 454 * _more_ 455 * @param cloudt2 456 * _more_ 457 * @param cwcloudt 458 * _more_ 459 * @param latitude 460 * _more_ 461 * @param longitude 462 * _more_ 463 * @param warmlatitude 464 * _more_ 465 * @param warmlongitude 466 * _more_ 467 * @param eyecdosize 468 * _more_ 469 * @param eyestdv 470 * _more_ 471 * @param cloudsymave 472 * _more_ 473 * @param sattype 474 * _more_ 475 * @param eyescene 476 * _more_ 477 * @param cloudscene 478 * _more_ 479 * @param eyesceneold 480 * _more_ 481 * @param cloudsceneold 482 * _more_ 483 * @param rule9 484 * _more_ 485 * @param rule8 486 * _more_ 487 * @param land 488 * _more_ 489 * @param eyefft 490 * _more_ 491 * @param cloudfft 492 * _more_ 493 * @param cwring 494 * _more_ 495 * @param ringcb 496 * _more_ 497 * @param ringcbval 498 * _more_ 499 * @param ringcbvalmax 500 * _more_ 501 * @param ringcblatmax 502 * _more_ 503 * @param ringcblonmax 504 * _more_ 505 * @param CIadjp 506 * _more_ 507 * @param autopos 508 * _more_ 509 * @param LBflag 510 * _more_ 511 * @param rapiddiss 512 * _more_ 513 * @param rmw 514 * _more_ 515 * @param comment 516 * _more_ 517 */ 518 IRData(int date, int time, float TrawO, float Traw, float Tfinal, 519 float Tfinal3, float CI, float eyet, float warmt, float cloudt, 520 float cloudt2, float cwcloudt, float latitude, float longitude, 521 float warmlatitude, float warmlongitude, float eyecdosize, 522 float eyestdv, float cloudsymave, int sattype, int eyescene, 523 int cloudscene, int eyesceneold, int cloudsceneold, int rule9, 524 int rule8, int land, int eyefft, int cloudfft, int cwring, 525 int ringcb, int ringcbval, int ringcbvalmax, 526 float ringcblatmax, float ringcblonmax, float CIadjp, 527 int autopos, int LBflag, int rapiddiss, float rmw, 528 char[] comment) { 529 530 this.date = date; 531 this.time = time; 532 this.TrawO = TrawO; 533 this.Traw = Traw; 534 this.Tfinal = Tfinal; 535 this.Tfinal3 = Tfinal3; 536 this.CI = CI; 537 this.eyet = eyet; 538 this.warmt = warmt; 539 this.cloudt = cloudt; 540 this.cloudt2 = cloudt2; 541 this.cwcloudt = cwcloudt; 542 this.latitude = latitude; 543 this.longitude = longitude; 544 this.warmlatitude = warmlatitude; 545 this.warmlongitude = warmlongitude; 546 this.eyecdosize = eyecdosize; 547 this.eyestdv = eyestdv; 548 this.cloudsymave = cloudsymave; 549 this.sattype = sattype; 550 this.eyescene = eyescene; 551 this.cloudscene = cloudscene; 552 this.eyesceneold = eyesceneold; 553 this.cloudsceneold = cloudsceneold; 554 this.rule9 = rule9; 555 this.rule8 = rule8; 556 this.land = land; 557 this.eyefft = eyefft; 558 this.cloudfft = cloudfft; 559 this.cwring = cwring; 560 this.ringcb = ringcb; 561 this.ringcbval = ringcbval; 562 this.ringcbvalmax = ringcbvalmax; 563 this.ringcblatmax = ringcblatmax; 564 this.ringcblonmax = ringcblonmax; 565 this.CIadjp = CIadjp; 566 /* float sst; */ 567 /* float TIEraw; */ 568 /* float TIEavg; */ 569 /* int TIEflag; */ 570 this.autopos = autopos; 571 this.LBflag = LBflag; 572 this.rapiddiss = rapiddiss; 573 this.rmw = rmw; 574 this.comment = comment; 575 } 576 } 577 578 }