Example #1
0
        private void PrjEos1000(string file, string locfile)
        {
            IRasterDataProvider srcRaster = null;
            IRasterDataProvider locRaster = null;

            try
            {
                IFileProjector proj = FileProjector.GetFileProjectByName("EOS");
                srcRaster = GetSrcRaster(file);
                locRaster = GetSrcRaster(locfile);
                EOS_MODIS_PrjSettings prjSetting = new EOS_MODIS_PrjSettings();
                prjSetting.OutPathAndFileName = @"D:\T.ldf";
                prjSetting.LocationFile       = locRaster;
                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();
                    locRaster.Dispose();
                }
            }
        }
Example #2
0
        public void TestProj()
        {
            IRasterDataProvider srcRaster = null;
            IRasterDataProvider location  = null;

            try
            {
                IFileProjector proj = FileProjector.GetFileProjectByName("EOS");
                srcRaster = GetSrcRaster();
                location  = GetLocationRaster();
                EOS_MODIS_PrjSettings prjSetting    = GetPrjSetting(srcRaster, location);
                ISpatialReference     dstSpatialRef = SpatialReference.GetDefault();
                //dstSpatialRef = SpatialReference.FromPrjFile(@"North Pole Lambert Azimuthal Equal Area.prj");
                proj.Project(srcRaster, prjSetting, dstSpatialRef, _progressCallback);

                Console.WriteLine();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                if (srcRaster != null)
                {
                    if (srcRaster.BandProvider != null)
                    {
                        srcRaster.BandProvider.Dispose();
                    }
                    srcRaster.Dispose();
                }
            }
        }
Example #3
0
        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();
                }
            }
        }
Example #4
0
        private void PrjNOAA(string file)
        {
            IRasterDataProvider srcRaster = null;

            try
            {
                Stopwatch stopwatch = new Stopwatch();
                stopwatch.Start();
                IFileProjector proj = FileProjector.GetFileProjectByName("NOAA_1BD");
                srcRaster = GetSrcRaster(file);
                NOAA_PrjSettings prjSetting = new NOAA_PrjSettings();
                prjSetting.OutPathAndFileName = GetOutPutFile(file);
                ISpatialReference dstSpatialRef = SpatialReference.GetDefault();
                proj.Project(srcRaster, prjSetting, dstSpatialRef, _progressCallback);
                stopwatch.Stop();
                WriteLine("数据投影{0}ms", stopwatch.ElapsedMilliseconds);
                //MessageBox.Show("投影输出文件" + prjSetting.OutPathAndFileName);
            }
            //catch (Exception ex)
            //{
            //    MessageBox.Show(ex.Message);
            //}
            finally
            {
                if (srcRaster != null)
                {
                    if (srcRaster.BandProvider != null)
                    {
                        srcRaster.BandProvider.Dispose();
                    }
                    srcRaster.Dispose();
                }
                GC.Collect();
            }
        }
Example #5
0
        public void TestProj()
        {
            IRasterDataProvider srcRaster = null;

            try
            {
                IFileProjector proj = FileProjector.GetFileProjectByName("NOAA_1BD");
                srcRaster = GetSrcRaster();
                FilePrjSettings   prjSetting    = GetPrjSetting(srcRaster);
                ISpatialReference dstSpatialRef = SpatialReference.GetDefault();        //默认的WGS84等经纬度投影。
                proj.Project(srcRaster, prjSetting, dstSpatialRef, _progressCallback);
                Console.WriteLine();
            }
            finally
            {
                if (srcRaster != null)
                {
                    if (srcRaster.BandProvider != null)
                    {
                        srcRaster.BandProvider.Dispose();
                    }
                    srcRaster.Dispose();
                }
            }
        }
