首页 > 解决方案 > 数据集、连接、创建坐标和错误

问题描述

我正在尝试找到一种可以获取纬度和经度的方法,并将它们放入一个集合中,使其看起来像一个坐标,然后我可以将其插入以进行更多分析。我正在尝试连接,但它不会产生一对坐标。另一个问题是,在一种情况下,当我分别按此顺序需要它们时,我将纬度和经度翻转了。

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)

标签: pythonconcatenationlatitude-longitudegeopandas

解决方案


我不确定您到底想要什么作为输出(您提到了集合,但我不会将坐标保存在集合中,因为纬度和经度可能会混淆,您可能想确保知道什么是数字。如果你想了解更多关于集合的信息,你可以阅读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 数组等


推荐阅读