teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

質問された内容を追記

2021/02/11 07:41

投稿

Anonymous2020
Anonymous2020

スコア7

title CHANGED
File without changes
body CHANGED
@@ -35,6 +35,8 @@
35
35
  ########## 確認 (結果が-1~1の範囲を超えてしまう)
36
36
  print( 'above 1 : {}'.format( np.count_nonzero(ndvi > 1)) ) #above 1 : 1792215
37
37
  print( 'below -1 : {}'.format( np.count_nonzero(ndvi < -1)) ) #below -1 : 583745
38
+ print('ndvi, min:{}, max:{}'.format(ndvi.min(), ndvi.max()))
39
+ #ndvi, min:-1.7976931348623157e+308, max:1.7976931348623157e+308
38
40
  ```
39
41
 
40
42
  ### 試したこと

2

codeを修正

2021/02/11 07:41

投稿

Anonymous2020
Anonymous2020

スコア7

title CHANGED
File without changes
body CHANGED
@@ -28,7 +28,7 @@
28
28
  ########## 計算
29
29
 
30
30
  ir = ir.astype(np.float) #小数計算ができるように浮動小数点に変換
31
- red = ir.astype(np.float)
31
+ red = red.astype(np.float)
32
32
  ndvi = (ir-red)/(ir+red) # 各要素に-1から1の間に値が入るはず
33
33
  ndvi[ndvi==np.inf] = 0 #0割(ir+red=0の時発生)で生じたnp.infを変換
34
34
 

1

見やすく変更

2021/02/11 07:25

投稿

Anonymous2020
Anonymous2020

スコア7

title CHANGED
File without changes
body CHANGED
@@ -2,9 +2,7 @@
2
2
 
3
3
  numpy同士の計算で原理的に-1から1の間にまとめられる指数を算出しようとしているのですが、
4
4
  なぜか想定される範囲から値がはみ出てしまいます。
5
- 正規化植生指数:ndvi = (ir-red)/(ir+red)
6
- 参考URL:
7
- https://ja.wikipedia.org/wiki/NDVI#:~:text=NDVI%EF%BC%88%E3%82%A8%E3%83%8C%E3%83%87%E3%82%A3%E3%83%BC%E3%83%96%E3%82%A4%E3%82%A2%E3%82%A4,%E6%8C%87%E6%95%B0%E3%80%81%E6%A4%8D%E7%94%9F%E6%8C%87%E6%95%B0%E3%81%AA%E3%81%A9%EF%BC%89%E3%80%82&text=%E3%81%AF%E8%B5%A4%E8%89%B2%E5%85%89%E3%81%AE%E5%8F%8D%E5%B0%84%E7%8E%87%E3%81%A7%E3%81%82%E3%82%8B%EF%BC%89%E3%80%82
5
+ 正規化植生指数【[リンク](https://ja.wikipedia.org/wiki/NDVI#:~:text=NDVI%EF%BC%88%E3%82%A8%E3%83%8C%E3%83%87%E3%82%A3%E3%83%BC%E3%83%96%E3%82%A4%E3%82%A2%E3%82%A4,%E6%8C%87%E6%95%B0%E3%80%81%E6%A4%8D%E7%94%9F%E6%8C%87%E6%95%B0%E3%81%AA%E3%81%A9%EF%BC%89%E3%80%82&text=%E3%81%AF%E8%B5%A4%E8%89%B2%E5%85%89%E3%81%AE%E5%8F%8D%E5%B0%84%E7%8E%87%E3%81%A7%E3%81%82%E3%82%8B%EF%BC%89%E3%80%82)】:ndvi = (ir-red)/(ir+red)
8
6
 
9
7
  おそらく内部で計算が発散しているのが原因だと思うのですが、正しく出力する方法はございますでしょうか
10
8