>

laspy를 사용하여 LIDAR 데이터 블록에 나타나는 고유 한 비행 노선에 대한 정보를 얻으려고합니다.

이미 전체 블록에 대해 lasInfo 모듈을 실행하려고 시도했지만 필요한 것은 개별 비행 노선 목록이 아닌 최소 및 최대 point_source_ID 값입니다.

지금까지 시도한 것입니다 :

import laspy
import glob
las_files_list = glob.glob(r'PATH\*.las')
print(las_files_list)
las_source_id_set = set()
for f in las_files_list:
    las_file = laspy.file.File(f, mode='r')
    las_source_id_list = las_file.pt_src_id

    for i in las_source_id_list:
        las_source_id_set.add(i)
    las_file.close()
    print(las_source_id_set,' ', f)
print(las_source_id_set)
with open('point_source_id.txt', 'w') as f:
    f.write(las_source_id_set)

불편하게도 전체 프로세스는 다소 느리고 데이터 세트가 클수록 스택 오버플로 오류가 발생하고 결국 '파일 쓰기'부분에 도달하지 못합니다.

  • 답변 # 1

    파이썬에서 루프를 수행하기 때문에 프로세스가 예상보다 느립니다. 프로세스를 더 빠르게 만드는 데 사용할 수있는 numpy 함수가 있습니다 : numpy.unique

    스크립트가됩니다 :

    import laspy
    import glob
    import numpy as np
    las_files_list = glob.glob(r'PATH\*.las')
    print(las_files_list)
    las_source_id_set = set()
    for f in las_files_list:
        with laspy.file.File(p) as las:
            las_source_id_set.update(np.unique(las.pt_src_id))
    
        print(las_source_id_set,' ', f)
    print(las_source_id_set)
    with open('point_source_id.txt', 'w') as f:
        f.write(las_source_id_set)
    
    

  • 이전 corda-node-driver가있는 Cordapp 구성 파일
  • 다음 java - 스프링 배치 - horked csv 파일을 구문 분석하는 방법은 무엇입니까?