使用pyproj将lat,long转换为状态平面中的x,y

时间:2017-10-11 23:18:39

标签: python pandas pyproj

我无法将具有纬度和经度坐标的数据帧转换为状态平面投影。我试图使用我在另一篇文章中找到的代码,但它一直在抛出"属性错误:'浮动'对象没有属性' set_value'"。这是原始代码的链接,因此我可以正确地归功于它:https://stackoverflow.com/a/36871668/8754430

这是我的代码

    import pyproj
    import numpy as np

    subways_loc = pd.read_csv('subways_loc.csv')

    NAD83_LI = pyproj.Proj(init = "EPSG:32118")
    NYS_LIZ = pyproj.Proj(init = "ESRI:102718")

    def coord_transform(df):
        x = pd.Series()
        y = pd.Series()
        for idx, val in enumerate(df['Latitude']):
            x, y = pyproj.transform(NAD83_LI, NYS_LIZ, df['Longitude'][idx], df['Latitude'][idx])
            x.set_value(idx, x)
            y.set_value(idx, y)
        df['x'] = x
        df['y'] = y
        return df

    subways_loc_trans = coord_transform(subways_loc)

    print(subways_loc_trans.head(1))

以下是具体错误:

    AttributeError                            Traceback (most recent call last)
    <ipython-input-103-a13e9199a9d5> in <module>()
         11     print(x, y)
         12 
    ---> 13 subways_loc_trans = coord_transform(subways_loc)
         14 
         15 print(subways_loc_trans.head(1))

    <ipython-input-103-a13e9199a9d5> in coord_transform(df)
          4     for idx, val in enumerate(df['Latitude']):
          5         x, y = pyproj.transform(NAD83_LI, NYS_LIZ, df['Longitude'][idx], df['Latitude'][idx])
    ----> 6         x.set_value(idx, x)
          7         y.set_value(idx, y)
          8     df['x'] = x

    AttributeError: 'float' object has no attribute 'set_value'

以下是我的github上传文件https://github.com/amkaris/SB-Code/blob/master/subways_loc.csv的链接。

感谢任何和所有帮助!谢谢!

0 个答案:

没有答案