2017-12-31 25 views
1

나는 출력을 저장하는 방법에 대한 해결책을 찾고 있습니다. 파이썬 루프는 많은 좌표에서 하나의 위치까지 거리를 검색합니다. 로 사용되는 스크립트는 다음과 같습니다 : 내가 생성 된 파일에서 얻을파이썬 루프를 사용하여 많은 좌표에서 출력 거리 절약

import gpxpy.geo 
import numpy as np 

# Reference Point 
lat1 = 8.1 
lon1 = 108.9 

# Range Points for Distance Determination Subject to Reference Point 
lat2 = [3.120,5.933,1.490] 
lon2 = [113.025,116.048,110.353] 

dist = [] 
for i in range(len(lat2)): 
    dist = gpxpy.geo.haversine_distance(lat1, lon1, lat2[i], lon2[i])/1000 
    print dist 

data=np.zeros((np.size(lon2),3)) 
# 
data[:,0]=lat2 
data[:,1]=lon2 
data[:,2]=dist 

np.savetxt('distant.dat',data,fmt='%9.3f') 

현재의 결과는 다음과 같이이다 :

3.120 113.025 752.406 
5.933 116.048 752.406 
1.490 110.353 752.406 

실제 결과이 같은 열 세에 여러 값을 가지고 반복되어있다 : 당신의 for 루프에서

3.120 113.025 717.551 
5.933 116.048 824.794 
1.490 110.353 752.406 

답변

1

, dist는 목록이 아닙니다. 루프를 다음으로 바꿉니다.

dist = [ 
    gpxpy.geo.haversine_distance(lat1, lon1, lat2[i], lon2[i])/1000 
    for i in range(len(lat2))] 
+0

감사합니다. 나는 for 문이 반복문에서 충분하기 전에리스트 (dist = [])를 선언 할 때 생각했다. 이상한 일은 콘솔의 결과가 정확했지만 출력 파일이 다릅니다. – Azam

+0

결과를리스트에 추가하려면'dist.append (...')로 루프를 고칠 수 있었지만 이해가 더 좋습니다. –

+0

다시 한번 감사드립니다. 이전 스크립트에서 dist.append (..)를 적용하려고합니다. 희망이 작동합니다. – Azam