Home
MrSID Decode SDK 9 for LiDAR User Manual
Contents
1. 0 0 0 2 25 About Lizard Techn oia ok ac ed TIT E 25 Other LizardTech Products uutttttututuuuuuutttttttssssssssss c cece eee eese 25 e AA A See eC ADM Ae ea MALO 27 Chapter 1 Introduction Thank you for using LizardTech products This is the documentation for the MrSID Decode Soft ware Development Kit SDK for LIDAR data The SDK provides a framework for extracting LIDAR data from MrSID Generation 4 MG4 files LiDAR data is becoming increasingly important to many aspects of business industry and gov ernment Because of the enormous quantities of data involved the use of LIDAR files has been hindered by storage and bandwidth constraints LizardTech s technologies and products solve these problems and lay the groundwork for truly dynamic LiDAR file access Lossless compression with LizardTech LIDAR Compressor enables users to tum giant point cloud data sets into efficient MrSID files that retain 100 percent of the raw data at just 25 percent or less of the original file size lossless compression If storage requirements are critical they can reduce LiDAR file sizes by 90 percent or more by choosing a higher compression ratio and letting LIDAR Compressor select the best way to reach a desired file size lossy compression Used as the foundation for LiDAR Compressor the MrSID Decode SDK is a robust toolkit suitable for complex application development needs NOTE The MrSID format supports
2. do some thing with the points Now we ll do a little housecleaning When you re done with your point source you should release it 18 pointSource release pointSource NULL Chapter 5 MrSID Decode SDK Command Line Tools The MrSID Decode SDK includes several command line tools you may find useful for decompressing MrSID Generation 4 MG4 files or viewing information about MG4 LAS or text LIDAR files These tools are located in the bin directory Decompressing MG4 Files The MrSID Decode SDK includes a command line tool called 1idardecode Located in the bin dir ectory 1idardecode enables you to decompress MG4 files to LAS or text files Usage The only required parameters are inputFile or i which specifies the input file name and outputFile or o which specifies the output file name If no output format outputFormat or of is specified the file extension specified in the out putFile parameter is used as the output format If no output format outputFormat or of is specified and no file extension is specified in the out put file name then 1idardecode decodes the file to the default format text and appends the default suffix txt to the output file name You may add other options and parameters as described in the table of switches below The order of the switches in the syntax has no bearing on the output For examples of how to form a command see Examples on page 20 lidardecode Sw
3. G green B blue s Skip this column Example If you have five fields in the order GPS time intens ity x y and z and you only want the time and the point values then specify parse tsxyz which skips the second intensity column and correctly labels the other four Tells 1idarinfo to display all metadata Tells 1idarinfo to determine the extents of the data by reading the data itself instead of reading min and max values reported in the header Tells 1idarinfo to skip the first n lines of text input files Decodes the points and displays a his togram of the number of points per return value Decodes the points and displays a his togram of the number of points per clas sification Displays a short usage message Displays a detailed usage message Displays version information Tells 1idarinfo to display more verbose error messages Displays credits and copyrights LakeRoosevelt 2 sid MG4 4 0 0 1 3144893399 408841 780000 5370276 770000 391 350000 Chapter 5 MrSID Decode SDK Command Line Tools Bounds Max 447234 600000 5422959 680000 1188 890000 Scale 0 001 0 001 0 001 Offset 408841 780000 5370276 770000 391 350000 Supported Fields GPSTime X Y Z Intensity ReturnNum NumReturns ClassId ScanDir ScanAngle UserData Sourceld Spatial Reference Non 23 Appendix Company and Product Information This chapter contains information about LizardTech and its products as well as copyrights trade m
4. MG4PointReader class 13 O Other LizardTech products 25 P PointInfo class 12 Pointlterator class 12 PointSource class 9 PointWriter class 10 Programming and memory model 3 Q Quantization 4 S Sample code 17 SDK classes Buffer management 11 metadata 14 MG4PointReader 13 Pointlterator 12 PointSource 9 PointWriter 10 support 13 text point readers and writers 13 Specifying a region of interest 3 Support classes 13 SWIG bindings 2 System requirements 5 Linux 6 Macintosh 6 27 Lizard Tech MrSID Decode SDK User Manual Windows 5 T Technical support 7 before you contact us 8 Text point readers and writers 13 Thread safety 4 V Viewing file information 21 28
5. 64 bit e Supports Windows 2003 64 bit Windows XP 64 bit Windows Vista 64 bit Win dows Server 2008 64 bit Windows 7 64 bit Windows 8 64 bit Windows Server 2012 64 bit Windows Visual Studio 2012 32 bit e built on Windows Server 2008 VC11 0 32 bit e Supports Windows 2003 32 bit Windows XP 32 bit Windows Vista 32 bit Win dows Server 2008 32 bit Windows 7 32 bit Windows 8 32 bit LizardTech MrSID Decode SDK User Manual Windows Visual Studio 2012 64 bit e built on Windows Server 2008 VC 11 0 64 bit e supports Windows 2003 64 bit Windows XP 64 bit Windows Vista 64 bit Win dows Server 2008 64 bit Windows 7 64 bit Windows 8 64 bit Windows Server 2012 64 bit Linux Linux Red Hat 5 32 bit e built on RHEL5 32 gcc 4 1 32 bit e supports RHEL5 32 Linux Red Hat 5 64 bit e built on RHEL5 64 gcc 4 1 64 bit e Supports RHEL5 64 Linux Red Hat 6 32 bit e built on RHEL6 32 gcc 4 4 32 bit e Supports RHEL6 32 Linux Red Hat 6 64 bit e built on RHEL6 64 gcc 4 4 64 bit e Supports RHEL6 64 Macintosh Mac OS 10 7 Universal Darwin 11 e built on Mac OS 10 7 gcc 4 2 Universal 32 bit and 64 bit e Supports Mac OS 10 7 Universal 32 bit and 64 bit Mac OS 10 8 Universal Darwin 12 e built on Mac OS 10 8 Clang 5 0 Universal 32 bit and 64 bit e Supports Mac OS 10 8 Universal 32 bit and 64 bit iOS 5 Universal e built on Mac OS 10 7 gcc 4 2 Xc
6. JPEG 2000 images For more information about GeoViewer visit http www l izardtech com downloads category viewers ExpressView Browser Plug in Fast and Easy Viewing of Large Images ExpressView Browser Plug in enables you to view navigate and print MrSID and JPEG 2000 imagery in Internet Explorer or Firefox Like GeoViewer ExpressView enables you to save a portion of an image in a number of other image formats ExpressView Browser Plug in is quickly down loaded easily installed and free for individual use It s the most convenient way to view MrSID and JPEG 2000 imagery over networks For more information about ExpressView Browser Plug in visit http www izardtech com downloads category viewers 25 LizardTech MrSID Decode SDK User Manual GeoExpress The Industry s Best Image Manipulation and Com pression Software With powerful tools for reprojecting color balancing and mosaicking GeoExpress software is the industry s choice for manipulating and compressing geospatial imagery to industry standard formats You can configure Express Server and Spatial Express software directly from GeoExpress which makes it the ideal command center for your storage and distribution workflows For more information about GeoExpress visit www lizardtech com products geo LiDAR Compressor LiDAR Data Meets the MrSID Format LizardTech LIDAR Compressor software enables you to turn giant point cloud datasets into effi cien
7. const PointInfo amp pointlInfo pointSource getPointInfo printf Number of points lld n numPoints printf Number of channels lu n numChannels for size t 1 0 i lt numChannels i 1 printf Channel 1u sWMn i pointInfo getChannel i getName 17 LizardTech MrSID Decode SDK User Manual You can use either of the following two methods to access the point cloud In the first we use the PointIterator mechanism PointData buffer create buffers for all the channels 1000 samples long buffer init pointInfo 1000 create an iterator of the whole point cloud with all the chan nels PointIterator iter pointSource gt createlterator pointSource gt getBounds 10g pointInfo NULL size t count walk the iterator while count iter gt getNextPoints buffer 0 do some thing with this chunk of the point cloud iter release The second method extracts a fixed number of points 10 000 in this case PointData buffer only decode X Y Z PointInfo pointInfo pointInfo init 3 pointInfo getChannel 0 init pointSource gt getChannel CHANNEL NAME X pointInfo getChannel 1 init pointSource gt getChannel CHANNEL NAME Y pointInfo getChannel 2 init pointSource gt getChannel CHANNEL NAME 2Z buffer init pointInfo 10000 Lr Tj Tj pointSource read Bounds Huge buffer NULL
8. raster data as well as LiDAR data but a separate set of tools and libraries is used in supporting raster data in the MrSID format Separate documentation is avail able in your installation for integrating support for raster encoded MrSID files MrSID Generation 4 MG4 The industry standard MrSID format has been trusted as a raster format by geospatial professionals since 1992 and supported in virtually all GIS applications With the release of LiDAR Compressor Liz ardTech unveiled a new and improved version of the format MrSID Generation 4 MG4 MG4 enables users to view and access their LiDAR data quickly SDK Contents The contents of the MrSID Decode SDK include the following Documentation Cover documentation The fileREADME txt in the top level directory and the file CHANGES txt in the doc directory contain information about late changes to the SDK License In the top level directory the file LICENSE pdf contains the complete licensing information for this SDK User Manual The User Manual this document can be found at doc UserManual index html LizardTech MrSID Decode SDK User Manual Reference Manual The Reference Manual containing detailed information about each class and method can be found at doc ReferenceManual index html Copyrights Trademarks and Credits Information about licenses and copyrights as well as trademark information and acknowledgments are found in the d
9. Classld channel to index into the ClassIdName array LizardTech MrSID Decode SDK User Manual To access the classification names call PointSource getNumClassIdNames and PointSource getClassIdNames Methods for Accessing the Point Cloud Using a Point Iterator A point iterator is an iterator that gets points for a given bounds The function PointSource createIterator returns an iterator for a given bounds fraction and set of channels see Specifying a Region of Interest on page 3 To extract the points call the function PointIterator getNextPoints which walks the specified region of the point cloud until there are no more points to extract for an example see Chapter 4 Code Examples on page 17 For more information see The PointInterator Class on page 12 Using Bounds and a Fixed Number of Points Using bounds and a fixed number of points to extract is much simpler but less versatile PointSource read fills a PointData object with the points that most uniformly represent the specified region of interest for an example see Chapter 4 Code Examples on page 17 The PointWriter Class The PointWriter class is the base class for writing LIDAR data to files Following is a description of each of the methods Methods for Setting Up and Writing the Output File Metadata By default the writers to not copy in the metadata from the point source It is the responsibility of the application to retrie
10. LizardTech MrSID Decode SDK 9 for LIDAR User Manual Copyright O 2009 2013 Celartem Inc d b a LizardTech All rights reserved Information in this doc ument is subject to change without notice The software described in this document is furnished under a license agreement or nondisclosure agreement The software may be used or copied only in accordance with the terms of those agreements No part of this publication may be reproduced stored in a retrieval system or transmitted in any form or any means electronic or mechanical includ ing photocopying and recording for any purpose other than the purchaser s personal use without the written permission of LizardTech LizardTech MrSID GeoExpress and Express Server are registered trademarks in the United States and the LizardTech GeoExpress Express Server ExpressView and GeoViewer logos are trade marks and all are the property of Celartem Inc d b a LizardTech Unauthorized use is prohibited LizardTech acknowledges and thanks the many individuals and organizations whose efforts have made our products possible A full list of copyright trademark and credit information is available in the document Copyrights Trademarks and Credits installed automatically with your product LizardTech 1008 Western Avenue Suite 200 Seattle Washington USA 98104 206 652 5211 www lizardtech com Table of Contents Chapter 1 Introduction oooccccccccoccccoccccoco coo conco cence ec ec ece
11. arks and other information pertaining to this LizardTech software About LizardTech Since 1992 LizardTech has delivered state of the art software products for managing and distributing massive high resolution geospatial data such as aerial and satellite imagery and LiDAR data Liz ardTech pioneered the MrSID technology a powerful wavelet based image encoder viewer and file format LizardTech has offices in Seattle Denver London and Tokyo and is a division of Celartem Technology Inc For more information about LizardTech visit www lizardtech com Other LizardTech Products We at LizardTech are glad to have you creating products that support our software We re confident that you will find the LizardTech LIDAR Decode SDK to be everything you need to build support for MrSID Generation 4 into your products While you re in the shop explore LizardTech s other great products for compressing managing and distributing geospatial imagery and LiDAR data GeoViewer Efficient Viewing and Exporting of MrSID and JPEG 2000 Layers GeoViewer is LizardTech s free standalone application for viewing geospatial imagery vector over lays and LIDAR data GeoViewer enables you to combine view and export visual layers from varied Sources such as local repositories Express Server catalogs and WMS and JPIP servers GeoViewer supports a wide range of input formats and exports to GeoTIFF PNG and JPEG It s the most efficient means of viewing MrSID and
12. cecceceeeees 1 SDK Contents ooo esses sess esses esee nenne 1 Architecture and Design 0 00000 c cece eee eeeeeeeeeeeeeeeeees 3 Chapter 2 Getting Started ooo coco cece 5 System Requirements o ooooooccccccccccccccccccccccoccc ccoo 5 Installation zea ondas 7 Technical Support scan o eet alae i pate e inde b qute be Eo 7 Chapter 3 The SDK Classes ooooocccoccococcccococcoconcoconcoconcncononcocinccconos 9 Thie PointSource Class 2 o dtt Loz oot e orillas 9 The PointWriter Class uuuuuuuuuuuuueeseessssese I RR ce RR RR RR cnc 10 The Buffer Management Classes 0 00 200 cece c eee cee eee e cece eee ee eee sns rr nl 11 The Pointinterator Class cie ERE ELLE DD dat eet pioo 12 Text Point Readers and Writers 2 2 2 0 022000000 c ccc cec cece eeeeeeceeeees 13 The MG4PointReader Class c cece eee eceeceeceeececeeeee 13 The Support Classes 222 220 0000 coc ccc cece ee eeeeeeeeeeeeneneeneeueeeccecuseseeees 13 The Metadata Class 2 0 22 e cece cece e Rr rer rers 14 Chapter 4 Code Examples ttLttttttttttttusssssessm eese 17 Chapter 5 MrSID Decode SDK Command Line Tools 19 Decompressing MG4 Files oooooccccccccccccccccccococcccccccccccccccccccccccccccccnoo 19 Viewing File Information 0 000 020 022 c cece ccc ce ccc cece eeeeeeeeees 21 Appendix Company and Product Information
13. e file path in the codepage For an example of MG4PointReader class usage see Chapter 4 Code Examples on page 17 The Support Classes The MrSID Decode SDK includes several supporting classes however you will probably only need to engage the I0 classes and the Bounds class The I0 Classes The SDK provides an abstract mechanism for reading and writing data These mechanism constitute the To class The Io class provides methods for opening and closing the resource reading and writing of byte arrays at a given offset in the resource and getting and setting the resource size This model is dif ferent from the UNIX stdio interfaces in that the file position is not stored in the TO object It 13 LizardTech MrSID Decode SDK User Manual mimics the POSIX pread and pwrite interfaces This model ensures the thread safety of the IO subclasses enabling you to read from the ro instances on multiple threads simultaneously The Filero Class is a concrete implementation of the IO class for reading files from and writing files to disk The Bounds Class The Bounds class defines a three dimensional bounding box used to define regions of interest This class has a one dimensional interval for each of the X Y and Z axes NOTE The one dimensional interval used by the Bounds class has member variables named min and max that may conflict with the min and max macros in Windows h To avoid this conflict we undefined the min and ma
14. ed versions of LizardTech viewer tools are available for download at no cost Support Plans http www lizardtech com purchase other php Protect your investment in LizardTech software by participating in a LizartTech support plan For more details please contact your regional LizardTech office Contacting Technical Support http www lizardtech com support LizardTech MrSID Decode SDK User Manual To contact technical support visit the website at the above URL and follow links to the LizardTech Knowledge Base or the Product Activation page A Contact Form is also provided for issues that require further assistance In an emergency call 206 902 2845 between the hours of 8 AM and 5 PM Pacific Time IMPORTANT Please have the following information available to assist in resolving your problem Which version of the MrSID Decode SDK you are running Other LizardTech products you have installed Which operating system you use How much free hard drive space your computer has How much RAM your computer has Version of compiler Copy of source code demonstrating the problem simplified as much as possible Relevant test data to allow us to reproduce the problem Copy of compiler error messages if appropriate Chapter 3 The SDK Classes This chapter describes the important classes of the MrSID Decode SDK The PointSource Class The PointSource class is the root class for accessing LIDAR data Following is a description of each of the
15. ence counting NOTE The SDKs naming conventions are patterned after those in Objective C Thread Safety The MrSID Decode SDK is thread safe Once the PointSource has been initialized any number of threads can use the PointSource instance The stateful thread specific information for the point extraction is stored inthe PointIterator Class Floating Point Quantization Quantization is a way to convert floating point values to integer values This facilitates lossless wave let compression of LIDAR data LAS files which contain floating point values are quantized as part of their storage The MG4 format quantizes because it uses an integer wavelet transform to achieve lossless compression The result is that even with the quantization LAS files can be compressed losslessly in MG4 If you are doing any error analysis you must factor the quantization scale into the error bound cal culation Quantization in the MrSID Decode SDK uses the following conversions between floating point and integer space lt floating point value gt scale lt integer value gt offset lt index value gt floor lt floating point value gt offset scale 0 5 In going from integer space to floating point space and back again using the above methods the index space values do not change This stability minimizes the conversion error Chapter 2 Getting Started This chapter provides some preliminary information to get you started using
16. extracts points out of the point cloud For each time you call getNext Points the function fills the given PointData buffer and returns the number of points that it extracted When you have extracted all the points the function retums zero 0 12 Chapter 3 The SDK Classes For an example see Chapter 4 Code Examples on page 17 Text Point Readers and Writers The simplest and most flexible way of storing LIDAR data is using column delineated text ASCII files The TXTPointReader Class This is a concrete implementation of the PointSource class for reading text files The TXTPointWriter Class This is a concrete implementation of the PointWri ter class for writing text files The MG4PointReader Class The MG4PointReader class is the class that you will use to enable your application to read LiDAR based MG4 files MG4PointReaderis a concrete implementation of the PointSource class see The PointSource Class on page 9 Opening an MG4 File There are two methods of opening an MG4 file e init with an IO object e init With a file name The first is the preferred method create a Filero object for the file name and then pass the FileIO object to MG4PointReader init see The lO Classes on page 13 The second method takes a string for the file name NOTE The string used in the second method is a native codepage string which is much simpler to use for testing but can cause problems if you can t represent th
17. itches inputFile i string Required Specifies name of input MG4 file outputFile o string Required Specifies name of output file If no file extension is provided default is to concatenate a format suffix to input file outputFormat of string Specifies output format Acceptable values are TXT LAS10 LAS11 LAS 12 Default is TXT subsample s unsigned Tells 1idardecode to subsample taking integer every n th point s 2 selects one half the file s 3 selects one third crop c FLOATO Tells 1idardecode to crop to the spe FLOAT1 cified box world coordinates x min x FLOAT2 max y min y max z min z max A value FLOAT3 of inf fora minimum or inf max FLOAT4 imum means do not crop in that direction 19 Lizard Tech MrSID Decode SDK User Manual FLOATS FLOATO FLOAT 1 FLOAT2 offset ofs outFields ofld string scale sc FLOATO FLOAT1 FLOAT2 h help version v verbose V credits Examples Continued gt Specifies the offset from which the points will be specified world coordinates x 0 y 0 z 0 Default is to use the origin of the bounding box Tells 11dardecode to include particular fields By default 1idardecode outputs all those supported by the output format and are in the input file x X point values y y point values z Z point values i intensity r return number n number of returns d scan direction e edge of fligh
18. lane and a positive scan angle value represents an angle to the starboard side Zero is nadir UserData The user data value is any integer value the user wishes to add SourceId The point source identifier identifies a file as the original source of the data GPSTime The GPS time value is the time at which a given point was sampled Red Green Blue The red green and blue values represent the color of the point lt UserDefinedChannelName gt This channel can be used by the creator of the file for any additional data they would like to include The Pointlnfo Class The PointInfo class is a group of Channel Info classes that are used to store information about all the channels of a point source This class is used to obviate passing around arrays of Chan nel Info objects and the associated array lengths which was required when using PointSource createlterator andPointData init The ChannelData Class The ChannelData class is a derived class of Channel1Info which adds a data buffer and length The PointData Class The PointData class is a group of ChannelData classes that are used in the point extraction calls PointIterator getNextPoints and PointSource read The PointInterator Class The PointIterator class is the primary class for accessing the point data in a LIDAR file To cre ate an iterator call PointSource createlterator The PointIterator class only has one public method getNextPoints which
19. le Information The MrSID Decode SDK includes a command line tool called 1idarinfo Located in the bin dir ectory 1idardinfo enables you to view the information in LAS or TXT files in text form Usage The only required parameter for LAS files is inputFile or 1 which specifies the input file name Text input files also require the parse or p parameter which describes the order of the fields You may add other options and parameters as described in the table of switches below The order of the switches in the syntax has no bearing on the output For examples of how to form a command see Example on page 22 lidarinfo Switches inputFile i string Required Specifies the name of the input file parse p string Required for text input Parse format that describes the fields in a text input file Valid values are x X point values y y point values z Z point values i intensity r return number n number of returns d scan direction e edge of flight line a scan angle c class id p source id 21 LizardTech MrSID Decode SDK User Manual metadata m bounds b skipHeader skip unsigned integer returns r classification c n 2 help version v verbose V credits Example The command lidarinfo i returns the following information Basic LiDAR Info Format Number of Points Bounds Min 22 u user data t GPS time R red
20. methods Methods for Accessing Properties Number of Points To access the number of points call PointSource getNumPoints Channels A channel is all the values for a given attribute For example the X channel is all the X values for a given point cloud To access the channel information call PointSource getNumChannels and PointSource getPointInfo For more information about channels see The Channellnfo Class on page 11 and The Pointlnfo Class on page 12 Quantization If you call the functions PointSource getScale and PointSource getOffset and NULL is returned the file is not quantized Otherwise it returns an array of doubles representing the quantization scale and offset values for the X Y and Z channels Even when the LiDAR file is quantized the X Y Z value that are extracted form the point cloud are floating point values not the integer indexes For more information about quantization see Floating Point Quantization on page 4 Metadata Metadata is auxiliary information about the point cloud stored as key value pairs Metadata can be any information the user wishes to add You can store strings arrays of floating point values and raw binary data To access the channel information call PointSource loadMetadata For more information see The Metadata Class on page 14 Classification Names The MrSID Decode SDK stores the classification name as an array of strings You can use the
21. ocument Copyrights Trademarks and Credits paf inthe top level dir ectory Headers and Libraries Headers The header files for the MrSID Decode SDK are located in subdirectories under the include dir ectory The Reference Manual provides full documentation for these headers Libraries The libraries for the SDK are located in the 1 ib directory Sample Applications Command line tools Several tools are provided in the bin directory to aid in development debugging and testing For information on using these tools see Chapter 5 MrSID Decode SDK Command Line Tools on page 19 Example Code A number of example functions are included in the directory examples src The test files used by these examples are located in examples data The Reference Manual provides additional inform ation about these examples NOTE As afurther resource sample LiDAR images are available for you to work with at http bin us lizardtech com lidar LT LIDAR Sample Data zip Language Bindings We have added experimental language bindings for C Python and Ruby They are located in the dir ectory contributions SWIG Please see the README txt in that directory for more details Architecture and Design This section provides an overview of the architecture and some insight into the design philosophy of LizardTech s MrSID Decode SDK Basic Terminology Point A location in three dimensional 3D space with non optional attribute
22. ode 4 5 2 e Supports iOS 4 3 and higher ARM v7 ARM v7s and x86 simulator iOS 7 Universal e built on Mac OS 10 8 Clang 5 0 Xcode 5 0 e Supports iOS 7 and higher ARM v7 ARM v7s ARM64 and x86 simulator Chapter 2 Getting Started Installation No specific installation is required to use the MrSID Decode SDK beyond copying the SDK contents from the media provided CD ISO CD image archive from FTP site etc to your local computer Technical Support Most technical issues can be resolved using the various resources you have available In addition to the product documentation and the README file LizardTech offers a knowledge base and product updates on the LizardTech website Knowledge Base http www lizardtech com support kb The LizardTech Knowledge Base contains articles about known technical and usage issues and is fre quently updated Developer Website http developer lizardtech com The LizardTech Developer Website provides you with the tools you need to support viewing MrSID format within your application downloadable SDKs technical notes and documentation and a link to additional email support Community Forums http www lizardtech com forums The forums are a place to engage in intelligent discourse with the geospatial community Ask ques tions provide answers and share product usage tips with other Lizardtech customers around the world Product Updates http www lizardtech com products Updat
23. s X Y Z and optional attributes such as scan angle pulse intensity and color Channel All the values for a given attribute For example the X channel is all the X values for a given point cloud Class Hierarchy The MrSID Decode SDK is designed around two major classes objects that are sources of LiDAR point data and objects that are destinations of LIDAR point data The sources are derived from the PointSource class and the destinations are derived from the PointWriter class Forthe SDK we deal mainly with he PointSource class The most interesting subclass of the PointSource class is MG4PointReader The PointSource has two types of methods The first is for getting properties about the point cloud and the other type is for accessing the point cloud itself either the entire cloud or subsets thereof Specifying a Region of Interest When extracting points from the point cloud you must specify the region you wish to extract from which we call the region of interest The MrSID Decode SDK uses a bounding box to specify the region of interest If you wish to extract all the points in a point cloud you may do it in either of two ways e use the bounding box of the point source e Use HUGE VAL infinity to HUGE VAL tinfinity for the X Y and Z ranges Using a bounding box generally defines far more points than a user needs so when extracting points from a cloud you must also specify the fraction of the point cloud that yo
24. s the bounding box of the of length 6 original LAS file if the source was a LAS file lt LAS VLR User ID Re BLOB The method we use to store cord ID unrecognized variable length records VLRs from LAS files 15 Chapter 4 Code Examples The MrSID Decode SDK includes code samples that demonstrate the use of the SDK s different inter faces The following C cpp files are located in your examples src directory Code example files and what they demonstrate UserTutorial cpp Opening MG4 files Using the PointIterator to access the point cloud Using PointSource read toaccess a fixed number of points DumpMG4Info cpp Accessing the point cloud properties Displaying metadata DecodeMG4ToTXT cpp Using a PointWriter class IterateOverPoints cppUsingaPointIterator Accessing channel values from a PointData object support cpp Using the Filero class UserTest cpp Enables you to add your own test code to explore the SDK Below we walk through the User Tutorial cpp example The following code opens an MG4 file FileIO file FilelO create file init data Tetons 200k sid r MG4PointReader pointSource MG4PointReader create pointSource gt init file file release Now that the file is initialized you can access the properties of the point cloud using the following code PointSource count type numPoints pointSource gt getNumPoints size t numChannels pointSource getNumChannels
25. signed integer etc stored as a DataType enum e number of bits of precision NOTE Forfloating point data types the number of bits of precision is the number of bits you need to store the quantized point value as an integer for more information see Floating Point Quant ization on page 4 The MrSID Decode SDK handles the following channels Standard Channels X Y and Z Required The X Y and Z values specify the physical location of the point Intensity Intensity is the integer representation of the pulse return magnitude ReturnNum The return number is a number that uniquely and sequentially identifies each return from a given output pulse NumReturns The number of returns is the total number of returns from an output pulse ScanDir The scan direction is the direction at which the scanner mirror was traveling at the time of the output pulse EdgeFlightLine The edge of flight line value is the last point on a given scan line before it changes direction The edge of flight line has a value of 1 only when the point is at the end of a scan when the mirror is not moving ClassId The classification identifier is an index into the 11 LizardTech MrSID Decode SDK User Manual ClassIdName array ofthe PointSource instance Continued gt ScanAngle The scan angle is an integer representation of the angle off of nadir at which the pulse was output Negative scan angle value represents an angle to the port side of the p
26. t MrSID files that retain 100 percent of the raw data at just 25 percent or less of the original file size lossless compression If storage requirements are critical you can reduce your LiDAR file sizes by 90 percent or more by choosing a higher compression ratio and letting LiDAR Compressor select the best way to reach a desired file size lossy compression Unlike raw LAS or ASCII data LiDAR files compressed to MrSID are easily managed resources you can extract derivatives from again and again For more information about LiDAR Compressor visit www lizardtech com products lidar Express Server Image Delivery Software for Geospatial Workflows LizardTech Express Server software is the best solution for distributing imagery in MrSID or JPEG 2000 format With Express Server users on any device access imagery faster even over low band width connections Express Server is faster more stable and easier to use than any other solution for delivering high resolution raster imagery For more information about Express Server visit http www lizardtech com products exp 26 Index A Architecture and design 3 B Buffer management classes 11 C Class hierarchy 3 Code examples 17 Command line tools 19 lidardecode 19 lidarinfo 21 Contents 1 D Decompressing MG4 files 19 F Floating point quantization 4 Installation 7 L Language bindings 2 lidardecode 19 lidarinfo 21 LizardTech 25 M Metadata class 14
27. t line a scan angle c class id p source id u user data t GPS time R red G green B blue Specifies the scale or precision factor x scale y scale z scale Defaultis 0 001 0 001 0 001 Displays a short usage message Displays a detailed usage message Displays version information Tells 1idardecode to display more verb ose error messages Displays credits and copyrights The following command uses the minimum required parameters and decodes to a text file called Exp D2 1 txt lidardecode i E Data localTestImages Exp D2 1 sid o Exp D2 1 txt 20 Chapter 5 MrSID Decode SDK Command Line Tools The following command produces the same result as the previous one but because the user wants to change the output file name the o parameter has been included and the text output is explicitly called for lidardecode i E Data localTestImages Exp D2 1 sid o E Data localTestImages Exp D2 2 txt The following command decodes to a LAS file lidardecode i E Data localTestImages Exp D2 1 sid o E Data localTestImages Exp D2 1 las The following command decodes to a text file called Exp_D2_1 xyz any extension other than las results in a text file and limits the data in the file to four fields GPS time x y and z lidardecode i E Data localTestImages Exp D2 1 sid o E Data localTestImages Exp D2 1 xyz ofld txyz Viewing Fi
28. the MrSID Decode SDK The code examples see Chapter 4 Code Examples on page 17 should give you enough inform ation to determine what level of SDK support your own application will require System Requirements The MrSID Decode SDK is a set of C libraries that must be used in conjunction with the specific development environment for your platform The supported configurations are listed below For SDK usage LizardTech recommends the use of hardware that is at least the equivalent of a 2GHz PC processor with 2 GB of RAM NOTE Each SDK distribution is supported on only a single target platform Please contact Liz ardTech for additional distributions for other platforms Windows Windows Visual Studio 2008 32 bit e built on Windows 2003 VC9 0 32 bit e Supports Windows 2003 32 bit Windows XP 32 bit Windows Vista 32 bit Win dows Server 2008 32 bit Windows 7 32 bit Windows 8 32 bit Windows Visual Studio 2008 64 bit e built on Windows 2003 VC9 0 64 bit e Supports Windows 2003 64 bit Windows XP 64 bit Windows Vista 64 bit Win dows Server 2008 64 bit Windows 7 64 bit Windows 8 64 bit Windows Server 2012 64 bit Windows Visual Studio 2010 32 bit e built on Windows 2003 VC 10 0 32 bit e Supports Windows 2003 32 bit Windows XP 32 bit Windows Vista 32 bit Win dows Server 2008 32 bit Windows 7 32 bit Windows 8 32 bit Windows Visual Studio 2010 64 bit e built on Windows 2003 VC 10 0
29. u wish to extract For example if you only want every 20th point specify 0 05 1 20 as the fraction value Use 1 0 when you want all the points Point Cloud Data Buffers When extracting points we use the PointData class to pass around parts of the point cloud among functions This class is a group of channel buffers for the channels that are to be extracted see The Buffer Management Classes on page 11 Programming and Memory Model The MrSID Decode SDK separates object allocation and object initialization This means the con structors do not take arguments and classes have one or more init methods This makes it easier to work with exceptions and to chain object constructors LizardTech MrSID Decode SDK User Manual The SDK chooses to use reference counting for objects with long or unknown life spans The base class for reference counting is Object Its methods Object retain and Object re lease increment and decrement the reference counter Functions and methods that start with cre ate create a new reference counted object with a count of one It is the responsibility of the create caller to release the object when done with it using Object release When you retain a pointer to an Object you must retain the object using Object retain until that pointer goes out of scope at which time you must release the object Seehttp en wikipedia org wiki Reference counting for more information on ref er
30. ve the metadata from the source modify it as necessary and then pass it to the writer using PointWriter setMetadata You can also retrieve the metadata for viewing by calling PointWriter getMetadata Quantization LAS and MG4 files require quantization By default the writer uses the same quantization as the input point source see Quantization on page 9 However you can override that behavior by setting quantization explicitly using PointWriter setQuantization Formore information about quantization see Floating Point Quantization on page 4 To access the quantization of the output file you can use PointWriter getScale and PointWriter getOffset NOTE These functions will return NULL if the input data is not quantized 10 Chapter 3 The SDK Classes Writing the File To write the output file call PointWriter write This function writes to a file the point cloud for a given bounds fraction and set of channels see Specifying a Region of Interest on page 3 The Buffer Management Classes When extracting points we use the PointData class to pass around parts of the point cloud among functions This class is a group of ChannelData classes for the channels that are to be extracted The Channellnfo Class A channel is all the values for a given attribute For example the X channel is all the X values for a given point cloud The three aspects of a channel are e name e datatype floating point
31. x macros The Metadata Class The Metadata class is a container for storing metadata about the point cloud It is a key value pair container that you can use to store strings arrays of floating point values and raw binary data BLOBs Each key value pair has the following properties e key name e description optional e datatype string reals or BLOB stored as aMetadataDataType enum e values and length For a table of code examples included the SDK see Chapter 4 Code Examples on page 17 Known Metadata Key Names The MrSID Decode SDK recognizes six fixed metadata key names and one key pattern but will accept any name The seven recognized names are listed in the following table Metadata Key Names Name Data Type Description FileSourceID string Identifies the source of the data ProjectID string Identifies the project that the data was acquired for SystemID string Identifies the hardware system or the method by which the file was made GeneratingSoftware string The software that created the file FileCreationDate string Date the file was created in the form yyyy mm dd 14 Chapter 3 The SDK Classes Name Data Type Description PointRecordsByReturnCount array of reals Contains an array of point counts per return PreCompressionPointCount array of reals Used to store the number of oflength 1 points that were in the input file before itwas com pressed decimated LAS BoundingBox array of reals Store
Download Pdf Manuals
Related Search
Related Contents
三菱ふそうトラック・バス株式会社 様独自 iPad アプリ導入で営業力を NEC 1980FXi Computer Monitor User Manual Dell Management Plug-in for VMware vCenter 1.7 Reference Guide User Manual Fibre Channel Adapter VxWorks ソフトウェアの評価技術 に関する標準化 成 果 報 告 書 Juin 2015 1 - British Geological Survey SmartLink Dementia & Patient Profiler INSTALLATION MANUAL Lever One Printer Server User Manual 22/10/2011 : 2.021 - Bauru - Governo do Estado de São Paulo Copyright © All rights reserved.
Failed to retrieve file