我是一个初级Python用户,我在理解一些东西时遇到了困难。我想将.csv文件中的2整列(lat,long)从度-分-秒(dms)转换为十进制度数(dd)(即46°57'01“N到46.950278)。我可能已经做了很久了,但我不知道有什么更好的。到目前为止,我已经将.csv中的标题重命名为在ArcGIS中可读。然后我用Excel把°、'、和“N替换成空格,然后把它们放在一个新的.csv文件中,它们各自的ID号(Acc_num)…我想用Python,但我一辈子都搞不懂。然后我用逗号替换了空格,以便能够转换每个截面的坐标。我还做了一个def,把dms转换成dd,dm转换成dd,d转换成dd……这样做是因为我的一些坐标只有度,有些只是度和分。以下是我的.csv文件当前格式的概述:
Acc_num lat long
881138 80,24 87,38
882273 68,40 141
889843 56,55,28 91,49,02
787004 48 91,58
我不知道如何将我的def应用到.csv文件中,以完成对dd的最终转换。我需要保持列表的相同顺序,因为我想将这些列重新插入到原始的更详细的.csv中。在
以下是我目前所掌握的情况:
^{pr2}$现在我一直在研究这个问题,我知道这是错误的,但是我不知道该怎么做才能应用我的def。在
accession2 = []
latitudes2 = []
longitudes2 = []
ff = open(filename)
for line in ff:
cells = line.split(',')
accession2.append((cells[0]))
latitudes2.append((cells[1]))
for val in latitudes2:
dms_dd(val)
longitudes2.append((cells[2]))
#longitudes2 = [w.replace(dms_dd(val) for w in longitudes]
ff.close()
非常感谢任何帮助!谢谢您!在
首先,编写一个转换一行输入的函数,然后在输入行上循环:
相关问题 更多 >
编程相关推荐