Example #6
0
        private void PrjEos1000(string file, string locfile)
        {
            IRasterDataProvider srcRaster = null;
            IRasterDataProvider locRaster = null;

            try
            {
                Stopwatch stopwatch = new Stopwatch();
                stopwatch.Start();
                IFileProjector proj = FileProjector.GetFileProjectByName("EOS");
                srcRaster = GetSrcRaster(file);
                locRaster = GetSrcRaster(locfile);
                EOS_MODIS_PrjSettings prjSetting = new EOS_MODIS_PrjSettings();
                prjSetting.OutPathAndFileName = GetOutPutFile(file);
                prjSetting.LocationFile       = locRaster;
                ISpatialReference dstSpatialRef = GetOutSpatialRef();
                proj.Project(srcRaster, prjSetting, dstSpatialRef, _progressCallback);
                stopwatch.Stop();
                WriteLine("数据投影{0}ms", stopwatch.ElapsedMilliseconds);
                MessageBox.Show("投影输出文件" + prjSetting.OutPathAndFileName);
            }
            finally
            {
                if (srcRaster != null)
                {
                    if (srcRaster.BandProvider != null)
                    {
                        srcRaster.BandProvider.Dispose();
                    }
                    srcRaster.Dispose();
                    locRaster.Dispose();
                }
                GC.Collect();
            }
        }
Example #7
0
        private void btnDo_Click(object sender, EventArgs e)
        {
            IFileProjector proj = FileProjector.GetFileProjectByName("FY3_MERSI");

            proj.Project(ProParas.SrcRaster, ProParas.PrjSetting, ProParas.DstSpatialRef, ProParas.ProgressCallback);
            MessageBox.Show("投影成功!");
        }
Example #8
0
        private void PrjVIRR(string file)
        {
            IRasterDataProvider srcRaster = null;

            try
            {
                IFileProjector proj = FileProjector.GetFileProjectByName("FY3_VIRR");
                srcRaster = GetSrcRaster(file);
                FY3_VIRR_PrjSettings prjSetting = new FY3_VIRR_PrjSettings();
                prjSetting.OutPathAndFileName = @"D:\T.ldf";
                ISpatialReference dstSpatialRef = SpatialReference.GetDefault();
                proj.Project(srcRaster, prjSetting, dstSpatialRef, null);
                MessageBox.Show("FY3_VIRR" + "投影输出文件" + @"D:\T.ldf");
            }
            finally
            {
                if (srcRaster != null)
                {
                    if (srcRaster.BandProvider != null)
                    {
                        srcRaster.BandProvider.Dispose();
                    }
                    srcRaster.Dispose();
                }
            }
        }
Example #9
0
        public void TestFy3VIRR()
        {
            IRasterDataProvider srcRaster = null;

            try
            {
                IFileProjector proj = FileProjector.GetFileProjectByName("FY3_VIRR");
                srcRaster = GetSrcRaster();
                FY3_VIRR_PrjSettings prjSetting    = GetPrjSetting(srcRaster);
                ISpatialReference    dstSpatialRef = SpatialReference.GetDefault();//默认的WGS84等经纬度投影。
                //dstSpatialRef = SpatialReference.FromPrjFile(@"North Pole Stereographic.prj");
                proj.Project(srcRaster, prjSetting, dstSpatialRef, ProgressCallback);
                Console.WriteLine();
            }
            finally
            {
                if (srcRaster != null)
                {
                    if (srcRaster.BandProvider != null)
                    {
                        srcRaster.BandProvider.Dispose();
                    }
                    srcRaster.Dispose();
                }
            }
        }
 public string TestDstExtendWGS84()
 {
     try
     {
         PrjEnvelope dstEnvelope;
         dstSpatialRef = SpatialReferenceFactory.GetSpatialReferenceByPrjFile("WGS 1984.prj");
         srcFilename   = @"D:\mas数据\Mersi\FY3A_MERSI_GBAL_L1_20110501_0250_1000M_MS.HDF";
         srcRaster     = GeoDataDriver.Open(srcFilename) as IRasterDataProvider;
         IFileProjector proj = FileProjector.GetFileProjectByName("FY3_MERSI");
         proj.ComputeDstEnvelope(srcRaster, dstSpatialRef, out dstEnvelope, _progressCallback);
         Console.WriteLine(dstEnvelope.ToString());
         return(dstEnvelope.ToString());
     }
     finally
     {
         if (srcRaster != null)
         {
             if (srcRaster.BandProvider != null)
             {
                 srcRaster.BandProvider.Dispose();
             }
             srcRaster.Dispose();
         }
     }
 }
