如何生成基于坐标和半径的测试点数据?
摘要:一、代码 # -*- coding: utf-8 -*- import csv import random import math import datetime from pathlib import Path from faker im
一、代码
# -*- coding: utf-8 -*-
import csv
import random
import math
import datetime
from pathlib import Path
from faker import Faker
faker_data = Faker(locale="zh_CN")
def gen_data(center_x=103.827703, center_y=36.064076, radius=0.3, num_points=10, out_dir="."):
ts = datetime.datetime.now().strftime("%H%M%S")
out_path = Path(out_dir) / f"litdata_{ts}.csv"
rows = []
for _ in range(num_points):
angle = random.uniform(0, 2 * math.pi)
distance = random.uniform(0, radius)
x = center_x + distance * math.cos(angle)
y = center_y + distance * math.sin(angle)
rows.append([x, y, faker_data.address(), faker_data.company(), "Lit"])
try:
out_path.parent.mkdir(parents=True, exist_ok=True)
with out_path.open("w", newline="", encoding="utf-8-sig") as f:
writer = csv.writer(f)
writer.writerow(["x", "y", "address", "company", "tag"])
writer.writerows(rows)
print(f"导出成功: {out_path}")
except Exception as e:
print(f"导出CSV失败: {e}")
if __name__ == "__main__":
gen_data()
二、执行结果
