Hanzo03 commited on
Commit
b4c4e86
·
1 Parent(s): d976366

initial commit

Browse files
Files changed (12) hide show
  1. .gitignore +1 -0
  2. .python-version +1 -0
  3. README.md +1 -1
  4. data/1.npy +3 -0
  5. data/2.npy +3 -0
  6. data/3.npy +3 -0
  7. data/4.npy +3 -0
  8. data/5.npy +3 -0
  9. dataset.py +25 -0
  10. main.py +94 -0
  11. pyproject.toml +12 -0
  12. uv.lock +0 -0
.gitignore ADDED
@@ -0,0 +1 @@
 
 
1
+ __pycache__/
.python-version ADDED
@@ -0,0 +1 @@
 
 
1
+ 3.13
README.md CHANGED
@@ -1,6 +1,6 @@
1
  ---
2
  title: OneDtracing
3
- emoji: 😻
4
  colorFrom: green
5
  colorTo: purple
6
  sdk: gradio
 
1
  ---
2
  title: OneDtracing
3
+ emoji:
4
  colorFrom: green
5
  colorTo: purple
6
  sdk: gradio
data/1.npy ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9696de747529f706de056dffa26815d315e60244e34c4d728a80088266e9a3f2
3
+ size 1000128
data/2.npy ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:82ea583f00318e7adc98609d2e62c1b2a7c566ff597cd5b70000de9df7dba991
3
+ size 1000128
data/3.npy ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e9b0daf8bf094903e2a597637a6311521a0d10ceca5d40392b40f7630a89534b
3
+ size 1000128
data/4.npy ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6fe0e49907576e2c6ace1b6bc41686c5ed0872bfb501af4c3865b79cb5396d85
3
+ size 1000128
data/5.npy ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8ed56ccb36582570febe9f038a223be382cd45810911733c888fe088a35a3114
3
+ size 1000128
dataset.py ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import numpy as np
2
+ import os
3
+
4
+ def generate_npy_files(num_files=5, samples_per_file=1_000_000):
5
+ """Generates .npy files containing 1D arrays of random floats."""
6
+
7
+ print(f"Starting generation of {num_files} files...")
8
+
9
+ for i in range(1, num_files + 1):
10
+ filename = f"{i}.npy"
11
+
12
+ # Generate 1M samples of random data (float64 by default)
13
+ data = np.random.randint(low=-128, high=128, size=samples_per_file, dtype=np.int8)
14
+ if not os.path.exists("data"):
15
+ os.mkdir("data")
16
+ # Save to disk with specified folder
17
+ np.save(f"data/{filename}", data)
18
+
19
+ file_size_mb = os.path.getsize(f"data/{filename}") / (1024 * 1024)
20
+ print(f"Created {filename} | Shape: {data.shape} | Size: {file_size_mb:.2f} MB")
21
+
22
+ print("\nSuccess: All files generated in the current directory.")
23
+
24
+ if __name__ == "__main__":
25
+ generate_npy_files()
main.py ADDED
@@ -0,0 +1,94 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from pathlib import Path
2
+ import gradio as gr
3
+ import numpy as np
4
+ import plotly.graph_objects as go
5
+
6
+ POINT_BUDGET = 1500
7
+ DATA_DIR = Path(__file__).parent / "data"
8
+
9
+ def load_data_files():
10
+ data_arrays = []
11
+ for i in range(5):
12
+ file_path = DATA_DIR / f"{i}.npy"
13
+ if file_path.exists():
14
+ data_arrays.append(np.load(file_path, mmap_mode="r").reshape(-1))
15
+ return data_arrays
16
+
17
+ DATA_SOURCES = load_data_files()
18
+ TOTAL_SAMPLES = len(DATA_SOURCES[0]) if DATA_SOURCES else 1_000_000
19
+
20
+
21
+ def create_figure(start_pt, window_size):
22
+
23
+ end_pt = min(start_pt + window_size, TOTAL_SAMPLES)
24
+ view_size = end_pt - start_pt
25
+
26
+ dynamic_stride = max(1, view_size // POINT_BUDGET)
27
+ indices = np.arange(start_pt, end_pt, dynamic_stride)
28
+
29
+ fig = go.Figure()
30
+ colors = ['#00E5FF', '#FF3D00', '#76FF03', '#D500F9', '#FFC400']
31
+
32
+ for i, data in enumerate(DATA_SOURCES):
33
+ fig.add_trace(go.Scattergl(
34
+ x=indices,
35
+ y=data[indices],
36
+ mode="lines",
37
+ name=f"Trace {i}",
38
+ line=dict(width=1, color=colors[i]),
39
+ hoverinfo="skip"
40
+ ))
41
+
42
+ fig.update_layout(
43
+ template="plotly_dark",
44
+ title=f"Stride: {dynamic_stride}x | Window: {start_pt:,} → {end_pt:,}",
45
+ height=600
46
+ )
47
+
48
+ return fig
49
+
50
+
51
+ with gr.Blocks() as demo:
52
+
53
+ gr.Markdown("### 🔬 ASCAD Trace Viewer (Stable HF Version)")
54
+
55
+ start_slider = gr.Slider(
56
+ minimum=0,
57
+ maximum=TOTAL_SAMPLES - 1000,
58
+ step=100,
59
+ value=0,
60
+ label="Start Index"
61
+ )
62
+
63
+ window_slider = gr.Slider(
64
+ minimum=1000,
65
+ maximum=50000,
66
+ step=1000,
67
+ value=20000,
68
+ label="Window Size"
69
+ )
70
+
71
+ trace_plot = gr.Plot()
72
+
73
+ start_slider.change(
74
+ create_figure,
75
+ inputs=[start_slider, window_slider],
76
+ outputs=trace_plot
77
+ )
78
+
79
+ window_slider.change(
80
+ create_figure,
81
+ inputs=[start_slider, window_slider],
82
+ outputs=trace_plot
83
+ )
84
+
85
+ # Initial load
86
+ demo.load(
87
+ create_figure,
88
+ inputs=[start_slider, window_slider],
89
+ outputs=trace_plot
90
+ )
91
+
92
+
93
+ if __name__ == "__main__":
94
+ demo.launch()
pyproject.toml ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [project]
2
+ name = "onedtracing"
3
+ version = "0.1.0"
4
+ description = "Add your description here"
5
+ readme = "README.md"
6
+ requires-python = ">=3.13"
7
+ dependencies = [
8
+ "dash>=4.0.0",
9
+ "gradio>=6.8.0",
10
+ "numpy>=2.4.2",
11
+ "plotly>=6.6.0",
12
+ ]
uv.lock ADDED
The diff for this file is too large to render. See raw diff