Набор данных, объединение, создание координат и ошибки - PullRequest
0 голосов
/ 28 января 2020

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

import geopandas as gpd

fp = "/Users/nsnsksksks/Documents/nsnsnsns/NGGE6AFL.shp"

data = gpd.read_file(fp)

enugu = data.loc[data['ADM1FIPSNA'] == 'Enugu']


for var in enugu: 
    long = str(enugu.LONGNUM)
    lat = str(enugu.LATNUM)
    loc = lat + ', ' + long

    print(loc)

1 Ответ

0 голосов
/ 28 января 2020

Я не уверен, что именно вы хотите получить в качестве выходных данных (вы упомянули set, но я не буду хранить координаты в set, потому что lat и long могут быть перепутаны, и вы, вероятно, захотите убедиться, что знаете, какое число что. Если вы хотите узнать больше о наборах, вы можете прочитать https://realpython.com/python-sets), поэтому я сделал две версии примера.

Если вы хотите просто отдельные строки, такие как "20.23425,14.14145", тогда :

for long, lat in zip(enugu.geometry.x, enugu.geometry.y):
    coords = str(long) + ", " + str(lat)
    #You can do something with your coords then..

Если вы хотите список кортежей, то:

coords = []
for long, lat in zip(enugu.geometry.x, enugu.geometry.y):
    coords.append((long, lat))

Результат этого будет таким: [(12.2134, 12.1452), (34.2524, 21.1201),. ..]

Вы можете легко адаптировать этот код к любой структуре данных, которая вам может понадобиться, например, 2d numpy arrays et c

...