2016-09-05 7 views
-1

データポイントの近接性に関する地質座標を分析して検索するためにこのコードを書いています。私は非常に多くのデータポイントを持っていたので、PyCharmの出力は過負荷になり、ナンセンスの束を私に与えました。それ以来、私は真実/偽の結果を自分のコンピュータ上の別々の文書に書き込んでこの問題を解決しようと努めました。データの結果をPythonの出力ファイルに書き込む方法

このコードのポイントは、file1の座標とfile2のすべての要素の近接性を分析することです。次に、近接を共有する座標の一致を返します。あなたが以下に示すように、私はこれを行うネストされたforループを書いています。誰かがより洗練されたソリューションを持っていれば、より多くのことを学ぶことができて嬉しいです。

import numpy as np 
import math as ma 

filename1 = "C:\Users\Justin\Desktop\file1.data" 
data1 = np.genfromtxt(filename1, 
        skip_header=1, 
        usecols=(0, 1)) 
        #dtype=[ 
          #("x1", "f9"), 
         #("y1", "f9")]) 
#print "data1", data1 

filename2 = "C:\Users\Justin\Desktop\file2.data" 
data2 = np.genfromtxt(filename2, 
         skip_header=1, 
         usecols=(0, 1)) 
         #dtype=[ 
          #("x2", "f9"), 
          #("y2", "f9")]) 

#print "data2",data2 

def d(a,b): 
    d = ma.acos(ma.sin(ma.radians(a[1]))*ma.sin(ma.radians(b[1])) 
       +ma.cos(ma.radians(a[1]))*ma.cos(ma.radians(b[1]))*  (ma.cos(ma.radians((a[0]-b[0]))))) 
    return d 

results = open("results.txt", "w") 

for coor1 in data1: 
    for coor2 in data2: 
     n=0 
     a = [coor1[0], coor1[1]] 
     b = [coor2[0], coor2[1]] 
     #print "a", a 
     #print "b", b 

    if d(a, b) < 0.07865: # if true what happens 
     results.write("\t".join([str(coor1), str(coor2), "True", str(d)]) + "\n") 

    else: 
     results.write("\t".join([str(coor1), str(coor2), "False", str(d)]) + "\n") 
results.close() 

これは私がコードを実行したときに私が取得エラーメッセージです:

results.write("\t".join([str(coor1), str(coor2), "False", str(d)]) + "\n") ValueError: I/O operation on closed file

私は私の問題は、私は私は、書き込み保存して整理することが出来るのですか理解していないということだと思います私のコンピュータに意味のある形式でファイルを保存します。だから、誰かが助言や提案をしてくれたら、私はそのサポートにとても感謝しています!

答えて

関連する問題