Как исправить ошибку «TypeError: должно быть действительным числом, а не str»? - PullRequest
0 голосов
/ 06 февраля 2019

Я продолжаю получать эту ошибку.Мои данные отформатированы правильно, но я просто не могу заставить его создать KDTree.

У меня есть один набор данных, назовем его A, и другой набор данных, назовем его B. Оба набора имеют многокоординаты широты и долготы.Я хочу посмотреть, сколько точек B лежит в определенном радиусе каждой из точек A.

Любая помощь приветствуется!

КОД:

from pysal.cg.kdtree import KDTree
from pysal.cg import RADIUS_EARTH_MILES

trees_xys = results_df[['latitude', 'longitude']].values
trees_tree = KDTree(trees_xys, distance_metric='Arc', radius=RADIUS_EARTH_MILES)

ОШИБКА:

TypeError                                 Traceback (most recent call last)
<ipython-input-113-a46d6648d543> in <module>
      3 
      4 trees_xys = results_df[['latitude', 'longitude']].values
----> 5 trees_tree = KDTree(trees_xys, distance_metric='Arc', radius=RADIUS_EARTH_MILES)

~\Anaconda3\lib\site-packages\pysal\cg\kdtree.py in KDTree(data, leafsize, distance_metric, radius)
     54             return scipy.spatial.cKDTree(data, leafsize)
     55     elif distance_metric == 'Arc':
---> 56         return Arc_KDTree(data, leafsize, radius)
     57 
     58 

~\Anaconda3\lib\site-packages\pysal\cg\kdtree.py in __init__(self, data, leafsize, radius)
     88         self.radius = radius
     89         self.circumference = 2 * math.pi * radius
---> 90         temp_KDTree.__init__(self, list(map(sphere.toXYZ, data)), leafsize)
     91 
     92     def _toXYZ(self, x):

~\Anaconda3\lib\site-packages\pysal\cg\sphere.py in toXYZ(pt)
    110     x, y, z
    111     """
--> 112     phi, theta = list(map(math.radians, pt))
    113     phi, theta = phi + pi, theta + (pi / 2)
    114     x = 1 * sin(theta) * cos(phi)

TypeError: must be real number, not str
...