Example #11
0
        //621
        private string PrjVIRR(IRasterDataProvider srcRaster, ISpatialReference projRef)
        {
            List <BandMap> bandmapList = new List <BandMap>();

            bandmapList.Add(new BandMap()
            {
                DatasetName = "EV_RefSB", File = srcRaster, BandIndex = 0
            });
            bandmapList.Add(new BandMap()
            {
                DatasetName = "EV_RefSB", File = srcRaster, BandIndex = 1
            });
            //bandmapList.Add(new BandMap() { DatasetName = "EV_Emissive", File = srcRaster, BandIndex = 0 });
            //bandmapList.Add(new BandMap() { DatasetName = "EV_Emissive", File = srcRaster, BandIndex = 1 });
            //bandmapList.Add(new BandMap() { DatasetName = "EV_Emissive", File = srcRaster, BandIndex = 2 });
            bandmapList.Add(new BandMap()
            {
                DatasetName = "EV_RefSB", File = srcRaster, BandIndex = 2
            });
            //bandmapList.Add(new BandMap() { DatasetName = "EV_RefSB", File = srcRaster, BandIndex = 3 });
            //bandmapList.Add(new BandMap() { DatasetName = "EV_RefSB", File = srcRaster, BandIndex = 4 });
            //bandmapList.Add(new BandMap() { DatasetName = "EV_RefSB", File = srcRaster, BandIndex = 5 });
            //bandmapList.Add(new BandMap() { DatasetName = "EV_RefSB", File = srcRaster, BandIndex = 6 });

            IFileProjector       projTor    = FileProjector.GetFileProjectByName("FY3_VIRR");
            FY3_VIRR_PrjSettings prjSetting = new FY3_VIRR_PrjSettings();

            prjSetting.OutPathAndFileName = GetOutPutFile(srcRaster.fileName, projRef);
            prjSetting.BandMapTable       = bandmapList;

            ISpatialReference dstSpatialRef = projRef;

            projTor.Project(srcRaster, prjSetting, dstSpatialRef, _progress);
            return(prjSetting.OutPathAndFileName);
        }
Example #12
0
        public void Porject_VIRR_FULL()
        {
            IFileProjector prj = FileProjector.GetFileProjectByName("FY3_VIRR");

            Assert.NotNull(prj);
            IRasterDataProvider prd = GetSrcRaster();

            Assert.NotNull(prd);
            prj.Project(prd, GetFilePrjSettings(prd), new SpatialReference(new GeographicCoordSystem()), null);
            Console.WriteLine("OK.");
        }
Example #13
0
        private void button3_Click(object sender, EventArgs e)
        {
            IFileProjector[] prjs = FileProjector.LoadAllFileProjectors();
            Console.WriteLine("...");

            IFileProjector     prj      = FileProjector.GetFileProjectByName("SINGLEFILE");
            FilePrjSettings    settings = prj.CreateDefaultPrjSettings();
            IPrjSettingsEditor editor   = GetSettingEditor(settings);

            if (editor != null)
            {
                editor.Apply(settings);
            }
            //
        }
