Как получить высоту каждого пикселя по GDAL? - PullRequest
0 голосов
/ 10 сентября 2018

Я читаю файл img gdal. И я хочу получить высоту каждого пикселя. Но данные, которые я получил, как это

[[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]]

Что это значит? Неполные данные? Кто-нибудь может мне помочь? Заранее спасибо.

1 Ответ

0 голосов
/ 11 сентября 2018

Это просто распечатка, полученная при вызове print() на вашем растровом диапазоне?

Ваши данные, вероятно, верны, однако, когда вы печатаете массив np.array, он обычно обрезается, чтобы не показывать вам все данные.

Это просто означает, что между ... имеется много значений, но он не печатает значения.

Посколькуизображение, вероятно, огромно, я не уверен, что имеет какой-то смысл показывать эти значения, как это?Я думаю, вам стоит взглянуть на его визуализацию.

Я обычно использую qgis для визуализации геопространственных растров, вы должны иметь возможность перетаскивать в него свое изображение и видеть ваши данные.

Однако вы, конечно, можете также визуализировать интересующую вас часть изображения с помощью matplotlib

Если вам действительно интересны печатные значения

Однако вы можете использовать две опции для просмотра всего отпечатка.

1) Если вы хотите сохранить значения в текстовом файле, используйте np.savetext

Если у вас есть значения в переменной с именем x, это можно сделать с помощью np.savetxt("values.txt", x)

2) Вы можете разрешить 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)
...