데이터 포인트의 근접성에 대한 지리적 좌표를 분석하고 검색하기 위해이 코드를 작성했습니다. 필자는 데이터 포인트가 너무 많아서 PyCharm의 출력이 과부하가되고 나에게 많은 말도 안되는 소리가 들려왔다. 그 이후로 저는 True/False 결과를 내 컴퓨터의 개별 문서로 작성하여이 문제를 해결하려고 노력했습니다.파이썬의 출력 파일에 데이터 결과를 쓰는 방법
이 코드의 핵심은 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
나는 내 문제는 내가이 쓰기 저장하고 구성 할 수 있겠 방법을 이해하지 않는 것이 생각 내 컴퓨터에 의미있는 형식의 파일. 그래서, 아무도 조언이나 제안이 있다면 나는 그 지원에 대해 매우 감사 할 것입니다!