lasFileReader
LAS 파일 또는 LAZ 파일에서 포인트 클라우드 데이터 읽어오기
설명
lasFileReader
객체는 LAS 파일 또는 LAZ 파일에 존재하는 메타데이터를 읽기 전용 속성으로 저장합니다. 객체 함수 readPointCloud
는 이러한 속성을 사용하여 파일에서 포인트 클라우드 데이터를 읽어옵니다. lasFileReader
객체는 LAS 1.4 사양까지 지원합니다.
LAS 파일은 공개 헤더를 포함합니다. 공개 헤더에는 라이다 메타데이터가 있으며 그 뒤에 라이다 점 레코드가 이어집니다. 각 점 레코드는 3차원 좌표, 강도, GPS 타임스탬프와 같은 특성을 포함합니다.
LAS 파일 형식은 ASPRS(American Society for Photogrammetry and Remote Sensing)에서 개발하고 관리하는 라이다 데이터 저장용 산업 표준 이진 형식입니다. LAZ 파일 형식은 LAS 파일 형식의 압축 버전입니다.
생성
설명
속성
객체 생성 후에는 이 속성은 읽기 전용입니다. 이 속성을 설정하려면 lasFileReader
함수 호출 시 fileName
인수를 사용하십시오.
LAS 파일 또는 LAZ 파일의 이름으로, 문자형 벡터 또는 string형 스칼라로 지정됩니다.
읽기 전용 속성입니다.
파일에서 사용 가능한 점 레코드 개수로, 양의 정수로 나타냅니다.
읽기 전용 속성입니다.
LAS 파일 버전 또는 LAZ 파일 버전으로, 문자형 벡터로 나타냅니다.
읽기 전용 속성입니다.
x축상의 좌표 범위로, 요소를 2개 가진 실수 값 행 벡터로 나타냅니다.
읽기 전용 속성입니다.
y축상의 좌표 범위로, 요소를 2개 가진 실수 값 행 벡터로 나타냅니다.
읽기 전용 속성입니다.
z축상의 좌표 범위로, 요소를 2개 가진 실수 값 행 벡터로 나타냅니다.
R2025a 이후
읽기 전용 속성입니다.
XYZ 좌표의 스케일로, [Xscale Yscale Zscale] 형식의 요소를 3개 가진 실수 값 행 벡터로 나타냅니다. Xscale, Yscale, Zscale은 각각 X축, Y축, Z축 상의 스케일을 나타냅니다.
R2025a 이후
읽기 전용 속성입니다.
XYZ 좌표의 오프셋으로, [Xoffset Yoffset Zoffset] 형식의 요소를 3개 가진 실수 값 행 벡터로 나타냅니다. Xoffset, Yoffset, Zoffset은 각각 X축, Y축, Z축 상의 오프셋을 나타냅니다.
R2025a 이후
읽기 전용 속성입니다.
사용 가능한 특성 목록으로, string형 배열로 나타냅니다. 이 속성을 사용하여 파일에 존재하는 모든 특성을 식별합니다. 또한 readPointCloud
객체 함수를 사용하여 사용 가능한 모든 특성을 읽어올 수 있습니다.
읽기 전용 속성입니다.
GPS 타임스탬프 측정값의 범위로, 1×2 duration
벡터로 나타냅니다.
참고
이 속성의 값은 즉시 사용 가능하지 않습니다. lasFileReader
객체인 lasReader
에 대해 이 속성을 가져오려면 명령 창에 lasReader.GPSTimeLimits
를 입력하십시오. 이 명령은 또한 이 객체의 NumClasses
속성과 ClassificationInfo
속성을 채웁니다.
읽기 전용 속성입니다.
모든 점 레이저 반환의 최대 개수로, 양의 정수로 나타냅니다.
읽기 전용 속성입니다.
모든 점 분류 값의 최대 개수로, 양의 정수로 나타냅니다.
참고
이 속성의 값은 즉시 사용 가능하지 않습니다. lasFileReader
객체인 lasReader
에 대해 이 속성을 가져오려면 명령 창에 lasReader.NumClasses
를 입력하십시오. 이 명령은 또한 이 객체의 GPSTimeLimits
속성과 ClassificationInfo
속성을 채웁니다.
읽기 전용 속성입니다.
LAS 파일을 생성한 하드웨어 센서 시스템 식별자의 이름으로, string형 스칼라로 나타냅니다.
읽기 전용 속성입니다.
생성 소프트웨어의 이름으로, string형 스칼라로 나타냅니다. 이 속성은 LAS 파일이 만들어졌을 때 사용된 생성 소프트웨어 패키지를 지정합니다.
읽기 전용 속성입니다.
파일 생성 날짜로, datetime
객체로 나타냅니다.
읽기 전용 속성입니다.
LAS 파일 소스 식별자로, 음이 아닌 정수로 나타냅니다. 값은 범위 0~65535 내에 있어야 합니다. 이 파일이 원래의 비행 노선에서 만들어진 경우 이 값은 비행 노선 번호를 정의합니다. 값 0은 ID가 할당되지 않았음을 지정합니다. ProjectID
속성과 FileSourceID
속성을 사용하여 LAS 파일에서 각 점을 고유하게 식별합니다.
읽기 전용 속성입니다.
프로젝트 ID로, string형 스칼라로 나타냅니다. 이 값은 GUID(전역 고유 식별자)입니다. ProjectID
속성과 FileSourceID
속성을 사용하여 LAS 파일에서 각 점을 고유하게 식별합니다.
읽기 전용 속성입니다.
PDRF(Point Data Record Format) ID로, 음이 아닌 정수로 나타냅니다. 값은 범위 0~10 내에 있어야 합니다. 자세한 내용은 PDRF(Point Data Record Format) 항목을 참조하십시오.
읽기 전용 속성입니다.
분류 정보로, 테이블로 나타냅니다. 테이블의 각 행은 점 클래스를 설명하는 다음 정보를 포함합니다.
Classification Value
— 클래스에 대한 고유한 분류 ID 번호로, 양의 정수로 나타냅니다.Class Name
— 클래스와 연결된 레이블로, string형 스칼라로 나타냅니다.Number of Points by Class
— 클래스에 있는 점의 개수로, 양의 정수로 나타냅니다.
참고
이 속성의 값은 즉시 사용 가능하지 않습니다. lasFileReader
객체인 lasReader
에 대해 이 속성을 가져오려면 명령 창에 lasReader.ClassificationInfo
를 입력하십시오. 이 명령은 또한 이 객체의 GPSTimeLimits
속성과 NumClasses
속성을 채웁니다.
읽기 전용 속성입니다.
레이저 반환 정보로, 테이블로 나타냅니다. 테이블의 각 행은 레이저 반환을 설명하는 다음 정보를 포함합니다.
Laser Return Number
— 레이저 반환 번호로, 양의 정수로 나타냅니다.Number of Points by Return
— 레이저 반환당 점의 개수로, 양의 정수로 나타냅니다.
읽기 전용 속성입니다.
VLR(가변 길이 레코드) 정보 또는 확장된 VLR 정보로, 테이블로 나타냅니다. 테이블의 각 행은 레코드를 설명하는 다음 정보를 포함합니다.
Record ID
— 레코드 식별 번호로, 양의 정수로 나타냅니다.User ID
— 레코드 ID와 연결된 사용자 ID로, string형 스칼라로 나타냅니다.Description
— 레코드 설명으로, string형 스칼라로 나타냅니다.
객체 함수
readPointCloud | Read point cloud data from LAS or LAZ file |
readCRS | Read coordinate reference system data from LAS or LAZ file |
readVLR | Read variable length record from LAS or LAZ file |
예제
이 예제에서는 LAS/LAZ 파일에서 포인트 클라우드 데이터를 읽어오고 시각화하는 방법을 보여줍니다.
LAZ 파일에 대한 lasFileReader
객체를 만듭니다. 그런 다음 readPointCloud
함수를 사용하여 LAZ 파일에서 포인트 클라우드 데이터를 읽어오고 pointCloud
객체를 생성합니다.
LAZ 파일 데이터에 액세스하기 위해 lasFileReader
객체를 만듭니다.
filepath = fullfile(toolboxdir("lidar"),"lidardata", ... "las","aerialLidarData.laz"); lasReader = lasFileReader(filepath);
readPointCloud
함수를 사용하여 LAZ 파일에서 포인트 클라우드 데이터를 읽어옵니다.
ptCloud = readPointCloud(lasReader);
포인트 클라우드를 시각화합니다.
figure pcshow(ptCloud.Location)
LAZ 파일의 분류 데이터를 기반으로 포인트 클라우드 데이터를 분리하고 시각화합니다.
LAZ 파일의 데이터에 액세스하기 위해 lasFileReader
객체를 만듭니다.
path = fullfile(toolboxdir("lidar"),"lidardata", ... "las","aerialLidarData.laz"); lasReader = lasFileReader(path);
readPointCloud
함수를 사용하여 LAZ 파일에서 포인트 클라우드 데이터와 관련 분류 점 특성을 읽어옵니다.
[ptCloud,pointAttributes] = readPointCloud(lasReader,"Attributes","Classification");
분류 특성에 따라 점에 색을 지정합니다. 레이블 영상을 포인트 클라우드의 형태로 변경합니다.
labels = label2rgb(pointAttributes.Classification); colorData = reshape(labels,[],3);
색으로 구분된 포인트 클라우드를 시각화합니다.
figure pcshow(ptCloud.Location,colorData)
세부 정보
LAS 파일에는 레코드에 대한 공개 헤더 블록과 선택적 메타데이터 정보뿐만 아니라, 포인트 클라우드 데이터도 점 데이터 레코드의 모음으로 포함되어 있습니다. 공개 헤더 블록은 점 데이터 레코드 형식은 물론, LAS 파일의 점 개수 및 점 데이터 범위도 나타냅니다.
현재 LAS 1.4 사양의 경우, PDRF 0부터 PRDF 10까지 11개의 PRDF(Point Data Record Format) 형식이 있으며 다음과 같이 두 주요 그룹으로 나뉩니다.
PDRF 0부터 PDRF 5까지 — 이러한 PDRF 형식에는 핵심 정보인 20바이트가 포함되며, 형식 1~5의 경우 GPS 시간, 색 채널 또는 파형 패킷에 대한 선택적 정보가 추가됩니다.
PDRF 6부터 PDRF 10까지 — 이러한 PDRF 형식에는 핵심 정보인 30바이트가 포함되며, 형식 7~10의 경우 색 채널, 근적외선 또는 파형 패킷에 대한 선택적 정보가 추가됩니다.
LAS 파일 사양의 각 버전에 사용 가능한 점 데이터 레코드 형식을 비롯한 자세한 내용은 ASPRS LASER (LAS) File Format Exchange Activities 페이지를 참조하십시오.
버전 내역
R2020b에 개발됨lasFileReader
객체에는 다음의 추가 속성이 포함되어 있어서, 입력 LAS 및 LAZ 파일로부터 XYZ 좌표의 스케일 값과 오프셋 값을 읽어올 수 있습니다.
Scale
Offset
이 객체는 Attributes
속성도 포함하고 있습니다. 입력 LAS 또는 LAZ 파일에서 사용 가능한 특성의 목록을 가져오려면 이 속성을 사용하십시오.
lasFileReader
함수로 lasFileReader
객체를 생성할 때의 성능이 향상되었습니다. 입력 LAS 또는 LAZ 파일에서 사용 가능한 점 레코드의 개수가 많을수록 성능 향상이 더욱 커집니다. 예를 들어 다음 코드는 이전 릴리스에 비해 약 118배 더 빠릅니다.
function t = timingTest pcfile = fullfile(toolboxdir("lidar"),"lidardata","las","aerialLidarData.laz"); lasReader = @()lasFileReader(pcfile); t = timeit(lasReader); end
대략적인 실행 시간은 다음과 같습니다.
R2024b: 0.39초
R2025a: 0.0033초
이 코드의 실행 시간은 함수 timingTest
를 호출하여 Windows® 10, Intel® Xeon® Gold 6240R CPU@ 2.40GHz 테스트 시스템에서 측정되었습니다.
이 객체는 생성 직후에 GPSTimeLimits
, NumClasses
, ClassificationInfo
속성을 바로 채우지 않기 때문에 향상된 성능을 제공합니다. 따라서 이전 릴리스와 달리 이 객체의 생성 시간은 입력 파일의 점 레코드의 개수와 무관합니다. 이들 속성을 채우려면 그중 하나를 표시하거나 추출하십시오. 예를 들어 이 명령을 사용하여 lasFileReader
객체인 lasReader
의 GPSTimeLimits
속성을 표시하고, 이 객체의 NumClasses
속성과 ClassificationInfo
속성도 채우십시오.
lasFileReader
객체의 다음과 같은 객체 함수는 향후 릴리스에서 제거될 예정입니다.
hasCRSData
— LAS 파일 또는 LAZ 파일에서 CRS 데이터가 있는지 검사하려면hasCRSData(lasReader)
대신~isempty(readCRS(lasReader))
를 사용하십시오.hasGPSData
— LAS 파일 또는 LAZ 파일에서 GPS 데이터가 있는지 검사하려면hasGPSData(lasReader)
대신any(lasReader.Attributes == "GPSTimeStamp")
를 사용하십시오.hasWaveformData
— LAS 파일 또는 LAZ 파일에서 파형 데이터가 있는지 검사하려면hasWaveformData(lasReader)
대신any(lasReader.Attributes == "WaveformData")
를 사용하십시오.hasNearIRData
— LAS 파일 또는 LAZ 파일에서 근적외선 데이터가 있는지 검사하려면hasNearIRData(lasReader)
대신any(lasReader.Attributes == "NearIR")
을 사용하십시오.
lasFileReader
객체가 다음과 같은 추가 속성을 포함합니다.
SystemIdentifier
GeneratingSoftware
FileCreationDate
FileSourceID
ProjectID
PointDataFormat
ClassificationInfo
LaserReturnInfo
VariableLengthRecords
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
웹사이트 선택
번역된 콘텐츠를 보고 지역별 이벤트와 혜택을 살펴보려면 웹사이트를 선택하십시오. 현재 계신 지역에 따라 다음 웹사이트를 권장합니다:
또한 다음 목록에서 웹사이트를 선택하실 수도 있습니다.
사이트 성능 최적화 방법
최고의 사이트 성능을 위해 중국 사이트(중국어 또는 영어)를 선택하십시오. 현재 계신 지역에서는 다른 국가의 MathWorks 사이트 방문이 최적화되지 않았습니다.
미주
- América Latina (Español)
- Canada (English)
- United States (English)
유럽
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)