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    }