Используя python, могу ли я параллельно дублировать линию точек x,y,z, чтобы x и z оставались одинаковыми, а y увеличивался на заданный интервал?

У меня есть строка в формате x,y,z. Хочу дублировать линию параллельно с увеличением значений y.

Например у меня есть:

    x,y,z
    320300,6225380,-8.8
    320310,6225380,-8.8
    320320,6225380,-8.8

Всего около 2000 статей.

Я хотел бы создать массив точек, чтобы эта линия дублировалась, при этом x и z оставались такими же, но с увеличивающимися значениями y, поэтому я мог бы сказать, продублируйте линию и увеличьте y на 10, начиная с 6225380 и заканчивая 6332640: затем отметьте точки x,y,z в файле и экспортируйте как *.csv

пример упрощенного результата ниже:

    x,y,z
    320300,6225380,-8.8
    323310,6225380,-8.8
    320320,6225380,-8.8
    320300,6225400,-8.8
    323310,6225400,-8.8
    320320,6225400,-8.8
    320300,6225410,-8.8
    323310,6225410,-8.8
    320320,6225410,-8.8

Я пробовал следующее:

import numpy as np
import pandas as pd

csv_path='PHid4_pts_6225380.csv'

df=pd.read_csv(csv_path)

sp=10
x1=df['x']
y1=np.arange(6225380,6232640,sp)
z1=df['z']

x_mesh, y_mesh =np.meshgrid(x1,y1)

coords = []
for a, b, c in  zip(x_mesh, y_mesh, z1):
    for a1, b1, c1 in zip(a, b, c):
      #  for a2, b2, c2 in zip(a1, b1, c1):
        coords.append((a1, b1, c1,))

Кажется, он работает нормально, пока я не дойду до части 'coords=[]', где я пытаюсь повторно использовать итератор, который я взял в другом месте.

Любая помощь будет принята с благодарностью, спасибо, Кая

1 ответ

В z1здесь творец проблемы. Выход строки

for a, b, c in  zip(x_mesh, y_mesh, z1)

будет массивом x, массив y а затем значение z1 который -8.8из ваших данных образца. Итак, в следующей строке

 for a1, b1, c1 in zip(a, b, c):

Параметры a,b списки, которые могут быть zipped но нет cпотому что это просто значение, а не массив или итерируемый. Итак, вам нужно сделать его повторяющимся. Например.,

for a1, b1, c1 in zip(a, b, np.ones(len(b))*c):

Я только что сделал ценность -8.8 повторить в массиве на длину b.

Другие вопросы по тегам