如何通过 gdal 获取每个像素的高程?
How to get elevation of every pixel by gdal?
我通过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]]
这是什么意思?数据不全?
有人能帮我吗?
提前致谢。
这只是您在光栅波段上调用 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)
我通过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]]
这是什么意思?数据不全? 有人能帮我吗? 提前致谢。
这只是您在光栅波段上调用 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)