Example #14
0
        //3、4、2
        private string PrjMERSI_1KM_L1(IRasterDataProvider srcRaster, ISpatialReference projRef)
        {
            try
            {
                List <BandMap> bandmapList = new List <BandMap>();
                //bandmapList.Add(new BandMap() { DatasetName = "EV_250_Aggr.1KM_RefSB", File = srcRaster, BandIndex = 0 });
                bandmapList.Add(new BandMap()
                {
                    DatasetName = "EV_250_Aggr.1KM_RefSB", File = srcRaster, BandIndex = 1
                });
                bandmapList.Add(new BandMap()
                {
                    DatasetName = "EV_250_Aggr.1KM_RefSB", File = srcRaster, BandIndex = 2
                });
                bandmapList.Add(new BandMap()
                {
                    DatasetName = "EV_250_Aggr.1KM_RefSB", File = srcRaster, BandIndex = 3
                });
                //bandmapList.Add(new BandMap() { DatasetName = "EV_250_Aggr.1KM_Emissive", File = srcRaster, BandIndex = 0 });//5
                //bandmapList.Add(new BandMap() { DatasetName = "EV_1KM_RefSB", File = srcRaster, BandIndex = 0 });//6
                //bandmapList.Add(new BandMap() { DatasetName = "EV_1KM_RefSB", File = srcRaster, BandIndex = 1 });
                //bandmapList.Add(new BandMap() { DatasetName = "EV_1KM_RefSB", File = srcRaster, BandIndex = 2 });
                //bandmapList.Add(new BandMap() { DatasetName = "EV_1KM_RefSB", File = srcRaster, BandIndex = 3 });
                //bandmapList.Add(new BandMap() { DatasetName = "EV_1KM_RefSB", File = srcRaster, BandIndex = 4 });
                //bandmapList.Add(new BandMap() { DatasetName = "EV_1KM_RefSB", File = srcRaster, BandIndex = 5 });
                //bandmapList.Add(new BandMap() { DatasetName = "EV_1KM_RefSB", File = srcRaster, BandIndex = 6 });
                //bandmapList.Add(new BandMap() { DatasetName = "EV_1KM_RefSB", File = srcRaster, BandIndex = 7 });
                //bandmapList.Add(new BandMap() { DatasetName = "EV_1KM_RefSB", File = srcRaster, BandIndex = 8 });
                //bandmapList.Add(new BandMap() { DatasetName = "EV_1KM_RefSB", File = srcRaster, BandIndex = 9 });
                //bandmapList.Add(new BandMap() { DatasetName = "EV_1KM_RefSB", File = srcRaster, BandIndex = 10 });
                //bandmapList.Add(new BandMap() { DatasetName = "EV_1KM_RefSB", File = srcRaster, BandIndex = 11 });
                //bandmapList.Add(new BandMap() { DatasetName = "EV_1KM_RefSB", File = srcRaster, BandIndex = 12 });
                //bandmapList.Add(new BandMap() { DatasetName = "EV_1KM_RefSB", File = srcRaster, BandIndex = 13 });
                //bandmapList.Add(new BandMap() { DatasetName = "EV_1KM_RefSB", File = srcRaster, BandIndex = 14 });

                IFileProjector        projTor    = FileProjector.GetFileProjectByName("FY3_MERSI");
                FY3_MERSI_PrjSettings prjSetting = new FY3_MERSI_PrjSettings();
                prjSetting.OutPathAndFileName = GetOutPutFile(srcRaster.fileName, projRef);
                prjSetting.BandMapTable       = bandmapList;
                ISpatialReference dstSpatialRef = projRef;
                projTor.Project(srcRaster, prjSetting, dstSpatialRef, _progress);
                return(prjSetting.OutPathAndFileName);
            }
            finally
            {
            }
        }
Example #15
0
        //453
        private string PrjNOAA_1BD_L1(IRasterDataProvider fileName, ISpatialReference projRef)
        {
            IRasterDataProvider srcRaster = fileName;

            try
            {
                IFileProjector   projTor    = FileProjector.GetFileProjectByName("NOAA_1BD");
                NOAA_PrjSettings prjSetting = new NOAA_PrjSettings();
                prjSetting.OutPathAndFileName = GetOutPutFile(fileName.fileName, projRef);
                prjSetting.OutBandNos         = new int[] { 3, 4, 5 };
                ISpatialReference dstSpatialRef = projRef;
                projTor.Project(srcRaster, prjSetting, dstSpatialRef, _progress);
                return(prjSetting.OutPathAndFileName);
            }
            finally
            {
            }
        }
 //[Test(Description = "测试投影")]
 public void TestProjection()
 {
     try
     {
         IFileProjector proj = FileProjector.GetFileProjectByName("FY3_MERSI");
         proj.Project(srcRaster, prjSetting, dstSpatialRef, _progressCallback);
     }
     finally
     {
         if (srcRaster != null)
         {
             if (srcRaster.BandProvider != null)
             {
                 srcRaster.BandProvider.Dispose();
             }
             srcRaster.Dispose();
         }
     }
 }
Example #17
0
        private string PrjMERSI_QKM_L1(IRasterDataProvider fileName, ISpatialReference projRef)
        {
            IRasterDataProvider srcRaster      = fileName;
            IRasterDataProvider locationRaster = null;

            try
            {
                List <BandMap> bandmapList = new List <BandMap>();
                //bandmapList.Add(new BandMap() { DatasetName = "EV_250_RefSB_b1", File = srcRaster, BandIndex = 0 });
                bandmapList.Add(new BandMap()
                {
                    DatasetName = "EV_250_RefSB_b2", File = srcRaster, BandIndex = 0
                });
                bandmapList.Add(new BandMap()
                {
                    DatasetName = "EV_250_RefSB_b3", File = srcRaster, BandIndex = 0
                });
                bandmapList.Add(new BandMap()
                {
                    DatasetName = "EV_250_RefSB_b4", File = srcRaster, BandIndex = 0
                });
                //bandmapList.Add(new BandMap() { DatasetName = "EV_250_Emissive", File = srcRaster, BandIndex = 0 });

                locationRaster = TryFindMERSI_1KM_L1FromQKM(fileName);
                IFileProjector        projTor    = FileProjector.GetFileProjectByName("FY3_MERSI");
                FY3_MERSI_PrjSettings prjSetting = new FY3_MERSI_PrjSettings();
                prjSetting.BandMapTable         = bandmapList;
                prjSetting.SecondaryOrbitRaster = locationRaster;
                prjSetting.OutPathAndFileName   = GetOutPutFile(fileName.fileName, projRef);
                ISpatialReference dstSpatialRef = projRef;
                projTor.Project(srcRaster, prjSetting, dstSpatialRef, _progress);
                return(prjSetting.OutPathAndFileName);
            }
            finally
            {
                if (locationRaster != null)
                {
                    locationRaster.Dispose();
                }
            }
        }
