public Dictionary <string, Dictionary <string, double> > StatArea(string rasterFile, int[] aoi, Func <T, bool> filter) { using (IRasterDataProvider dataProvider = GeoDataDriver.Open(rasterFile) as IRasterDataProvider) { return(StatArea(dataProvider, aoi, filter)); } }
private void DoSession(IRasterDataProvider srcRaster, IRasterDataProvider locationRaster, ISpatialReference dstSpatialRef, FY3_MERSI_PrjSettings prjSettings, Action <int, string> progressCallback) { if (_curSession == null || _curSession != srcRaster || _isBeginSession) { Size srcImgSize = new Size(srcRaster.Width, srcRaster.Height); ReadyLocations(srcRaster, dstSpatialRef, prjSettings, out _srcLocationSize, out _maxPrjEnvelope, progressCallback); if (progressCallback != null) { progressCallback(4, "准备其他参数"); } if (prjSettings.IsRadiation) { ReadyRadiationArgs(srcRaster); } if (prjSettings.IsSolarZenith) //&& prjSettings.IsRadiation { _szDataFilename = GetSolarZenithCacheFilename(locationRaster.fileName); if (!File.Exists(_szDataFilename)) { ReadySolarZenithArgsToFile(locationRaster); } else { _solarZenithCacheRaster = GeoDataDriver.Open(_szDataFilename) as IRasterDataProvider; } if (prjSettings.IsSensorZenith) { ReadySensorZenith(locationRaster); } } _rasterDataBands = TryCreateRasterDataBands(srcRaster, prjSettings, progressCallback);//待投影的波段 _isBeginSession = false; } }
private IRasterDataProvider CreatOutputRaster(string outputFName, IRasterDataProvider inRaster, int bandCount, Action <int, string> progressCallback) { if (inRaster == null) { return(null); } if (progressCallback != null) { progressCallback(1, "开始创建目标文件..."); } IRasterDataDriver driver = GeoDataDriver.GetDriverByName("GDAL") as IRasterDataDriver; List <string> options = new List <string>(); options.AddRange(new string[] { "DRIVERNAME=GTiff", "TFW=YES", "TILED=YES" }); if (inRaster.SpatialRef != null) { options.Add("WKT=" + inRaster.SpatialRef.ToWKTString()); } if (inRaster.CoordEnvelope != null) { options.Add("GEOTRANSFORM=" + string.Format("{0},{1},{2},{3},{4},{5}", 0, inRaster.ResolutionX, 0, inRaster.CoordEnvelope.MaxY, 0, -inRaster.ResolutionY)); } IRasterDataProvider prdWrite = driver.Create(outputFName, inRaster.Width, inRaster.Height, bandCount, enumDataType.Byte, options.ToArray()) as IRasterDataProvider; if (progressCallback != null) { progressCallback(20, "目标文件创建完成."); } return(prdWrite); }
public string MutiRegionsClip(string file, GeoDo.RSS.Core.VectorDrawing.AOIContainerLayer aoiContainer, string savePath) { _aoiContainer = aoiContainer; using (IRasterDataProvider raster = GeoDataDriver.Open(file) as IRasterDataProvider) { _resolutionX = raster.ResolutionX; _resolutionY = raster.ResolutionY; _fileSize = new Size(raster.Width, raster.Height); _fileEnvelope = raster.CoordEnvelope; _activeSpatialRef = raster.SpatialRef; _activeCoordType = raster.CoordType; raster.Dispose(); } GeoDo.RSS.Core.DrawEngine.CoordEnvelope corEnvelope = null; corEnvelope = GetGeoRect(); //获取多个aoi的外接矩形 evp.MaxX = corEnvelope.MaxX; evp.MaxY = corEnvelope.MaxY; evp.MinX = corEnvelope.MinX; evp.MinY = corEnvelope.MinY; BlockDefWithAOI outEnvelope; Size size; List <BlockDefWithAOI> blockList = new List <BlockDefWithAOI>(); GetArgs(out outEnvelope, out size); envelopes = new BlockDefWithAOI[] { outEnvelope }; blockList.AddRange(envelopes); blockList[0].AOIIndexes = GetIndexes(); //获得多个aoi的Index OutDir = savePath; string[] put = RasterClipT(file, blockList.ToArray(), OutDir, "Cut"); return(put[0]); }
private int GetMicapsWidth(string micapsfile, string rasterfile) { int width = 0; MicapsDataReader dr = MicapsDataReaderFactory.GetVectorFeatureDataReader(micapsfile, new object[1] { _datatype }) as MicapsDataReader; Envelope env = null; if (StatRegionSet.UseRegion) { env = StatRegionSet.Envelope; } else if (rasterfile != null && Path.GetExtension(rasterfile) != ".000") { using (IRasterDataProvider datap = GeoDataDriver.Open(rasterfile) as IRasterDataProvider) { CoordEnvelope cenv = datap.CoordEnvelope; env = new Envelope(cenv.MinX, cenv.MinY, cenv.MaxX, cenv.MaxY); } } if (env == null) { width = dr.Length; } else { width = dr.GetFeatures(env).Length; } return(width); }
public void OpenFile() { string fname = "d:\\1110910.1a5"; fname = @"H:\测试\测试数据\1a5\1110908.1a5"; IRasterDataDriver driver = GeoDataDriver.GetDriverByName("NOAA_1A5") as IRasterDataDriver; Assert.NotNull(driver); //IRasterDataProvider prd = driver.Open(fname, enumDataProviderAccess.ReadOnly) as IRasterDataProvider; IRasterDataProvider prd = GeoDataDriver.Open(fname) as IRasterDataProvider; Assert.NotNull(prd); Console.WriteLine(prd.BandCount.ToString()); Console.WriteLine(prd); //PrintHeaderInfo(prd); ID1A5DataProvider noaaPrd = prd as ID1A5DataProvider; Assert.NotNull(noaaPrd); D1A5Header header = noaaPrd.Header as D1A5Header; Assert.NotNull(header); Console.WriteLine(header.SatelliteIdentify); Console.WriteLine(header.BitErrorRatio); Console.WriteLine(header.DataBeginDayNums); Console.WriteLine(header.DataBeginMilliSecond); }
private void BuildInternalBuffer(string _fileName) { IRasterDataDriver drv = GeoDataDriver.GetDriverByName("MEM") as IRasterDataDriver; _dataProvider = drv.Create(_fileName, _size.Width, _size.Height, 1, GetDataType(), GetOptions()); _rasterValues = _dataProvider.GetRasterBand(1); }
private void SetDefaultPara(string filename) { ProParas.SrcRaster = GeoDataDriver.Open(_fileNames[0]) as IRasterDataProvider; IBandProvider bandprovider = ProParas.SrcRaster.BandProvider; Dictionary <string, string> _fileAttrs = bandprovider.GetAttributes(); _fileAttrs.TryGetValue("File Alias Name", out _sensorName); ucSelectBands.InitTreeView(ProParas.SrcRaster); ucSelectBands.AddAll(); SetBandsInfo(); switch (_sensorName) { case "VIRR_L1": ProParas.VirrPrjSetting = new FY3_VIRR_PrjSettings(); ProParas.VirrPrjSetting.OutPathAndFileName = _fileNames[0] + "_WHOLE.ldf"; //_WHOLE_LW. //_DXX_LW. //_EF_LW. ProParas.VirrPrjSetting.OutResolutionX = 0.01F; ProParas.VirrPrjSetting.OutResolutionY = 0.01F; ProParas.VirrPrjSetting.OutFormat = "LDF"; ProParas.VirrPrjSetting.OutEnvelope = null; ucSelectBands.InitTreeView(ProParas.SrcRaster); ucSelectBands.AddAll(); //ProParas.VirrPrjSetting.BandMapTable = ucSelectBands.GetBandMapList(); break; } }
private void btnInputFile_Click(object sender, EventArgs e) { using (OpenFileDialog dlg = new OpenFileDialog()) { dlg.Filter = "LDF files(*.ldf)|*.ldf"; if (dlg.ShowDialog() == DialogResult.OK) { txtInputFile.Text = dlg.FileName; string extname = Path.GetExtension(dlg.FileName).ToUpper(); if (!string.IsNullOrEmpty(txtInputFile.Text)) { using (IRasterDataProvider raster = GeoDataDriver.Open(dlg.FileName) as IRasterDataProvider) { _resolutionX = raster.ResolutionX; _resolutionY = raster.ResolutionY; _fileSize = new Size(raster.Width, raster.Height); _fileEnvelope = raster.CoordEnvelope; _activeSpatialRef = raster.SpatialRef; _activeCoordType = raster.CoordType; } _outsizeRegion = new CoordEnvelope(_fileEnvelope.MinX, _fileEnvelope.MaxX, _fileEnvelope.MinY, _fileEnvelope.MaxY); FillControlsValuesByFileArgs(); SetInputFilename(txtInputFile.Text); } } } }
/// <summary> /// 插值处理 /// </summary> public void AndBiliNear(string srcFilename, Int16 zoom, string savepathname) { using (IRasterDataProvider inRaster1 = GeoDataDriver.Open(srcFilename) as IRasterDataProvider) { enumDataType type = inRaster1.DataType; switch (type) { case enumDataType.Byte: Bilinear <Byte>(srcFilename, zoom, savepathname); break; case enumDataType.Double: Bilinear <Double>(srcFilename, zoom, savepathname); break; case enumDataType.Float: Bilinear <Single>(srcFilename, zoom, savepathname); break; case enumDataType.Int16: Bilinear <Int16>(srcFilename, zoom, savepathname); break; case enumDataType.Int32: Bilinear <Int32>(srcFilename, zoom, savepathname); break; case enumDataType.Int64: Bilinear <Int64>(srcFilename, zoom, savepathname); break; case enumDataType.UInt16: Bilinear <UInt16>(srcFilename, zoom, savepathname); break; case enumDataType.UInt32: Bilinear <UInt32>(srcFilename, zoom, savepathname); break; case enumDataType.UInt64: Bilinear <UInt64>(srcFilename, zoom, savepathname); break; default: break; } } }
/// <summary> /// 创建目标tif文件读取驱动 /// </summary> /// <returns></returns> private IRasterDataProvider GetOutFileProvider(IRasterDataProvider srcRaster, Size outimg, string outfilename) { string[] options = null; string driver = string.Empty; string dstwktstr = string.Empty; dstwktstr = "GEOGCS['GCS_WGS_1984',DATUM['D_WGS_1984',SPHEROID['WGS_1984',6378137,298.257223563]],PRIMEM['Greenwich',0],UNIT['Degree',0.0174532925199433]]"; dstwktstr = dstwktstr.Replace('\'', '"'); double minx = srcRaster.CoordEnvelope.MinX; double maxy = srcRaster.CoordEnvelope.MaxY; double resolutionX = srcRaster.ResolutionX; double resolutionY = srcRaster.ResolutionY; driver = "GDAL"; options = new string[] { "DRIVERNAME=GTiff", "TFW=NO", "WKT=" + dstwktstr, "GEOTRANSFORM=" + string.Format("{0},{1},{2},{3},{4},{5}", minx, resolutionX, 0, maxy, 0, -resolutionY) }; int bandCount = srcRaster.BandCount == 1 ? 1 : 3; string outdir = Path.GetDirectoryName(outfilename); if (!Directory.Exists(outdir)) { Directory.CreateDirectory(outdir); } IRasterDataDriver outdrv = GeoDataDriver.GetDriverByName(driver) as IRasterDataDriver; return(outdrv.Create(outfilename, outimg.Width, outimg.Height, bandCount, enumDataType.Byte, options) as IRasterDataProvider); }
public void SmoothComputer(string srcFilename, Int16 smoothwindow, string savepathname) { using (IRasterDataProvider inRaster1 = GeoDataDriver.Open(srcFilename) as IRasterDataProvider) { enumDataType type = inRaster1.DataType; switch (type) { case enumDataType.Byte: ComputerMid <Byte>(srcFilename, smoothwindow, savepathname); break; case enumDataType.Double: ComputerMid <Double>(srcFilename, smoothwindow, savepathname); break; case enumDataType.Float: ComputerMid <Single>(srcFilename, smoothwindow, savepathname); break; case enumDataType.Int16: ComputerMid <Int16>(srcFilename, smoothwindow, savepathname); break; case enumDataType.Int32: ComputerMid <Int32>(srcFilename, smoothwindow, savepathname); break; case enumDataType.Int64: ComputerMid <Int64>(srcFilename, smoothwindow, savepathname); break; case enumDataType.UInt16: ComputerMid <UInt16>(srcFilename, smoothwindow, savepathname); break; case enumDataType.UInt32: ComputerMid <UInt32>(srcFilename, smoothwindow, savepathname); break; case enumDataType.UInt64: ComputerMid <UInt64>(srcFilename, smoothwindow, savepathname); break; default: break; } } }
private bool FileSpatialReferenceSupport(string[] fnames) { ISpatialReference sr; using (IRasterDataProvider prd = GeoDataDriver.Open(fnames[0]) as IRasterDataProvider) sr = prd.SpatialRef; for (int i = 1; i < fnames.Length; i++) { using (IRasterDataProvider prd = GeoDataDriver.Open(fnames[i]) as IRasterDataProvider) { if (sr == null) { if (prd.SpatialRef != null) { throw new ArgumentException("选择的文件空间参考类型不同,无法生成动画。"); } } if (prd.SpatialRef == null) { throw new ArgumentException("选择的文件空间参考类型不同,无法生成动画。"); } if (!sr.IsSame(prd.SpatialRef)) { throw new ArgumentException("选择的文件空间参考不同,无法生成动画。"); } } } return(true); }
private CoordEnvelope CalcOutRegion(List <string> moasicFileNames) { CoordEnvelope dstCoordEnvelope = null; try { foreach (string fileName in moasicFileNames) { CheckFile(fileName); using (IRasterDataProvider rasterprd = GeoDataDriver.Open(fileName) as IRasterDataProvider) { if (dstCoordEnvelope != null) { dstCoordEnvelope = dstCoordEnvelope.Union(rasterprd.CoordEnvelope); } else { dstCoordEnvelope = rasterprd.CoordEnvelope; } } } } catch (Exception ex) { MessageBox.Show(ex.Message, "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information); } return(dstCoordEnvelope); }
private bool IsSameTypeFile(string fileName) { using (IRasterDataProvider prd = GeoDataDriver.Open(fileName) as IRasterDataProvider) { if (_isFirst) { _satellite = prd.DataIdentify.Satellite; _sensor = prd.DataIdentify.Sensor; _bandCount = prd.BandCount; _isFirst = false; return(true); } else { if (prd.DataIdentify.Satellite != _satellite || prd.DataIdentify.Sensor != _sensor || prd.BandCount != _bandCount) { return(false); } else { return(true); } } } }
private void WriteAboutFile(string dstFilename) { //写出dat文件的相关信息 IRasterDataProvider rd = GeoDataDriver.Open(dstFilename) as IRasterDataProvider; try { if (rd != null) { MemoryRasterDataProvider mrd = rd as MemoryRasterDataProvider; if (mrd == null) { return; } HdrFile hdr = mrd.ToHdrFile(); if (hdr != null) { string hdrfile = Path.Combine(Path.GetDirectoryName(dstFilename), Path.GetFileNameWithoutExtension(dstFilename) + ".hdr"); HdrFile.SaveTo(hdrfile, hdr); } } } finally { if (rd != null) { rd.Dispose(); } } }
public static string OverView(string prdFilename, int maxSize) { try { using (IRasterDataProvider prd = GeoDataDriver.Open(prdFilename) as IRasterDataProvider) { int[] bands = new int[] { 1, 2, 3 }; for (int i = 0; i < 3; i++) { if (bands[i] > prd.BandCount) { bands[i] = 1; } } string overViewFilename = Path.ChangeExtension(prdFilename, ".overview.png"); using (Bitmap bmp = GenerateOverview(prd, bands, maxSize)) { bmp.MakeTransparent(Color.Black); bmp.Save(overViewFilename, ImageFormat.Png); bmp.Dispose(); } return(overViewFilename); } } catch (Exception ex) { Console.WriteLine("生成缩略图失败" + ex.Message); return(null); } }
public IRasterDataProvider Add(string file) { IRasterDataProvider prd = null; try { prd = GeoDataDriver.Open(file) as IRasterDataProvider; if (Add(prd)) { return(prd); } if (prd != null) { prd.Dispose(); } return(null); } catch { if (prd != null) { prd.Dispose(); } throw; } }
private void BuildCalcBuffer(string fileName) { IRasterDataDriver drv = GeoDataDriver.GetDriverByName("MEM") as IRasterDataDriver; _outputCalcDataProvider = drv.Create(fileName, vData.Width, vData.Height, 1, CalcType, GetOptions()); _outputCalcRasterBand = _outputCalcDataProvider.GetRasterBand(1); }
private void WriteData(float[] data, string fileName, int width, int height) { string[] options = new string[] { "INTERLEAVE=BSQ", "VERSION=LDF", "WITHHDR=TRUE", }; if (_outLdfDriver == null) { _outLdfDriver = GeoDataDriver.GetDriverByName("LDF") as IRasterDataDriver; } IRasterDataProvider cacheWriter = _outLdfDriver.Create(fileName, width, height, 1, enumDataType.Float, options) as IRasterDataProvider; { using (IRasterBand band = cacheWriter.GetRasterBand(1)) { unsafe { fixed(float *ptr = data) { IntPtr bufferPtr = new IntPtr(ptr); band.Write(0, 0, width, height, bufferPtr, enumDataType.Float, width, height); } } } } _solarZenithCacheRaster = cacheWriter; }
public IRasterDataProvider Add(string file, out string errorMsg) { errorMsg = ""; IRasterDataProvider prd = null; try { prd = GeoDataDriver.Open(file) as IRasterDataProvider; if (prd != null) { IRasterDataProvider newprd = ProjectionFactory.CheckPrjArg(prd); if (newprd != prd) { prd.Dispose(); } if (Add(newprd, out errorMsg)) { return(newprd); } } if (prd != null) { prd.Dispose(); } return(null); } catch { if (prd != null) { prd.Dispose(); } throw; } }
private IRasterBand WriteCacheFile(double[] data, string fileName, int width, int height, out IRasterDataProvider cacheWriter) { string[] options = new string[] { "INTERLEAVE=BSQ", "VERSION=LDF", "WITHHDR=TRUE", }; if (_outLdfDriver == null) { _outLdfDriver = GeoDataDriver.GetDriverByName("LDF") as IRasterDataDriver; } cacheWriter = _outLdfDriver.Create(fileName, width, height, 1, enumDataType.Double, options) as IRasterDataProvider; IRasterBand band = cacheWriter.GetRasterBand(1); { unsafe { fixed(double *ptr = data) { IntPtr bufferPtr = new IntPtr(ptr); band.Write(0, 0, width, height, bufferPtr, enumDataType.Double, width, height); } } } return(band); }
private IRasterDataProvider GetRasterDataProvider() { //byte[] buffer = new byte[] { 3,20,19,14,20, // 17,16,1,17,5, // 20,11,6,21,8, // 5,18,20,30,27, // 30,31,25,8,30 // }; //int w = 5; //int h = 5; ////IArrayRasterBand<byte> band = new ArrayRasterBand<byte>(1, buffer, w, h, null); ////return new ArrayRasterDataProvider<byte>("", new byte[][] { buffer }, w, h); //IRasterDataDriver drv = GeoDataDriver.GetDriverByName("LDF") as IRasterDataDriver; //IRasterDataProvider prd = drv.Create("f:\\1.ldf", 5, 5, 1, enumDataType.Byte); //GCHandle handle = GCHandle.Alloc(buffer, GCHandleType.Pinned); //prd.GetRasterBand(1).Write(0, 0, 5, 5, handle.AddrOfPinnedObject(), enumDataType.Byte, 5, 5); //handle.Free(); //return prd; using (OpenFileDialog dlg = new OpenFileDialog()) { if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK) { return(GeoDataDriver.Open(dlg.FileName, "ComponentID=0000000") as IRasterDataProvider); } } return(null); }
public void ProcessArrayToRaster(string dstFileName, int[,] arrayValue) { CoordEnvelope envelope = new CoordEnvelope(-180, 180, -90, 90); IRasterDataProvider dataPrd = null; enumDataType dataType = enumDataType.Int16; try { if (Path.GetExtension(dstFileName).ToUpper() == ".DAT") { IRasterDataDriver driver = GeoDataDriver.GetDriverByName("MEM") as IRasterDataDriver; string mapInfo = envelope.ToMapInfoString(new Size(_datwidth, _datheight)); dataPrd = driver.Create(dstFileName, _datwidth, _datheight, 1, dataType, mapInfo); } else { return; } if (arrayValue == null) { return; } ProcessArrayToRaster(arrayValue, dataPrd); } finally { if (dataPrd != null) { dataPrd.Dispose(); } } }
internal IRasterDataProvider CreateOutFile(string driver, string outfilename, int dstBandCount, Size outSize, enumDataType dataType, string[] options) { CheckAndCreateDir(Path.GetDirectoryName(outfilename)); IRasterDataDriver outdrv = GeoDataDriver.GetDriverByName(driver) as IRasterDataDriver; return(outdrv.Create(outfilename, outSize.Width, outSize.Height, dstBandCount, dataType, options) as IRasterDataProvider); }
public static bool PrjTransf(string srcFile, PrjEnvelope srcEnvelope, Dictionary <string, H5T.H5Type> dataSets, string dstFile, PrjEnvelope dstEnvelope, float dstResoultion) { Action <int, string> progressTracker = null; string[] args = new string[3]; string datasetstr = string.Empty; foreach (string itemdest in dataSets.Keys) { datasetstr += itemdest + ","; } datasetstr = datasetstr.Remove(datasetstr.LastIndexOf(',')); args[0] = string.Format("datasets ={0}", datasetstr); args[1] = string.Format("geoinfo={0},{1},{2},{3},1000.000,1000.000", srcEnvelope.MinX, srcEnvelope.MaxX, srcEnvelope.MinY, srcEnvelope.MaxY); args[2] = "proj4 = +proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=6371007.181 +b=6371007.181 +units=m +no_defs"; ISpatialReference dstSpatialRef = SpatialReference.GetDefault(); FilePrjSettings prjSetting = new FilePrjSettings(); IRasterDataProvider prd = GeoDataDriver.Open(srcFile, args) as IRasterDataProvider; if (prd != null) { prjSetting.OutEnvelope = dstEnvelope; prjSetting.OutResolutionX = dstResoultion; prjSetting.OutResolutionY = dstResoultion; prjSetting.OutPathAndFileName = dstFile; ProjectedFileTransform proj = new ProjectedFileTransform(); proj.ProjectNew(prd, prjSetting, dstSpatialRef, progressTracker, dataSets); prd.Dispose(); return(true); } return(false); }
public void Tran() { int center = 180; string inputFileName = @"E:\fy3c\FY3C_VIRR_20131015_1000M_global_CH6.tiff"; using (IRasterDataProvider inRaster = GeoDataDriver.Open(inputFileName) as IRasterDataProvider) { int bandCount = inRaster.BandCount; string outputFName = Path.ChangeExtension(inputFileName, ".180.tiff"); using (IRasterDataProvider outRaster = CreatOutputRaster(outputFName, inRaster, bandCount, null)) { int off = 18;//左右丢失的数据(黑边) //0-15000,18000 int leftPiex = 18000; int rightPiex = 18000;// byte[] band = new byte[(leftPiex - off) * 18000]; GCHandle handle = GCHandle.Alloc(band, GCHandleType.Pinned); for (int b = 0; b < bandCount; b++) { inRaster.GetRasterBand(b + 1).Read(off, 0, leftPiex - off, 18000, handle.AddrOfPinnedObject(), enumDataType.Byte, leftPiex - off, 18000); outRaster.GetRasterBand(b + 1).Write(rightPiex - off, 0, leftPiex - off, 18000, handle.AddrOfPinnedObject(), enumDataType.Byte, leftPiex - off, 18000); } handle.Free(); band = new byte[(rightPiex - off) * 18000]; handle = GCHandle.Alloc(band, GCHandleType.Pinned); for (int b = 0; b < bandCount; b++) { inRaster.GetRasterBand(b + 1).Read(leftPiex - off, 0, rightPiex - off, 18000, handle.AddrOfPinnedObject(), enumDataType.Byte, rightPiex - off, 18000); outRaster.GetRasterBand(b + 1).Write(off, 0, rightPiex - off, 18000, handle.AddrOfPinnedObject(), enumDataType.Byte, rightPiex - off, 18000); } handle.Free(); } } }
private IRasterDataProvider GetSrcRaster() { string srcFilename = @"D:\mas数据\virr\FY3A_VIRRX_GBAL_L1_20090107_0220_1000M_MS.HDF"; //srcFilename = @"E:\gov\FY3B_VIRRX_GBAL_L1_20120308_0830_1000M_MS.HDF"; return(GeoDataDriver.Open(srcFilename) as IRasterDataProvider); }
private IRasterDataProvider GetSrcRaster() { string srcFilename = @"D:\masData\noaa_1bd\NOAA18_AVHRR_CHINA_L1_20090806_N3_1000M.1bd"; //srcFilename = @"D:\mas数据\NOAA18_1BD\NA18_AVHRR_HRPT_L1_ORB_MLT_NUL_20120319_0618_1100M_PJ.L1B"; return(GeoDataDriver.Open(srcFilename) as IRasterDataProvider); }
public Dictionary <string, Dictionary <string, double> > StatArea(string rasterFile, Func <T, int, int> weight) { using (IRasterDataProvider dataProvider = GeoDataDriver.Open(rasterFile) as IRasterDataProvider) { return(StatArea(dataProvider, null, weight)); } }