Exemple #1
0
        //[SetUp]
        public void DataReady(Action <int, string> progressCallback)
        {
            try
            {
                ///等经纬度投影
                dstFilename   = @"D:\mas数据\Mersi\fy3_Block.ldf";
                dstSpatialRef = SpatialReferenceFactory.GetSpatialReferenceByPrjFile("WGS 1984.prj");//
                srcFilename   = @"D:\mas数据\Mersi\FY3A_MERSI_GBAL_L1_20110501_0250_1000M_MS.HDF";
                dstEnvelope   = PrjEnvelope.CreateByCenter(116.890377, 27.7621965, 33.49, 21.53);

                srcRaster  = GeoDataDriver.Open(srcFilename) as IRasterDataProvider;
                prjSetting = new FY3_MERSI_PrjSettings();
                //prjSetting.OutResolutionX = 0.01F;
                //prjSetting.OutResolutionY = 0.01F;
                prjSetting.OutPathAndFileName = dstFilename;
                prjSetting.OutFormat          = "LDF";
                //prjSetting.OutEnvelope = dstEnvelope;
                //prjSetting.BandMapTable = bandmapList;
                prjSetting.IsRadiation = true;
                _progressCallback      = progressCallback;
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                MessageBox.Show(ex.Message);
            }
        }
        private void PrjMERSI0250(string file, string secfile)
        {
            IRasterDataProvider srcRaster = null;
            IRasterDataProvider secRaster = null;

            try
            {
                IFileProjector proj = FileProjector.GetFileProjectByName("FY3_MERSI");
                srcRaster = GetSrcRaster(file);
                if (!string.IsNullOrWhiteSpace(secfile))
                {
                    secRaster = GetSrcRaster(secfile);
                }
                FY3_MERSI_PrjSettings prjSetting = new FY3_MERSI_PrjSettings();
                prjSetting.SecondaryOrbitRaster = secRaster;
                prjSetting.OutPathAndFileName   = @"D:\T.ldf";
                ISpatialReference dstSpatialRef = SpatialReference.GetDefault();
                proj.Project(srcRaster, prjSetting, dstSpatialRef, null);
                MessageBox.Show("FY3_MERSI" + "投影输出文件" + @"D:\T.ldf");
            }
            finally
            {
                if (srcRaster != null)
                {
                    if (srcRaster.BandProvider != null)
                    {
                        srcRaster.BandProvider.Dispose();
                    }
                    srcRaster.Dispose();
                }
            }
        }
        private void PrjMERSI1000(string file)
        {
            IRasterDataProvider srcRaster = null;

            try
            {
                IFileProjector proj = FileProjector.GetFileProjectByName("FY3_MERSI");
                srcRaster = GetSrcRaster(file);
                FY3_MERSI_PrjSettings prjSetting = new FY3_MERSI_PrjSettings();
                prjSetting.OutPathAndFileName = @"D:\T.ldf";
                ISpatialReference dstSpatialRef = SpatialReference.GetDefault();
                proj.Project(srcRaster, prjSetting, dstSpatialRef, null);
                MessageBox.Show("FY3_MERSI" + "投影输出文件" + @"D:\T.ldf");
            }
            finally
            {
                if (srcRaster != null)
                {
                    if (srcRaster.BandProvider != null)
                    {
                        srcRaster.BandProvider.Dispose();
                    }
                    srcRaster.Dispose();
                }
            }
        }
        //[SetUp]
        public void DataReady(Action <int, string> progressCallback)
        {
            IRasterDataProvider secondFileRaster = null;

            try
            {
                ///等经纬度投影
                dstFilename   = @"D:\mas数据\Mersi\fy3Mersi0250_Block.ldf";
                dstSpatialRef = SpatialReferenceFactory.GetSpatialReferenceByPrjFile("WGS 1984.prj"); //
                srcFilename   = @"D:\mas数据\Mersi\FY3A_MERSI_GBAL_L1_20110501_0250_0250M_MS.HDF";
                dstEnvelope   = PrjEnvelope.CreateByCenter(110, 32, 5, 5);                            //
                string secondFile = @"D:\mas数据\Mersi\FY3A_MERSI_GBAL_L1_20110501_0250_1000M_MS.HDF";
                secondFileRaster = GeoDataDriver.Open(secondFile) as IRasterDataProvider;
                srcRaster        = GeoDataDriver.Open(srcFilename) as IRasterDataProvider;
                //List<BandMap> bandmapList = new List<BandMap>();
                prjSetting = new FY3_MERSI_PrjSettings();
                prjSetting.OutResolutionX     = 0.0025F;
                prjSetting.OutResolutionY     = 0.0025F;
                prjSetting.OutPathAndFileName = dstFilename;
                prjSetting.OutFormat          = "LDF";
                //prjSetting.OutEnvelope = dstEnvelope;
                //prjSetting.BandMapTable = bandmapList;
                //prjSetting.IsRadiation = false;
                prjSetting.SecondaryOrbitRaster = secondFileRaster;
                _progressCallback = progressCallback;
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                MessageBox.Show(ex.Message);
            }
            finally
            {
                if (secondFileRaster != null)
                {
                    secondFileRaster.Dispose();
                }
            }
        }
