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 ReadyRadiationArgs(IRasterDataProvider srcRaster) { ID1A5DataProvider dp = srcRaster as ID1A5DataProvider; try { if (dp == null) { throw new Exception("读取亮温计算参数失败,可能为非NOAA 1a5格式轨道数据"); } //D1BDHeader D1A5Header header = dp.Header; int sateIdentify = (header == null ? 0 : header.SatelliteIdentify); CreateEvABV(sateIdentify); _isDay = false; double[,] c = null; double[,] b = null; double[,] operCoef = null; dp.ReadVisiCoefficient(ref operCoef, ref b, ref c); _refSB_Coeff = operCoef; double[,] evCoefOper = null; //dp.ReadIRCoefficient(ref evCoefOper, ref b); _emissive_Radiance_Coeff = evCoefOper; } catch (Exception ex) { throw new Exception("读取亮温计算参数失败", ex); } }
private void PrintHeaderInfo(IRasterDataProvider prd) { ID1A5DataProvider noaaPrd = prd as ID1A5DataProvider; Assert.NotNull(noaaPrd); D1A5Header header = noaaPrd.Header as D1A5Header; Assert.NotNull(header); Console.WriteLine(header.BitErrorRatio); Console.WriteLine(header.DataBeginDayNums); Console.WriteLine(header.DataBeginMilliSecond); }