fix(E04): 중심선 = 측점 중심(B06 누가) — route_points 는 접선 꺾은선이라 누가가 달라 구간 노드 · 지도 구간선이 어긋남 (533-3)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -83,16 +83,6 @@ def root(tmp_path, monkeypatch):
|
||||
z = _ground(yy)
|
||||
np.savez(models / "dtm_classification.npz", x=xs, y=ys, z=z, valid_mask=np.ones_like(z, bool))
|
||||
monkeypatch.setattr(run.source, "cross_section", lambda r, ch: _cross(float(ch)))
|
||||
monkeypatch.setattr(
|
||||
run.source,
|
||||
"db_snapshot",
|
||||
lambda r: {
|
||||
"route_points": [
|
||||
{"model_x": ch, "model_y": 0.0, "chainage_m": ch, "sequence_num": i}
|
||||
for i, ch in enumerate(CHAINAGES)
|
||||
]
|
||||
},
|
||||
)
|
||||
return tmp_path
|
||||
|
||||
|
||||
@@ -185,10 +175,10 @@ def test_node_mask_section_and_route_ends(root):
|
||||
x = np.arange(-30.0, 131.0, 1.0)
|
||||
y = np.arange(-20.0, 21.0, 1.0)
|
||||
grid = {"x": x, "y": y}
|
||||
mask = run._node_mask(root, grid, 0.0, 100.0, 12.0)
|
||||
mask = run._node_mask(STATIONS, grid, 0.0, 100.0, 12.0)
|
||||
xx, yy = np.meshgrid(x, y)
|
||||
assert not mask[xx < -0.5].any() and not mask[xx > 100.5].any()
|
||||
assert not mask[np.abs(yy) > 12.0].any()
|
||||
assert mask[(np.abs(yy) <= 12.0) & (xx >= 1) & (xx <= 99)].all()
|
||||
part = run._node_mask(root, grid, 20.0, 60.0, 12.0)
|
||||
part = run._node_mask(STATIONS, grid, 20.0, 60.0, 12.0)
|
||||
assert not part[(xx < 19.5) | (xx > 60.5)].any() and part[(yy == 0) & (xx == 40)].all()
|
||||
|
||||
@@ -57,21 +57,6 @@ def project(tmp_path, monkeypatch):
|
||||
z = 500.0 + 0.4 * (yy - 200.0) + 0.002 * (xx - 200.0) ** 2 # 노선 옆 비탈
|
||||
np.savez(models / "dtm_classification.npz", x=xs, y=ys, z=z, valid_mask=np.ones_like(z, bool))
|
||||
monkeypatch.setattr(run.source, "stations", lambda root: STATIONS)
|
||||
monkeypatch.setattr(
|
||||
run.source,
|
||||
"db_snapshot",
|
||||
lambda root: {
|
||||
"route_points": [
|
||||
{
|
||||
"model_x": s["center_x"],
|
||||
"model_y": 200.0,
|
||||
"chainage_m": s["chainage_m"],
|
||||
"sequence_num": i,
|
||||
}
|
||||
for i, s in enumerate(STATIONS)
|
||||
]
|
||||
},
|
||||
)
|
||||
|
||||
async def fake_root(project_id):
|
||||
return tmp_path
|
||||
|
||||
Reference in New Issue
Block a user