Beispiel #1
0
        public override void Open(IGeoModel model)
        {
            Debug.Assert(model != null);
            builder = model.CreateGridBuilder();
            Debug.Assert(builder != null);
            using (ILineReader lineReader = new SkippingLineReader(Location.LocalPath))
            {
                ReadHeader(lineReader);
                BuildGridParameters();
                switch (maxFieldCode)
                {
                case 3:
                    // XYZ points not supported
                    // TODO: Signal not supported
                    break;

                case 5:
                    ReadFiveColumnGrid(lineReader);
                    break;

                case 7:
                    ReadFiveColumnGrid(lineReader);     // Ignore the ID and name columns
                    break;

                default:
                    // Unknown
                    // TODO: Inform user.
                    break;
                }
            }
            builder.Build();
        }
Beispiel #2
0
        public override void Open(IGeoModel model)
        {
            Debug.Assert(model != null);
            builder = model.CreateGridBuilder();
            Debug.Assert(builder != null);
            using (FileStream stream = new FileStream(Location.LocalPath, FileMode.Open, FileAccess.Read))
                using (BinaryReader reader = EndianBinaryReader.CreateForBigEndianData(stream))
                {
                    // We keep track of our own length rather than testing for EOF which is
                    // inefficient with FileStream
                    long length = stream.Length;
                    if (length < 4)
                    {
                        throw new OpenException("EarthVision Binary File too short");
                    }
                    long position   = 0;
                    bool foundMagic = ReadMagic(reader);
                    if (!foundMagic)
                    {
                        StringBuilder message = new StringBuilder();
                        message.AppendFormat("Incorrect EarthVision Binary Grid header");
                        throw new OpenException(message.ToString());
                    }
                    position += 4;

                    while (position < length)
                    {
                        ReadRecord(reader, ref position);
                    }
                }
            builder.Build();
        }
Beispiel #3
0
 public override void Open(IGeoModel model)
 {
     Debug.Assert(model != null);
     builder = model.CreateGridBuilder();
     ReadHeader();
     ReadBody();
     builder.Build();
 }
Beispiel #4
0
 public override void Open(IGeoModel model)
 {
     Debug.Assert(model != null);
     builder = model.CreateGridBuilder();
     using (LineReader lineReader = new LineReader(Location.LocalPath))
     {
         try
         {
             ReadHeader(lineReader);
             ReadRowMajorGrid(lineReader);
         }
         catch (EndOfStreamException endOfStreamException)
         {
             throw new OpenException("Unexpected end of file", Location, endOfStreamException);
         }
     }
     builder.Build();
 }
 public void Read(ILineReader lineReader, IGeoModel model)
 {
     // Pre-condition: The next line to be read will be the first line
     // of the header
     builder = model.CreateGridBuilder();
     try
     {
         ReadHeader(lineReader);
         parameters.VerifyAndCompleteParameters();
         parameters.Build(builder);
         ReadBody(lineReader);
     }
     catch (FormatException formatException)
     {
         StringBuilder message = new StringBuilder();
         message.AppendFormat("Unable to parse ZMap file at line {0} because {1}", lineReader.PhysicalLineNumber, formatException.Message);
         throw new OpenException(message.ToString());
     }
     builder.Build();
 }
Beispiel #6
0
        public override void Open(IGeoModel model)
        {
            Debug.Assert(model != null);
            builder = model.CreateGridBuilder();
            DetermineType();
            switch (subType)
            {
            case SubType.SurferAscii:
                OpenSurferAscii();
                break;

            case SubType.Surfer6Binary:
                OpenSurfer6Binary();
                break;

            case SubType.Surfer7Binary:
                OpenSurfer7Binary();
                break;

            default:
                throw new OpenException("Not recognised as a Golden Software Surfer Binary grid file", Location);
            }
            builder.Build();
        }