簡體   English   中英

如何從使用numpy arange生成的坐標列表生成坐標列表(lat,long)

[英]How do I generate a list of coordinates (lat, long) from list of coordinates generated using numpy arange

我正在嘗試生成一個包含lat,long,i,j,z值的txt文件。 我已經能夠使用以下內容創建i,j,z值列表:

n = 51
m = 31

data = [(i,j,i*2) for i in range(n) for j in range(m)]

但是,如果我使用numpy arange創建一系列值,我不知道如何做到這一點

lat = np.arange(33.8916,34.0426,0.003)
long = np.arange(78.0136,77.9236,-0.003)

有沒有辦法做到這一點? (n,m)和(lat,long)都是相同的尺寸,(51,31)。 所以我想要的是一個txt文件,它具有:

33.8916,78.0136,0,0,0
33.8946,78.0166,0,1,0
...
34.0416,77.9236,50,30,100

使用zip()

n = 51
m = 31

data = [(i,j,i*2) for i in range(n) for j in range(m)]
data = [', '.join(map(str, x)) for x in data]   # removing the tuples

lat = np.arange(33.8916,34.0426,0.003)
long = np.arange(78.0136,78.1036,0.003)

res = list(zip(lat,long,data))     # zipping the lists together

logFile = "list.txt"

with open(logFile, "w") as f:
   for data in res:
       f.write("%s, %s, %s" % data + "\n")

OUTPUT(list.txt)

33.8916, 78.0136, 0, 0, 0
33.8946, 78.0166, 0, 1, 0
33.8976, 78.0196, 0, 2, 0
33.9006, 78.0226, 0, 3, 0
33.9036, 78.0256, 0, 4, 0
33.9066, 78.0286, 0, 5, 0
.
.
.

編輯

要一直到data ,請使用zip_longest()

res = list(zip_longest(lat,long,data))

logFile = "list.txt"

with open(logFile, "w") as f:
    for data in res:
        f.write("%s, %s, %s" % data + "\n")

注意:使用zip_longestmissing值處插入None

例如

print(len(data))    # 1581
print(len(lat))     # 51
print(len(long))    # 31

因此:

輸出

33.8916, 78.0136, 0, 0, 0
33.8946, 78.0166, 0, 1, 0
33.8976, 78.0196, 0, 2, 0
.
.
33.9846, None, 1, 0, 2
33.9876, None, 1, 1, 2
.
.
None, None, 50, 28, 100
None, None, 50, 29, 100
None, None, 50, 30, 100

編輯2

要獲得一致的列表,請進行以下更改:

n = 2
m = 23

lat = np.arange(33.8916,34.0426,0.0033)
long = np.arange(78.0136,78.1036,0.002)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM