4
GDAL을 사용하여 geotiff 파일을로드 중입니다. 나는 좌표 X, Y를 읽을 수 있었지만 높이는 읽을 수 없었다.geotiff에서 gdal python을 사용하여 입면도 읽기
이전에 비슷한 사례를 경험 한 사람이 있습니까?
감사합니다,
GDAL을 사용하여 geotiff 파일을로드 중입니다. 나는 좌표 X, Y를 읽을 수 있었지만 높이는 읽을 수 없었다.geotiff에서 gdal python을 사용하여 입면도 읽기
이전에 비슷한 사례를 경험 한 사람이 있습니까?
감사합니다,
당신이 원하는 경우는 A NumPy와 배열에 높이 값을 모두 읽고, 당신은 일반적으로 같은 것을 할 거라고 :
from osgeo import gdal
gdal.UseExceptions()
ds = gdal.Open('test_data.tif')
band = ds.GetRasterBand(1)
elevation = band.ReadAsArray()
print elevation.shape
print elevation
elevation
는 2D NumPy와 배열이됩니다 . 당신이 값의 빠른 플롯을하고 싶은 경우에 당신은 matplotlib
를 사용할 수 있습니다
import matplotlib.pyplot as plt
plt.imshow(elevation, cmap='gist_earth')
plt.show()
당신이 적절한 * X, Y 좌표 플롯을보고 싶은 경우에, 당신은 뭔가를 할 것 이와 유사한 :
nrows, ncols = elevation.shape
# I'm making the assumption that the image isn't rotated/skewed/etc.
# This is not the correct method in general, but let's ignore that for now
# If dxdy or dydx aren't 0, then this will be incorrect
x0, dx, dxdy, y0, dydx, dy = ds.GetGeoTransform()
x1 = x0 + dx * ncols
y1 = y0 + dy * nrows
plt.imshow(elevation, cmap='gist_earth', extent=[x0, x1, y1, y0])
plt.show()
감사합니다, 그것은 완벽하게 작동합니다! – user3548574
'elevation = ds.ReadAsArray()'를 사용하여 모든 밴드를 한 번에 읽을 수도 있습니다. –
@ user3548574, 스택 오버플로에 오신 것을 환영합니다! 이것이 도움이된다면, [답변 수락] (http://meta.stackoverflow.com/a/5235)을 통해 커뮤니티에 알릴 수 있습니다. – falsetru