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 }