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