我通过gdal
阅读了一个img文件。我想获得每个像素的高程。
但是我得到的数据是这样的
[[1551 1551 1553 ... 1388 1387 1386]
[1552 1551 1551 ... 1385 1383 1383]
[1551 1548 1549 ... 1386 1381 1380]
...
[2047 2049 2046 ... 531 526 528]
[2016 2035 2051 ... 524 522 525]
[1982 2003 2025 ... 518 518 518]]
这是什么意思?数据不完整? 有人能帮我吗? 预先感谢。
答案 0 :(得分:0)
这仅仅是您在光栅带上致电print()
所获得的印刷品吗?
您的数据可能是正确的,但是当您打印np.array时,通常会裁剪掉它,以使您无法全部显示数据。
这只是意味着...
之间有很多值,但不会显示这些值。
由于图像可能很大,因此我不确定显示这样的值是否有意义?我认为您应该考虑对其进行可视化。
我通常使用qgis来可视化地理空间栅格,基本上您应该能够将图像拖放到其中以查看数据。
但是您当然也可以通过matplotlib可视化您感兴趣的图像部分
如果您真的喜欢打印的值
但是,您可以使用两个选项来查看整个打印件。
1)如果要将值保存到文本文件,请使用np.savetext
如果您在名为x
的变量中包含值,则可以使用
np.savetxt("values.txt", x)
2)您可以通过设置threshold printoption来允许numpy打印所有内容。您可以在导入numpy之后或打印之前进行设置。同样,如果我们希望您的数据位于x
中。
import numpy as np
np.set_printoptions(threshold=np.nan)
print(x)
如果您希望将其写入文件,则可以这样做
import numpy as np
np.set_printoptions(threshold=np.nan)
with open('values.txt', 'w') as f:
print(x, file=f)