001 /* 002 * $Id: StormAODTInfo.java,v 1.1 2012/01/04 20:40:51 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.data.cyclone; 032 033 import java.util.ArrayList; 034 import java.util.List; 035 036 /** 037 * Created by IntelliJ IDEA. User: yuanho Date: Feb 25, 2009 Time: 2:23:27 PM To 038 * change this template use File | Settings | File Templates. 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 public StormAODTInfo() { 191 } 192 193 public static class ImgCoeffs { 194 String sat_id; 195 int sat_num; 196 int chan; 197 int det; 198 float scal_m; 199 float scal_b; 200 float side; 201 float conv_n; 202 float conv_a; 203 float conv_b; 204 float conv_g; 205 206 public ImgCoeffs(List<String> toks) { 207 sat_id = toks.get(0); 208 sat_num = Integer.parseInt(toks.get(1)); 209 chan = Integer.parseInt(toks.get(2)); 210 det = Integer.parseInt(toks.get(3)); 211 scal_m = Float.parseFloat(toks.get(4)); 212 scal_b = Float.parseFloat(toks.get(5)); 213 side = Float.parseFloat(toks.get(6)); 214 conv_n = Float.parseFloat(toks.get(7)); 215 conv_a = Float.parseFloat(toks.get(8)); 216 conv_b = Float.parseFloat(toks.get(9)); 217 conv_g = Float.parseFloat(toks.get(10)); 218 219 } 220 221 public String getSat_id() { 222 return sat_id; 223 } 224 225 } 226 227 /** 228 * Class RingData _more_ 229 * 230 * 231 * @author IDV Development Team 232 * @version $Revision: 1.1 $ 233 */ 234 public static class RingData { 235 236 /** _more_ */ 237 float dist; 238 239 /** _more_ */ 240 float angle; 241 242 /** _more_ */ 243 float temp; 244 245 /** 246 * _more_ 247 */ 248 RingData() { 249 } 250 251 /** 252 * _more_ 253 * 254 * @param dist 255 * _more_ 256 * @param angle 257 * _more_ 258 * @param temp 259 * _more_ 260 */ 261 RingData(float dist, float angle, float temp) { 262 this.dist = dist; 263 this.angle = angle; 264 this.temp = temp; 265 } 266 267 } 268 269 /** 270 * Class DataGrid _more_ 271 * 272 * 273 * @author IDV Development Team 274 * @version $Revision: 1.1 $ 275 */ 276 277 public static class DataGrid { 278 float[][] temp; 279 280 /** _more_ */ 281 float[][] lat; 282 283 /** _more_ */ 284 float[][] lon; 285 286 /** _more_ */ 287 int numx; 288 289 /** _more_ */ 290 int numy; 291 292 public DataGrid(float[][] temp, float[][] lon, float[][] lat, int numx, 293 int numy) { 294 this.temp = temp; 295 this.lat = lat; 296 this.lon = lon; 297 this.numx = numx; 298 this.numy = numy; 299 } 300 301 public float[][] getlons() { 302 return lon; 303 } 304 305 public float[][] getlats() { 306 return lat; 307 } 308 309 }; 310 311 /** 312 * Class IRData _more_ 313 * 314 * 315 * @author IDV Development Team 316 * @version $Revision: 1.1 $ 317 */ 318 public static class IRData { 319 320 int domain; 321 322 /** _more_ */ 323 double date; 324 325 /** _more_ */ 326 // int time; 327 328 /** _more_ */ 329 float TrawO; 330 331 /** _more_ */ 332 float Traw; 333 334 /** _more_ */ 335 float Tfinal; 336 337 /** _more_ */ 338 float Tfinal3; 339 340 /** _more_ */ 341 float CI; 342 343 /** _more_ */ 344 float eyet; 345 346 /** _more_ */ 347 float warmt; 348 349 /** _more_ */ 350 float cloudt; 351 352 /** _more_ */ 353 float cloudt2; 354 355 /** _more_ */ 356 float cwcloudt; 357 358 /** _more_ */ 359 float latitude; 360 361 /** _more_ */ 362 float longitude; 363 364 /** _more_ */ 365 float warmlatitude; 366 367 /** _more_ */ 368 float warmlongitude; 369 370 /** _more_ */ 371 float eyecdosize; 372 373 /** _more_ */ 374 float eyestdv; 375 376 /** _more_ */ 377 float cloudsymave; 378 379 /** _more_ */ 380 int sattype; 381 382 /** _more_ */ 383 int eyescene; 384 385 /** _more_ */ 386 int cloudscene; 387 388 /** _more_ */ 389 int eyesceneold; 390 391 /** _more_ */ 392 int cloudsceneold; 393 394 /** _more_ */ 395 int rule9; 396 397 /** _more_ */ 398 int rule8; 399 400 /** _more_ */ 401 int land; 402 403 /** _more_ */ 404 int eyefft; 405 406 /** _more_ */ 407 int cloudfft; 408 409 /** _more_ */ 410 int cwring; 411 412 /** _more_ */ 413 int ringcb; 414 415 /** _more_ */ 416 int ringcbval; 417 418 /** _more_ */ 419 int ringcbvalmax; 420 421 /** _more_ */ 422 float ringcblatmax; 423 424 /** _more_ */ 425 float ringcblonmax; 426 427 /** _more_ */ 428 float CIadjp; 429 /* float sst; */ 430 /* float TIEraw; */ 431 /* float TIEavg; */ 432 /* int TIEflag; */ 433 434 /** _more_ */ 435 int autopos; 436 437 /** _more_ */ 438 int LBflag; 439 440 /** _more_ */ 441 int rapiddiss; 442 443 /** _more_ */ 444 float rmw; 445 446 /** _more_ */ 447 char[] comment = new char[50]; 448 449 /** 450 * _more_ 451 */ 452 IRData() { 453 } 454 455 /** 456 * _more_ 457 * 458 * @param date 459 * _more_ 460 * @param TrawO 461 * _more_ 462 * @param Traw 463 * _more_ 464 * @param Tfinal 465 * _more_ 466 * @param Tfinal3 467 * _more_ 468 * @param CI 469 * _more_ 470 * @param eyet 471 * _more_ 472 * @param warmt 473 * _more_ 474 * @param cloudt 475 * _more_ 476 * @param cloudt2 477 * _more_ 478 * @param cwcloudt 479 * _more_ 480 * @param latitude 481 * _more_ 482 * @param longitude 483 * _more_ 484 * @param warmlatitude 485 * _more_ 486 * @param warmlongitude 487 * _more_ 488 * @param eyecdosize 489 * _more_ 490 * @param eyestdv 491 * _more_ 492 * @param cloudsymave 493 * _more_ 494 * @param sattype 495 * _more_ 496 * @param eyescene 497 * _more_ 498 * @param cloudscene 499 * _more_ 500 * @param eyesceneold 501 * _more_ 502 * @param cloudsceneold 503 * _more_ 504 * @param rule9 505 * _more_ 506 * @param rule8 507 * _more_ 508 * @param land 509 * _more_ 510 * @param eyefft 511 * _more_ 512 * @param cloudfft 513 * _more_ 514 * @param cwring 515 * _more_ 516 * @param ringcb 517 * _more_ 518 * @param ringcbval 519 * _more_ 520 * @param ringcbvalmax 521 * _more_ 522 * @param ringcblatmax 523 * _more_ 524 * @param ringcblonmax 525 * _more_ 526 * @param CIadjp 527 * _more_ 528 * @param autopos 529 * _more_ 530 * @param LBflag 531 * _more_ 532 * @param rapiddiss 533 * _more_ 534 * @param rmw 535 * _more_ 536 * @param comment 537 * _more_ 538 */ 539 IRData(double date, float TrawO, float Traw, float Tfinal, 540 float Tfinal3, float CI, float eyet, float warmt, float cloudt, 541 float cloudt2, float cwcloudt, float latitude, float longitude, 542 float warmlatitude, float warmlongitude, float eyecdosize, 543 float eyestdv, float cloudsymave, int sattype, int eyescene, 544 int cloudscene, int eyesceneold, int cloudsceneold, int rule9, 545 int rule8, int land, int eyefft, int cloudfft, int cwring, 546 int ringcb, int ringcbval, int ringcbvalmax, 547 float ringcblatmax, float ringcblonmax, float CIadjp, 548 int autopos, int LBflag, int rapiddiss, float rmw, 549 char[] comment) { 550 551 this.date = date; 552 553 this.TrawO = TrawO; 554 this.Traw = Traw; 555 this.Tfinal = Tfinal; 556 this.Tfinal3 = Tfinal3; 557 this.CI = CI; 558 this.eyet = eyet; 559 this.warmt = warmt; 560 this.cloudt = cloudt; 561 this.cloudt2 = cloudt2; 562 this.cwcloudt = cwcloudt; 563 this.latitude = latitude; 564 this.longitude = longitude; 565 this.warmlatitude = warmlatitude; 566 this.warmlongitude = warmlongitude; 567 this.eyecdosize = eyecdosize; 568 this.eyestdv = eyestdv; 569 this.cloudsymave = cloudsymave; 570 this.sattype = sattype; 571 this.eyescene = eyescene; 572 this.cloudscene = cloudscene; 573 this.eyesceneold = eyesceneold; 574 this.cloudsceneold = cloudsceneold; 575 this.rule9 = rule9; 576 this.rule8 = rule8; 577 this.land = land; 578 this.eyefft = eyefft; 579 this.cloudfft = cloudfft; 580 this.cwring = cwring; 581 this.ringcb = ringcb; 582 this.ringcbval = ringcbval; 583 this.ringcbvalmax = ringcbvalmax; 584 this.ringcblatmax = ringcblatmax; 585 this.ringcblonmax = ringcblonmax; 586 this.CIadjp = CIadjp; 587 /* float sst; */ 588 /* float TIEraw; */ 589 /* float TIEavg; */ 590 /* int TIEflag; */ 591 this.autopos = autopos; 592 this.LBflag = LBflag; 593 this.rapiddiss = rapiddiss; 594 this.rmw = rmw; 595 this.comment = comment; 596 } 597 } 598 599 }