Exemple #5
0
        private void PrjMERSI0250(string file, string secfile)
        {
            IRasterDataProvider srcRaster        = null;
            IRasterDataProvider secondFileRaster = null;

            try
            {
                GeoDo.RasterProject.PrjEnvelope[] prjEnvelopes = new GeoDo.RasterProject.PrjEnvelope[]
                {
                    GeoDo.RasterProject.PrjEnvelope.CreateByCenter(100, 42, 10, 10),
                    //GeoDo.RasterProject.PrjEnvelope.CreateByCenter(100, 36, 10, 10),
                    //GeoDo.RasterProject.PrjEnvelope.CreateByCenter(100, 30, 10, 10),
                    //GeoDo.RasterProject.PrjEnvelope.CreateByCenter(110, 29, 10, 10),
                    //GeoDo.RasterProject.PrjEnvelope.CreateByCenter(110, 28, 10, 10),
                    //GeoDo.RasterProject.PrjEnvelope.CreateByCenter(110, 27, 10, 10),
                    //GeoDo.RasterProject.PrjEnvelope.CreateByCenter(110, 26, 10, 10),
                    //GeoDo.RasterProject.PrjEnvelope.CreateByCenter(110, 25, 10, 10),
                    //GeoDo.RasterProject.PrjEnvelope.CreateByCenter(110, 24, 10, 10),
                    //GeoDo.RasterProject.PrjEnvelope.CreateByCenter(110, 23, 10, 10),
                    //GeoDo.RasterProject.PrjEnvelope.CreateByCenter(110, 22, 10, 10),
                    //GeoDo.RasterProject.PrjEnvelope.CreateByCenter(110, 21, 10, 10),
                    //GeoDo.RasterProject.PrjEnvelope.CreateByCenter(110, 20, 10, 10)
                };
                Stopwatch stopwatch = new Stopwatch();
                stopwatch.Start();
                srcRaster = GetSrcRaster(file);
                if (!string.IsNullOrWhiteSpace(secfile))
                {
                    secondFileRaster = GetSrcRaster(secfile);
                }
                IFileProjector proj = FileProjector.GetFileProjectByName("FY3_MERSI");
                proj.BeginSession(srcRaster);
                for (int i = 0; i < prjEnvelopes.Length; i++)
                {
                    try
                    {
                        GeoDo.RasterProject.PrjEnvelope prjEnvelope = prjEnvelopes[i];
                        FY3_MERSI_PrjSettings           prjSetting  = new FY3_MERSI_PrjSettings();
                        prjSetting.SecondaryOrbitRaster = secondFileRaster;
                        prjSetting.OutPathAndFileName   = GetOutPutFile(file, i);
                        //prjSetting.OutEnvelope = prjEnvelope;
                        ISpatialReference dstSpatialRef = GetOutSpatialRef();
                        proj.Project(srcRaster, prjSetting, dstSpatialRef, _progressCallback);
                        this.Text = prjSetting.OutPathAndFileName;
                    }
                    catch (Exception ex)
                    {
                        this.Text = ex.Message;
                    }
                }
                proj.EndSession();
                stopwatch.Stop();
                WriteLine("数据投影{0}ms", stopwatch.ElapsedMilliseconds);
            }
            finally
            {
                if (secondFileRaster != null)
                {
                    secondFileRaster.Dispose();
                }
                if (srcRaster != null)
                {
                    if (srcRaster.BandProvider != null)
                    {
                        srcRaster.BandProvider.Dispose();
                    }
                    srcRaster.Dispose();
                }
                GC.Collect();
            }
        }
