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(); } }
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(); } }