Изменение значений для ndarray в зависимости от состояния другого ndarray той же формы - PullRequest
0 голосов
/ 13 декабря 2018

Итак, у меня есть два ndarray, один содержит значения ndvi, другой содержит температуру

Условие состоит в том, что для всех пикселей с температурой, превышающей 25% всех температур, значение ndvi его пикселядолжен быть изменен на np.nan.

Так что я в настоящее время использую: temp [temp> T_25] = np.nan (который только устанавливает temp для nan). Мне просто нужно найти индекс ввыше и применимо к ndvi?

Я пытался сгладить его и использовать np.where (temp [temp> T_25]), но, похоже, он просто дает мне пустой массив.

как выглядит tempнапример, после изменения 75% перед сглаживанием:

[[      nan       nan       nan ...       nan       nan       nan]
 [      nan       nan 229.3249  ...       nan       nan       nan]
 [229.35771 229.32663 229.28688 ...       nan       nan       nan]
 ...
 [229.09474 229.14499 229.17618 ...       nan       nan       nan]
 [229.1779  229.27306 229.27135 ...       nan       nan       nan]
 [229.30244       nan 229.33873 ...       nan       nan       nan]]

предположим, что я хочу, чтобы эти nan были в ndvi ... форма (600,400)

Спасибо за прочтение.Любая помощь будет высоко ценится.

1 Ответ

0 голосов
/ 13 декабря 2018

Ваша строка temp[temp > T_25] = np.nan почти верна.Вам просто нужно изменить индексируемый массив на ndvi:

ndvi[temp > T_25] = np.nan

Должен делать то, что вы хотите.

Вы также можете сложить вычисление T_25 вта же строка (при условии, что T_25 является 25-м процентилем значений в temp) примерно так:

ndvi[temp > np.percentile(temp, 25)] = np.nan
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...