blob: 37185a862f25756a5261ec12d6fafac2e2301f77 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
import pathlib
import random
import numpy as np
from sklearn.linear_model import LinearRegression
from sbdata.task import register_task, Arguments
@register_task("Calculate Map Coordinate Function")
def calculate_mapping_function(args: Arguments):
csv = args.get_arg("Coordinate CSV", "coords", pathlib.Path)
points = [[int(x) for x in y.split(",")] for y in csv.read_text().splitlines()[1:]]
xs = [(a[0], a[2]) for a in points]
zs = [(a[1], a[3]) for a in points]
random.shuffle(xs)
random.shuffle(zs)
find_best_function_for("X", xs)
find_best_function_for("Z", zs)
def find_best_function_for(label: str, l: list[tuple[int, int]]):
x = np.array([a[0] for a in l]).reshape((-1, 1))
y = np.array([a[1] for a in l])
model = LinearRegression()
model.fit(x, y)
print(f'------------')
print(f' {label} Coordinate:')
print(f" Score: {model.score(x, y)}")
print(f" Slope: {model.coef_[0]}")
print(f" Intercept: {model.intercept_}")
print(f'------------')
|