コード例 #1
0
        internal AbstractWarpDataset CreateOutFile(string driver, string outfilename, int dstBandCount, Size outSize, DataType dataType, string[] options)
        {
            CheckAndCreateDir(Path.GetDirectoryName(outfilename));
            string[] _options = new string[] { "header_offset=128" };
            var      ds       = DatasetFactory.CreateRasterDataset(outfilename, outSize.Width, outSize.Height, dstBandCount, dataType, "ENVI", null);

            if (ds == null)
            {
                throw new ArgumentException("请检查输出文件路径");
            }
            return(new WarpDataset(ds, outfilename));
        }
コード例 #2
0
ファイル: GeosProject.cs プロジェクト: v2535v/FYProjection
        protected AbstractWarpDataset CreateOutFile(AbstractWarpDataset srcRaster, FilePrjSettings prjSettings,
                                                    SpatialReference dstSpatial, DataType dataType)
        {
            float resolutionX = prjSettings.OutResolutionX;
            float resolutionY = prjSettings.OutResolutionY;

            Size   outSize   = prjSettings.OutEnvelope.GetSize(resolutionX, resolutionY);
            int    bandCount = prjSettings.OutBandNos.Length;
            string filename  = prjSettings.OutPathAndFileName;

            CheckAndCreateDir(Path.GetDirectoryName(filename));

            Envelope env = new Envelope()
            {
                MaxX = prjSettings.OutEnvelope.MaxX,
                MinX = prjSettings.OutEnvelope.MinX,
                MaxY = prjSettings.OutEnvelope.MaxY,
                MinY = prjSettings.OutEnvelope.MinY,
            };

            string[] _options = new string[] { "header_offset=128" };
            double[] geoTrans = new double[]
            {
                env.MinX, Convert.ToDouble(resolutionX.ToString("f6")), 0, env.MaxY, 0,
                -Convert.ToDouble(resolutionY.ToString("f6"))
            };
            var ds = DatasetFactory.CreateRasterDataset(filename, outSize.Width, outSize.Height, bandCount,
                                                        DataType.GDT_UInt16, "ENVI", null);

            ds.SetGeoTransform(geoTrans);
            if (ds == null)
            {
                throw new ArgumentException("请检查输出文件路径");
            }
            ds.SetProjection(dstSpatial.ExportToWkt());
            Enumerable.Range(0, bandCount).ToList().ForEach(t => ds.GetRasterBand(t).SetNoDataValue(NODATA_VALUE));
            return(new WarpDataset(ds, filename));
        }