質問編集履歴
3
質問された内容を追記
    
        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を修正
    
        title	
    CHANGED
    
    | 
         
            File without changes
         
     | 
    
        body	
    CHANGED
    
    | 
         @@ -28,7 +28,7 @@ 
     | 
|
| 
       28 
28 
     | 
    
         
             
            ########## 計算
         
     | 
| 
       29 
29 
     | 
    
         | 
| 
       30 
30 
     | 
    
         
             
            ir  = ir.astype(np.float) #小数計算ができるように浮動小数点に変換
         
     | 
| 
       31 
     | 
    
         
            -
            red =  
     | 
| 
      
 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
見やすく変更
    
        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 
     | 
    
         |