Example #1
0
        void DownloadHimawari8Image(Himawari8.Area area, Himawari8.ImageType type)
        {
            DateTime timeTag = DateTime.Now;

            //update picHimawari8.Image
            showHimawari8Message("Download Himawari8 Image");
            this.Invoke(new downloadHimawari8Handler(satHimawari8.DownloadHimawari8Image), area, type, timeTag);
            if (satHimawari8.sourceImage != null)
            {
                picHimawari8.Image = satHimawari8.sourceImage;
            }

            showHimawari8Message(satHimawari8.status);
        }
Example #2
0
        String saveHimawari8SourceImage(Himawari8.Area area, Himawari8.ImageType type, DateTime pictureTime)
        {
            if (satHimawari8.sourceImage == null) //no image
            {
                return(null);
            }
            DateTime fileTag = new DateTime(pictureTime.Year, pictureTime.Month, pictureTime.Day, pictureTime.Hour, (pictureTime.Minute / 10) * 10, 0);

            showHimawari8Message("save CWB Image");
            String subPath  = String.Format("CWB\\{0}\\{1}", Himawari8.ImageAreaName[(int)area], Himawari8.ImageTypeName[(int)type]);
            String FilePath = rmtCore.fileRoot.CreateSubPath(subPath, FileRoot.Type.Daily);
            String FileName = String.Format("{0}_{1}_{2}_{3}.png", (type == Himawari8.ImageType.RadarCompositeReflect) ? "Radar" : "Himawari8",
                                            fileTag.ToString("yyyy-MM-dd_HH-mm-ss"), Himawari8.ImageAreaName[(int)area], Himawari8.ImageTypeName[(int)type]);

            String BmpFileName = satHimawari8.SaveSourceImage(FilePath, FileName);

            showHimawari8Message("");
            return(BmpFileName);
        }
Example #3
0
        private void autoAnalysis()
        {
            DateTime time1 = timeTag;
            DateTime time2;

            switch (cbTimeInterval.Text)
            {
            case "10 Minutes":
                time2 = time1.AddMinutes(10);
                time2 = new DateTime(time2.Year, time2.Month, time2.Day, time2.Hour, (time2.Minute / 10) * 10, 0);     //aligned to 10 minutes
                break;

            case "15 Minutes":
                time2 = time1.AddMinutes(15);
                time2 = new DateTime(time2.Year, time2.Month, time2.Day, time2.Hour, (time2.Minute / 15) * 15, 0);     //aligned to 15 minutes
                break;

            case "20 Minutes":
                time2 = time1.AddMinutes(20);
                time2 = new DateTime(time2.Year, time2.Month, time2.Day, time2.Hour, (time2.Minute / 20) * 20, 0);     //aligned to 20 minutes
                break;

            case "30 Minutes":
                time2 = time1.AddMinutes(30);
                time2 = new DateTime(time2.Year, time2.Month, time2.Day, time2.Hour, (time2.Minute / 30) * 30, 0);     //aligned to 30 minutes
                break;

            case "1 Hour":
                time2 = time1.AddHours(1);
                time2 = new DateTime(time2.Year, time2.Month, time2.Day, (time2.Hour / 1) * 1, 0, 0);     //aligned to 1 hour
                break;

            case "2 Hours":
                time2 = time1.AddHours(2);
                time2 = new DateTime(time2.Year, time2.Month, time2.Day, (time2.Hour / 2) * 2, 0, 0);     //aligned to 2 hour
                break;

            default: MessageBox.Show("Invalid Time Interval", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return;
            }

            int   year  = timeTag.Year;
            int   month = timeTag.Month;
            int   day1  = time1.Day;
            int   hour1 = time1.Hour;
            int   min1  = time1.Minute;
            int   day2  = time2.Day;
            int   hour2 = time2.Hour;
            int   min2  = time2.Minute;
            int   mr    = Convert.ToInt32(tbMr.Text);
            float mw    = (float)Convert.ToDouble(tbMw.Text);;
            int   warn  = Convert.ToInt32(tbWarning.Text);

            switch (cbAnalysisItem.Text)
            {
            case "Mr最大強度圖":
                webAnalysis("map_mr.php", year, month, day1, hour1, min1, day2, hour2, min2, mr, mw, warn);
                statusMessage.Text = "分析:Mr最大強度圖";
                break;

            case "Mw最大強度圖":
                webAnalysis("map_mw.php", year, month, day1, hour1, min1, day2, hour2, min2, mr, mw, warn);
                statusMessage.Text = "分析:Mw最大強度圖";
                break;

            case "林志勇猜想分布圖":
                webAnalysis("map_warning.php", year, month, day1, hour1, min1, day2, hour2, min2, mr, mw, warn);
                statusMessage.Text = "分析:林志勇猜想分布圖";
                break;

            //case "樣本熱區圖": webAnalysis_mr("map_hot.php", year, month, day1, hour1, min1, day2, hour2, min2, mr, mw); break;
            //case "Mw*Mr累積強度圖": webAnalysis_mr("map_mwmr-sum.php", year, month, day1, hour1, min1, day2, hour2, min2, mr, mw); break;
            //case "Mw累積強度圖": webAnalysis_mr("map_mw-sum.php", year, month, day1, hour1, min1, day2, hour2, min2, mr, mw); break;
            default: MessageBox.Show("Invalid Analysis Item", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return;
            }

            DateTime picTime = new DateTime(year, month, day1, hour1, min1, 0);

            Himawari8.ImageType cloudType = Himawari8.ImageType.InfraridColor;

            switch (cbCloudTyoe.Text)
            {
            case "可見光": cloudType = Himawari8.ImageType.Visible; break;

            case "紅外線彩色": cloudType = Himawari8.ImageType.InfraridColor; break;

            case "紅外線黑白": cloudType = Himawari8.ImageType.InfraridMono; break;

            case "色調強化": cloudType = Himawari8.ImageType.InfraridEnhence; break;

            case "真實色彩": cloudType = Himawari8.ImageType.TrueColor; break;

            case "雷達回波": cloudType = Himawari8.ImageType.RadarCompositeReflect; break;
            }
            this.Invoke(new downloadHimawari8Handler(satHimawari8.DownloadHimawari8Image), Himawari8.Area.Taiwan, cloudType, picTime);
            picCloud.Image = satHimawari8.sourceImage;
        }