2017-10-01 9 views
0

안녕하세요, Tiff 파일을 수십 개의 배열로 변환하는 데 문제가 있습니다. 16 비트의 서명 된 래스터 파일을 가지고 있으며이를 numpy 배열로 변환하려고합니다. 이 gdal 라이브러리에 사용하고 있습니다. 언뜻Tiff to array - 오류

import numpy 
from osgeo import gdal 
ds = gdal.Open("C:/.../dem.tif") 
dem = numpy.array(ds.GetRasterBand(1).ReadAsArray()) 

은 모든 것을 잘 변환,하지만 난 GIS 소프트웨어의 결과 파이썬에서 얻은 결과를 비교 내가 다른 결과를 얻었다.

파이썬 결과 I 91 278 (실제 최소 및 최대 값) 이하 NumPy와 배열에 많은 값을 발견

Arcmap result

Python result

ArcMap의 결과 존재하지 않아야합니다.

+0

실제 이미지는 파이썬에서 어떻게 보입니까? 'matplotlib.pyplot.imshow (dem)'를 사용할 수 있습니다. –

답변

1

GDAL은 이미 Numpy 배열을 반환하고 np.array에 배치하면 기본적으로 해당 배열의 복사본이 만들어집니다. 불필요한 성능 저하입니다. 그냥 사용

dem = ds.GetRasterBand(1).ReadAsArray() 

또는 그 경우 하나의 밴드 래스터를 단순히 :

dem = ds.ReadAsArray() 

이 통계를 Regading, 당신은 ArcMap의 절대 높은/낮은 값을 보여줍니다 확신? 예를 들어 QGIS는 데이터 집합의 샘플 (성능)에 대한 통계를 가져오고 설정에 따라 백분위 수 (예 : 1 %, 99 %)를 사용하는 경우가 종종 있습니다.

편집 : BTW, 이것이 공개 데이터 세트입니까? SRTM 타일처럼? 소스를 나열하면 도움이 될 수 있습니다.