Exemple #6
0
        private void PrjMERSI1000(string file)
        {
            IRasterDataProvider srcRaster = null;

            try
            {
                GeoDo.RasterProject.PrjEnvelope[] prjEnvelopes = new GeoDo.RasterProject.PrjEnvelope[]
                {
                    GeoDo.RasterProject.PrjEnvelope.CreateByCenter(100, 30, 10, 10),
                    GeoDo.RasterProject.PrjEnvelope.CreateByCenter(110, 29, 10, 10),
                    GeoDo.RasterProject.PrjEnvelope.CreateByCenter(105, 28, 10, 10),
                    GeoDo.RasterProject.PrjEnvelope.CreateByCenter(105, 27, 10, 10),
                    GeoDo.RasterProject.PrjEnvelope.CreateByCenter(105, 26, 10, 10),
                    GeoDo.RasterProject.PrjEnvelope.CreateByCenter(105, 25, 10, 10),
                    GeoDo.RasterProject.PrjEnvelope.CreateByCenter(105, 24, 10, 10),
                    GeoDo.RasterProject.PrjEnvelope.CreateByCenter(105, 23, 10, 10),
                    GeoDo.RasterProject.PrjEnvelope.CreateByCenter(105, 22, 10, 10),
                    GeoDo.RasterProject.PrjEnvelope.CreateByCenter(105, 21, 10, 10),
                    GeoDo.RasterProject.PrjEnvelope.CreateByCenter(105, 20, 10, 10)
                };
                Stopwatch stopwatch = new Stopwatch();
                stopwatch.Start();
                srcRaster = GetSrcRaster(file);
                IFileProjector proj = FileProjector.GetFileProjectByName("FY3_MERSI");
                proj.BeginSession(srcRaster);
                for (int i = 0; i < prjEnvelopes.Length; i++)
                {
                    try
                    {
                        GeoDo.RasterProject.PrjEnvelope prjEnvelope = prjEnvelopes[i];
                        FY3_MERSI_PrjSettings           prjSetting  = new FY3_MERSI_PrjSettings();
                        prjSetting.OutPathAndFileName = GetOutPutFile(file, i);
                        prjSetting.OutEnvelope        = prjEnvelope;// GeoDo.RasterProject.PrjEnvelope.CreateByCenter(90, 26, 10, 10);
                        prjSetting.OutResolutionX     = 0.0025F;
                        prjSetting.OutResolutionY     = 0.0025F;
                        ISpatialReference dstSpatialRef = GetOutSpatialRef();
                        proj.Project(srcRaster, prjSetting, dstSpatialRef, _progressCallback);
                        stopwatch.Stop();
                        WriteLine("数据投影{0}ms", stopwatch.ElapsedMilliseconds);
                        //MessageBox.Show("投影输出文件" + prjSetting.OutPathAndFileName);
                    }
                    catch (Exception ex)
                    {
                        this.Text = ex.Message;
                    }
                }
                proj.EndSession();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                if (srcRaster != null)
                {
                    if (srcRaster.BandProvider != null)
                    {
                        srcRaster.BandProvider.Dispose();
                    }
                    srcRaster.Dispose();
                }
                GC.Collect();
            }
        }