Несогласованность в представлении координат в GeoPandas - PullRequest
2 голосов
/ 28 мая 2020

У меня есть список Shapely Points в GeoSeries.

coords.head():

0    POINT (-26.17690 80.81700)
1    POINT (-15.54390 80.61700)
2    POINT (-20.67690 80.36700)
3      POINT (6.10610 80.83300)
4     POINT (17.63910 79.88300)
Name: geometry, dtype: geometry

При попытке получить список заархивированных координат с помощью команды pd.Series(zip(coords.geometry.x, coords.geometry.y)).head() я получаю следующий образец:

0              (-26.1769, 80.817)
1              (-15.5439, 80.617)
2              (-20.6769, 80.367)
3    (6.1061000000000005, 80.833)
4     (17.63909999999999, 79.883)
dtype: object

Кстати, пример coords.geometry.x.head():

0   -26.1769
1   -15.5439
2   -20.6769
3     6.1061
4    17.6391
dtype: float64

Также странно то, что когда я пытаюсь воспроизвести результаты:

new_coords = [(-26.17690, 80.81700),
(-15.54390, 80.61700),
(-20.67690, 80.36700),
(6.10610, 80.83300),
(17.63910, 79.88300)]
new_coords = gpd.GeoSeries([Point(p) for p in new_coords])
pd.Series(zip(new_coords.geometry.x, new_coords.geometry.y))
new_coords

Zip не работает ведет себя странно:

0    POINT (-26.17690 80.81700)
1    POINT (-15.54390 80.61700)
2    POINT (-20.67690 80.36700)
3      POINT (6.10610 80.83300)
4     POINT (17.63910 79.88300)
dtype: geometry

Основная цель здесь - получить точное значение координат для объединения кадров данных, поэтому недопустимо, чтобы zip возвращал подобное значение, но не то же самое .

1 Ответ

0 голосов
/ 28 мая 2020

Похоже, @ juanpa.arrivillaga верна. При выполнении оператора [float(p) for p in coords.geometry.x][:5] я получаю те же числа:

[-26.1769, -15.5439, -20.6769, 6.1061000000000005, 17.63909999999999]

Таким образом, входные данные не меняются zip.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...