static void Main(string[] args) { try { LASReader lasreader = new LASReader(@"c:\las\sample_our2.las"); LASPoint laspoint; LASHeader lasheader = lasreader.GetHeader(); Console.WriteLine(lasheader.SoftwareId);// lasheader.VersionMinor = 0; LASWriter laswriter = new LASWriter(@"c:\las\sample_our.las", lasheader, LASReadWriteMode.LASModeWrite); Console.WriteLine("Number of points in file= {0}", lasheader.PointRecordsCount); while (lasreader.GetNextPoint()) { laspoint = lasreader.GetPoint(); laspoint.X = laspoint.X + 3; //Console.WriteLine(laspoint.X + "," + laspoint.Y + "," + laspoint.Z); laswriter.WritePoint(laspoint); } } catch (LASException e) { Console.WriteLine("\nLASException! Msg: {0}", e.Message); } catch (SystemException e) { Console.WriteLine("\nException! Msg: {0}", e.Message); } catch { Console.WriteLine("Unknown exception caught"); } finally { Console.WriteLine("Do i need something to do?"); } Console.WriteLine("End of file"); Console.Read(); }
static void Main(string[] args) { try { string filename = @"..\..\..\..\..\test\data\TO_core_last_zoom.las"; LASReader lasreader = new LASReader(filename); LASHeader h = lasreader.GetHeader(); Console.WriteLine("Version : " + lasreader.GetVersion()); Console.WriteLine("Signature: : " + h.FileSignature); Console.WriteLine("Format : " + h.DataFormatId); Console.WriteLine("Project : " + h.ProjectId); Console.WriteLine("Points count: " + h.PointRecordsCount); Console.WriteLine("VLRecords count: " + h.VariableLengthRecordsCount); int counter = 0; while (lasreader.GetNextPoint()) { LASPoint laspoint = lasreader.GetPoint(); counter += 1; } if (lasreader.GetHeader().PointRecordsCount != counter) { throw new LASException("read incorrect number of point records"); } } catch (LASException e) { Console.WriteLine("\nLASException! Msg: {0}", e.Message); } catch (SystemException e) { Console.WriteLine("\nException! Msg: {0}", e.Message); } catch { Console.WriteLine("Unknown exception caught"); } Console.WriteLine("End of file"); Console.Read(); }
public LASFile(string filename, int pointsToStore) { IsLoaded = false; using (LASReader reader = new LASReader(filename)) using (LASHeader header = reader.GetHeader()) { ProjectID = header.ProjectId; Signature = header.FileSignature; NumPoints = header.PointRecordsCount; XOffset = header.GetMinX(); YOffset = header.GetMinY(); ZOffset = header.GetMinZ(); XExtent = header.MaxX() - XOffset; YExtent = header.GetMaxY() - YOffset; ZExtent = header.GetMaxZ() - ZOffset; chunks = new List <LASChunk>((int)(NumPoints / LASChunk.ChunkSize + 1)); LASChunk curChunk = new LASChunk(0); long curOffset = 0, stored = 0; long pointSkip = NumPoints / pointsToStore; if (pointSkip <= 0) { pointSkip = 1; } while (reader.GetNextPoint()) { curOffset++; if (curOffset % pointSkip == 0) { LASPoint point = reader.GetPoint(); if (point.ReturnNumber > 1) { curOffset--; continue; } curChunk.Points.Add( new LPoint() { X = (float)(point.X - XOffset), Y = (float)(point.Y - YOffset), Z = (float)(point.Z - ZOffset), Intensity = (float)point.Intensity } ); stored++; if (curChunk.Points.Count >= LASChunk.ChunkSize) { chunks.Add(curChunk); curChunk = new LASChunk(curOffset); } } } if (curChunk.Points.Count > 0) { chunks.Add(curChunk); } StoredPoints = stored; } Filename = filename; IsLoaded = true; }