예제 #1
0
 private void TryCreate0250DefaultArgs(IRasterDataProvider srcRaster, FY3_MERSI_PrjSettings prjSettings, ref ISpatialReference dstSpatialRef)
 {
     if (prjSettings.SecondaryOrbitRaster == null && prjSettings.IsSolarZenith)
     {
         prjSettings.IsSolarZenith = false;  //throw new Exception("无法获取相应1KM轨道数据文件,无法做太阳天顶角订正");
     }
     if (dstSpatialRef == null)
     {
         dstSpatialRef = _srcSpatialRef;
     }
     if (string.IsNullOrWhiteSpace(prjSettings.OutFormat))
     {
         prjSettings.OutFormat = "LDF";
     }
     if (dstSpatialRef.ProjectionCoordSystem == null)
     {
         _srcImgResolution = 0.0025f;
     }
     else
     {
         _srcImgResolution = 250f;
     }
     if (prjSettings.OutResolutionX == 0 || prjSettings.OutResolutionY == 0)
     {
         if (dstSpatialRef.ProjectionCoordSystem == null)
         {
             prjSettings.OutResolutionX = 0.0025F;//地理坐标系
             prjSettings.OutResolutionY = 0.0025F;
         }
         else
         {
             prjSettings.OutResolutionX = 250F;//投影坐标系
             prjSettings.OutResolutionY = 250F;
         }
     }
     if (prjSettings.OutBandNos == null || prjSettings.OutBandNos.Length == 0)
     {
         _prjBands = OrbitBandDefCollection.MERSI_0250_OrbitDefCollecges();
     }
     else
     {
         List <PrjBand> bands    = new List <PrjBand>();
         PrjBand[]      defbands = OrbitBandDefCollection.MERSI_0250_OrbitDefCollecges();
         foreach (int bandNo in prjSettings.OutBandNos)
         {
             bands.Add(defbands[bandNo - 1]);
         }
         _prjBands = bands.ToArray();
     }
 }
예제 #2
0
        /// <summary>
        /// 根据波段序号获取波段信息
        /// </summary>
        /// <param name="bandNos">从1开始的波段号</param>
        /// <returns></returns>
        private static PrjBand[] GetPrjBandsVIRR(int[] bandNos)
        {
            PrjBand[]      prjBand = OrbitBandDefCollection.VIRR_1000_OrbitDefCollecges();
            List <PrjBand> bands   = new List <PrjBand>();

            foreach (int bandNo in bandNos)
            {
                if (bandNo <= 0 || bandNo > prjBand.Length)
                {
                    continue;
                }
                bands.Add(prjBand[bandNo - 1]);
            }
            return(bands.ToArray());
        }
예제 #3
0
 private void TryCreateDefaultArgs(IRasterDataProvider srcRaster, FY3_MERSI_PrjSettings prjSettings, ref ISpatialReference dstSpatialRef)
 {
     if (dstSpatialRef == null)
     {
         dstSpatialRef = _srcSpatialRef;
     }
     if (string.IsNullOrWhiteSpace(prjSettings.OutFormat))
     {
         prjSettings.OutFormat = "LDF";
     }
     if (dstSpatialRef.ProjectionCoordSystem == null)
     {
         _srcImgResolution = 0.01F;
     }
     else
     {
         _srcImgResolution = 1000F;
     }
     if (prjSettings.OutResolutionX == 0 || prjSettings.OutResolutionY == 0)
     {
         if (dstSpatialRef.ProjectionCoordSystem == null)
         {
             prjSettings.OutResolutionX = 0.01F;
             prjSettings.OutResolutionY = 0.01F;
         }
         else
         {
             prjSettings.OutResolutionX = 1000F;
             prjSettings.OutResolutionY = 1000F;
         }
     }
     if (prjSettings.OutBandNos == null || prjSettings.OutBandNos.Length == 0)
     {
         _prjBands = OrbitBandDefCollection.MERSI_1000_OrbitDefCollecges();
     }
     else
     {
         List <PrjBand> bands    = new List <PrjBand>();
         PrjBand[]      defbands = OrbitBandDefCollection.MERSI_1000_OrbitDefCollecges();
         foreach (int bandNo in prjSettings.OutBandNos)
         {
             bands.Add(defbands[bandNo - 1]);
         }
         _prjBands = bands.ToArray();
     }
 }
예제 #4
0
 public static PrjBand[] GetDefaultBandTable(string satelite, string sensor, string resolution)
 {
     if (sensor == "VIRR")
     {
         return(OrbitBandDefCollection.GetOrbitBandDefCollection("FY3A", "VIRR", 0.01f));
     }
     else if (sensor == "MERSI" && resolution == "0250M")
     {
         return(OrbitBandDefCollection.GetOrbitBandDefCollection("FY3A", "MERSI", 0.0025f));
     }
     else if (sensor == "MERSI" && resolution == "1000M")
     {
         return(OrbitBandDefCollection.GetOrbitBandDefCollection("FY3A", "MERSI", 0.01f));
     }
     else if (satelite == "FY1D" && sensor == "AVHRR")
     {
         return(OrbitBandDefCollection.GetOrbitBandDefCollection("FY1D", "AVHRR", 0.04f));
     }
     else if (satelite == "NOAA" || sensor == "AVHRR")
     {
         return(OrbitBandDefCollection.GetOrbitBandDefCollection("NOAA", "AVHRR", 0.01f));
     }
     else if ((satelite == "EOS" || sensor == "MODIS") && resolution == "0250M")
     {
         return(OrbitBandDefCollection.GetOrbitBandDefCollection("EOS", "MODIS", 0.0025f));
     }
     else if ((satelite == "EOS" || sensor == "MODIS") && resolution == "0500M")
     {
         return(OrbitBandDefCollection.GetOrbitBandDefCollection("EOS", "MODIS", 0.005f));
     }
     else if (satelite == "EOS" || sensor == "MODIS")
     {
         return(OrbitBandDefCollection.GetOrbitBandDefCollection("EOS", "MODIS", 0.01f));
     }
     else if (satelite == "FY2" || sensor == "VISSR")
     {
         return(OrbitBandDefCollection.GetOrbitBandDefCollection("FY2", "VISSR", 0.05f));
     }
     return(null);
 }