private IRasterBand[] ReadBandsFromDataset(string dsname, Dataset ds, IRasterDataProvider provider) { int bandNo = 1; IRasterBand[] bands = new IRasterBand[ds.RasterCount]; for (int i = 1; i <= ds.RasterCount; i++) { bands[i - 1] = new GDALRasterBand(provider, ds.GetRasterBand(i), new GDALDataset(ds)); bands[i - 1].BandNo = bandNo++; bands[i - 1].Description = dsname; } return(bands); }
//private IRasterBand[] GetBandsByFullName(string datasetName) //{ // if (_allGdalSubDatasets == null || _allGdalSubDatasets.Count == 0 || string.IsNullOrEmpty(datasetName)) // return null; // foreach (string dsname in _allGdalSubDatasets) // { // if (string.IsNullOrEmpty(dsname)) // continue; // if (dsname.Contains(datasetName)) // { // Dataset ds = Gdal.Open(datasetName, _access); // return ReadBandsFromDataset(ds, _provider); // } // } // return null; //} private IRasterBand[] ReadBandsFromDataset(Dataset ds, IRasterDataProvider provider) { if (ds == null || ds.RasterCount == 0) { return(null); } IRasterBand[] bands = new IRasterBand[ds.RasterCount]; for (int i = 1; i <= ds.RasterCount; i++) { bands[i - 1] = new GDALRasterBand(provider, ds.GetRasterBand(i), new GDALDataset(ds)); } return(bands); }
private IRasterBand[] ReadBandsFromGDAL(Dataset ds, IRasterDataProvider provider) { if (ds == null || ds.RasterCount == 0) { return(null); } IRasterBand[] bands = new IRasterBand[ds.RasterCount]; GDALDataset gdalDs = new GDALDataset(ds); for (int i = 1; i <= ds.RasterCount; i++) { Band band = ds.GetRasterBand(i); bands[i - 1] = new GDALRasterBand(provider, band, gdalDs); } return(bands); }