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(); }
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(); }
public override void Open(IGeoModel model) { Debug.Assert(model != null); builder = model.CreateGridBuilder(); ReadHeader(); ReadBody(); builder.Build(); }
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(); }
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(); }