Example #18
0
        private string PrjMODIS_1KM_L1(IRasterDataProvider fileName, ISpatialReference projRef)
        {//
            IRasterDataProvider srcRaster      = fileName;
            IRasterDataProvider locationRaster = null;

            try
            {
                List <BandMap> bandmapList = new List <BandMap>();
                bandmapList.Add(new BandMap()
                {
                    DatasetName = "EV_250_Aggr1km_RefSB", File = srcRaster, BandIndex = 0
                });                                                                                                      //1
                bandmapList.Add(new BandMap()
                {
                    DatasetName = "EV_250_Aggr1km_RefSB", File = srcRaster, BandIndex = 1
                });                                                                                                      //2
                bandmapList.Add(new BandMap()
                {
                    DatasetName = "EV_500_Aggr1km_RefSB", File = srcRaster, BandIndex = 0
                });                                                                                                      //3

                locationRaster = TryFindMODIS_1KM_L103File(fileName);
                IFileProjector        projTor    = FileProjector.GetFileProjectByName("EOS");
                EOS_MODIS_PrjSettings prjSetting = new EOS_MODIS_PrjSettings();
                prjSetting.BandMapTable       = bandmapList;
                prjSetting.LocationFile       = locationRaster;
                prjSetting.OutPathAndFileName = GetOutPutFile(fileName.fileName, projRef);
                ISpatialReference dstSpatialRef = projRef;
                projTor.Project(srcRaster, prjSetting, dstSpatialRef, _progress);
                return(prjSetting.OutPathAndFileName);
            }
            finally
            {
                if (locationRaster != null)
                {
                    locationRaster.Dispose();
                }
            }
        }
Example #19
0
 /// <summary>
 /// 开始执行
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void btnDo_Click(object sender, EventArgs e)
 {
     foreach (string fileName in _fileNames)
     {
         ProParas.SrcRaster = GeoDataDriver.Open(fileName) as IRasterDataProvider;
         switch (_sensorName)
         {
         case "VIRR_L1":
             IFileProjector projVirr = FileProjector.GetFileProjectByName("FY3_VIRR");
             //if (frmOutRange != null)
             //{
             //    ProParas.VirrPrjSetting.OutResolutionX = frmOutRange.OutResolution.Y;
             //    ProParas.VirrPrjSetting.OutResolutionX = frmOutRange.OutResolution.Y;
             //    ProParas.VirrPrjSetting.OutEnvelope = frmOutRange.PrjEnvelop;
             //}
             //ProParas.VirrPrjSetting.BandMapTable = ucSelectBands.GetBandMapList();
             projVirr.Project(ProParas.SrcRaster, ProParas.VirrPrjSetting, ProParas.DstSpatialRef, ProParas.ProgressCallback);
             break;
         }
     }
     MessageBox.Show("投影成功!");
 }
Example #20
0
 public UIGroupProjection()
 {
     InitializeComponent();
     CreateMenuGroup();
     FileProjector.LoadAllFileProjectors();
 }
Example #21
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();
            }
        }
Example #22
0
 void frmProjectionALL_Load(object sender, EventArgs e)
 {
     _progressCallback = new Action <int, string>(OutProgress);
     FileProjector.LoadAllFileProjectors();
 }
Example #23
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();
            }
        }
Example #24
0
        public void TestCreate()
        {
            IFileProjector proj = FileProjector.GetFileProjectByName("FY3_VIRR");

            Assert.IsNotNull(proj, "创建投影提供者失败。");
        }