diff --git a/DEPLOY.md b/DEPLOY.md new file mode 100644 index 0000000..6e632b1 --- /dev/null +++ b/DEPLOY.md @@ -0,0 +1,257 @@ +# 前端部署指南 + +## 📦 部署方式 + +### 方式一:本地构建后上传(推荐) + +#### 1. 本地构建 + +**Windows:** +```bash +cd frontend +pnpm build +``` + +**或者使用脚本:** +```bash +cd frontend +.\build-and-deploy.bat +``` + +**Linux/Mac:** +```bash +cd frontend +pnpm build +``` + +构建完成后会在 `frontend/dist` 目录生成静态文件。 + +#### 2. 上传到服务器 + +将 `dist` 文件夹上传到服务器的指定目录,例如: +```bash +# 在服务器上创建目录 +sudo mkdir -p /data/project/dashboard/frontend/dist + +# 上传文件(使用 scp、rsync 或 FTP 工具) +# 示例:使用 scp +scp -r dist/* user@server:/data/project/dashboard/frontend/dist/ + +# 或使用 rsync(推荐) +rsync -avz --progress dist/ user@server:/data/project/dashboard/frontend/dist/ +``` + +#### 3. 修改 docker-compose.yml + +确保使用简单的 Nginx 配置(不构建镜像): + +```yaml +version: '3.8' + +services: + backend: + build: + context: ./backend + dockerfile: Dockerfile + container_name: audio-dashboard-backend + environment: + - DATABASE_HOST=${DATABASE_HOST:-localhost} + - DATABASE_PORT=${DATABASE_PORT:-3306} + - DATABASE_NAME=${DATABASE_NAME:-audio} + - DATABASE_USER=${DATABASE_USER:-root} + - DATABASE_PASSWORD=${DATABASE_PASSWORD:-root123} + - APP_NAME=${APP_NAME:-Audio Dashboard API} + - DEBUG=${DEBUG:-True} + - MEILISEARCH_URL=${MEILISEARCH_URL:-http://ec2-18-184-205-87.eu-central-1.compute.amazonaws.com:7700} + - MEILISEARCH_API_KEY=${MEILISEARCH_API_KEY:-young9#!UJsD219921031} + - MEILISEARCH_INDEX=${MEILISEARCH_INDEX:-models} + ports: + - "8083:8000" + restart: unless-stopped + networks: + - audio-network + + frontend: + image: nginx:alpine + container_name: audio-dashboard-frontend + ports: + - "8082:80" + volumes: + - ./frontend/dist:/usr/share/nginx/html:ro + - ./frontend/nginx.conf:/etc/nginx/conf.d/default.conf:ro + depends_on: + - backend + restart: unless-stopped + networks: + - audio-network + +networks: + audio-network: + driver: bridge +``` + +#### 4. 启动服务 + +在服务器上执行: +```bash +cd /data/project/dashboard +docker compose up -d +``` + +#### 5. 查看日志 + +```bash +# 查看所有服务日志 +docker compose logs -f + +# 查看前端日志 +docker compose logs -f frontend + +# 查看后端日志 +docker compose logs -f backend +``` + +#### 6. 访问应用 + +- 前端地址:http://服务器 IP:8082 +- 后端 API:http://服务器 IP:8083 +- API 文档:http://服务器 IP:8083/docs + +--- + +### 方式二:使用 Docker 构建(备选) + +如果你想让 Docker 自动构建前端: + +1. 上传整个 `frontend` 目录到服务器 +2. 使用原始的 `docker-compose.yml`(包含 `build` 配置) +3. 执行 `docker compose build --no-cache frontend` +4. 执行 `docker compose up -d` + +--- + +## 🔄 更新部署 + +### 仅更新前端 + +```bash +# 1. 本地重新构建 +cd frontend +pnpm build + +# 2. 上传 dist 目录到服务器 +rsync -avz --progress dist/ user@server:/data/project/dashboard/frontend/dist/ + +# 3. 重启前端容器 +docker compose restart frontend +``` + +### 仅更新后端 + +```bash +# 1. 上传修改的后端文件到服务器 + +# 2. 重新构建后端镜像 +docker compose build --no-cache backend + +# 3. 重启后端容器 +docker compose up -d backend +``` + +--- + +## 📝 注意事项 + +1. **确保后端端口正确** + - 后端服务运行在 8083 端口 + - Nginx 配置中已设置代理到 `http://backend:8000`(容器内部) + +2. **文件权限** + - 确保 dist 目录有读取权限 + - Nginx 容器需要能读取 dist 目录中的文件 + +3. **跨域问题** + - Nginx 已配置 `/api` 代理,前端请求会自动转发到后端 + - 不需要额外配置 CORS + +4. **缓存问题** + - 静态资源已配置长期缓存(1 年) + - 更新后如果浏览器缓存未更新,可以强制刷新(Ctrl+F5) + +--- + +## 🛠️ 常见问题 + +### Q: 前端页面空白 +A: 打开浏览器控制台查看错误,可能是: +- 后端服务未启动 +- API 代理配置错误 +- 静态文件路径错误 + +### Q: API 请求失败 +A: 检查: +- 后端容器是否正常运行:`docker compose ps` +- 后端日志是否有错误:`docker compose logs backend` +- 网络连接是否正常 + +### Q: 如何停止服务 +A: +```bash +# 停止所有服务 +docker compose down + +# 停止并删除数据卷(谨慎使用) +docker compose down -v +``` + +### Q: 如何查看服务状态 +A: +```bash +# 查看运行状态 +docker compose ps + +# 查看磁盘使用 +docker system df +``` + +--- + +## 📂 目录结构 + +``` +/data/project/dashboard/ +├── docker-compose.yml # Docker 编排配置 +├── backend/ +│ ├── Dockerfile # 后端镜像配置 +│ ├── main.py # 后端主程序 +│ ├── requirements.txt # Python 依赖 +│ └── ... +└── frontend/ + ├── dist/ # 构建产物(上传到这里) + │ ├── index.html + │ ├── assets/ + │ └── ... + └── nginx.conf # Nginx 配置 +``` + +--- + +## 🚀 快速部署命令汇总 + +```bash +# 1. 本地构建 +cd frontend && pnpm build + +# 2. 上传到服务器 +rsync -avz --progress dist/ user@server:/data/project/dashboard/frontend/dist/ + +# 3. 在服务器上启动 +cd /data/project/dashboard +docker compose up -d + +# 4. 查看状态 +docker compose ps + +# 5. 查看日志 +docker compose logs -f +``` diff --git a/autoeq/measurements/Eafonyoung/data/over-ear/Kennerton Arkona.csv b/autoeq/measurements/Eafonyoung/data/over-ear/Kennerton Arkona.csv new file mode 100644 index 0000000..2e1231f --- /dev/null +++ b/autoeq/measurements/Eafonyoung/data/over-ear/Kennerton Arkona.csv @@ -0,0 +1,55 @@ +frequency,raw +20,94.5 +25,95 +30,95.3 +35,95.8 +40,96.2 +45,96.5 +50,96.8 +60,97.2 +70,97.5 +80,97.8 +90,98 +100,98.2 +120,98.3 +150,98.1 +200,97.8 +250,96.5 +300,94 +350,92.3 +400,93 +500,94.2 +600,94.5 +700,94.3 +800,94 +900,93.8 +1000,94 +1200,95 +1500,97 +2000,101 +2500,102.5 +3000,103.5 +3500,102.8 +4000,101.5 +4500,102 +5000,104 +5500,102.2 +6000,99 +6500,97.5 +7000,96 +7500,93.5 +8000,91 +8500,92 +9000,90.5 +9500,89 +10000,90.1 +11000,88.5 +12000,87 +13000,85.5 +14000,87 +15000,84 +16000,86 +17000,83.5 +18000,85 +19000,84.5 +20000,86.2 diff --git a/autoeq/measurements/Eafonyoung/data/over-ear/SoftEars RSV MKII.csv b/autoeq/measurements/Eafonyoung/data/over-ear/SoftEars RSV MKII.csv new file mode 100644 index 0000000..e067fc4 --- /dev/null +++ b/autoeq/measurements/Eafonyoung/data/over-ear/SoftEars RSV MKII.csv @@ -0,0 +1,480 @@ +frequency,raw +20.299999,94.996101 +20.6,95.066643 +20.9,95.144516 +21.200001,95.228432 +21.4,95.28511 +21.799999,95.395599 +22.0,95.44735 +22.4,95.541397 +22.700001,95.603294 +23.0,95.657913 +23.299999,95.705841 +23.6,95.748344 +24.0,95.799728 +24.299999,95.83725 +24.700001,95.88855 +25.0,95.928101 +25.4,95.980354 +25.799999,96.029633 +26.200001,96.075699 +26.5,96.109299 +26.9,96.154068 +27.200001,96.187393 +27.6,96.229897 +28.0,96.268608 +28.5,96.313004 +29.0,96.35788 +29.5,96.404785 +30.0,96.449615 +30.4,96.481842 +30.700001,96.504662 +31.1,96.53595 +31.5,96.569824 +32.0,96.613136 +32.5,96.648773 +33.0,96.66954 +33.5,96.678368 +34.0,96.686768 +34.5,96.704086 +35.0,96.728386 +35.5,96.749596 +36.0,96.763016 +36.5,96.77597 +37.0,96.797897 +37.5,96.824867 +38.200001,96.842056 +38.700001,96.834427 +39.5,96.834557 +40.0,96.855278 +40.599998,96.877174 +41.200001,96.872879 +41.799999,96.855865 +42.5,96.853706 +43.099998,96.868835 +43.700001,96.881042 +44.400002,96.883163 +45.0,96.888336 +45.5,96.900337 +46.200001,96.902153 +46.799999,96.865395 +47.5,96.821083 +48.200001,96.834366 +48.700001,96.846642 +49.400002,96.793259 +50.0,96.719086 +50.799999,96.712097 +51.5,96.75267 +52.200001,96.748764 +53.0,96.732452 +53.799999,96.722679 +54.5,96.680412 +55.200001,96.635139 +56.0,96.605072 +57.0,96.587227 +58.0,96.586639 +59.0,96.526726 +60.0,96.481766 +60.799999,96.455208 +61.5,96.424332 +62.200001,96.398727 +63.0,96.362335 +64.0,96.314461 +65.0,96.25618 +66.0,96.243065 +67.0,96.265198 +68.0,96.15934 +69.0,96.088623 +70.0,96.037971 +71.0,95.960304 +72.0,95.919785 +73.0,95.863098 +74.0,95.799225 +75.0,95.750603 +76.199997,95.699684 +77.5,95.599792 +78.800003,95.52874 +80.0,95.463959 +81.199997,95.383324 +82.5,95.290344 +83.800003,95.294746 +85.0,95.154205 +86.199997,95.096016 +87.5,94.958595 +88.5,94.94532 +90.0,94.850182 +91.199997,94.758141 +92.5,94.677185 +93.800003,94.581398 +95.0,94.52774 +96.199997,94.439606 +97.5,94.3405 +98.800003,94.273293 +100.0,94.210823 +101.5,94.103004 +103.0,93.990761 +104.400002,93.891739 +106.0,93.795929 +107.5,93.693459 +109.0,93.592987 +110.599998,93.479187 +112.0,93.409836 +113.800003,93.262932 +115.0,93.141464 +117.199997,93.067558 +118.0,92.995972 +120.599998,92.803932 +122.0,92.743256 +124.099998,92.59726 +125.0,92.540604 +126.5,92.447647 +128.0,92.344604 +131.5,92.12764 +132.0,92.110634 +134.0,91.977051 +136.0,91.843063 +138.0,91.72435 +140.0,91.589684 +143.0,91.426208 +145.0,91.302574 +147.5,91.157066 +150.0,91.001816 +152.5,90.854004 +155.0,90.720329 +157.5,90.600082 +160.0,90.478554 +162.5,90.335724 +165.0,90.196289 +167.5,90.089241 +170.0,89.958069 +172.5,89.833351 +175.0,89.7397 +177.5,89.604416 +180.0,89.515884 +182.5,89.376976 +185.0,89.426125 +187.5,89.251961 +190.0,89.108307 +192.5,89.001175 +195.0,88.904205 +197.5,88.808601 +200.0,88.763168 +203.0,88.642723 +206.0,88.559433 +209.0,88.452774 +212.0,88.358932 +214.0,88.309219 +218.0,88.216202 +220.0,88.160881 +224.0,88.068573 +227.0,87.994759 +230.0,87.933731 +233.0,87.860107 +236.0,87.798866 +240.0,87.742653 +243.0,87.699585 +247.0,87.637108 +250.0,87.597519 +254.0,87.542038 +258.0,87.476494 +262.0,87.440033 +265.0,87.400261 +269.0,87.334351 +272.0,87.310989 +276.0,87.292473 +280.0,87.264496 +285.0,87.263863 +290.0,87.266548 +295.0,87.188141 +300.0,87.176109 +304.0,87.145096 +307.0,87.125824 +311.0,87.111427 +315.0,87.108704 +320.0,87.119164 +325.0,87.080658 +330.0,87.079872 +335.0,87.058044 +340.0,87.032623 +345.0,87.043648 +350.0,87.030876 +355.0,87.016029 +360.0,87.01844 +365.0,86.999924 +370.0,87.012589 +375.0,86.993011 +382.0,87.009193 +387.0,87.001778 +395.0,86.987289 +400.0,86.977364 +406.0,86.983284 +412.0,86.974007 +418.0,86.966125 +425.0,86.966347 +431.0,86.957985 +437.0,86.954689 +444.0,86.947784 +450.0,86.95256 +455.0,86.937927 +462.0,86.934189 +468.0,86.928482 +475.0,86.908051 +482.0,86.917679 +487.0,86.908447 +494.0,86.876709 +500.0,86.874756 +508.0,86.866798 +515.0,86.86277 +522.0,86.8535 +530.0,86.835083 +538.0,86.826447 +545.0,86.822144 +552.0,86.788559 +560.0,86.786629 +570.0,86.775848 +580.0,86.74791 +590.0,86.721291 +600.0,86.71302 +608.0,86.705421 +615.0,86.688232 +622.0,86.67942 +630.0,86.652893 +640.0,86.638512 +650.0,86.616013 +660.0,86.596329 +670.0,86.581268 +680.0,86.549599 +690.0,86.539116 +700.0,86.521683 +710.0,86.506607 +720.0,86.48912 +730.0,86.48027 +740.0,86.460587 +750.0,86.443459 +762.0,86.429535 +775.0,86.411072 +788.0,86.399559 +800.0,86.402443 +812.0,86.396225 +825.0,86.386002 +838.0,86.378235 +850.0,86.385986 +862.0,86.399521 +875.0,86.406715 +885.0,86.422165 +900.0,86.44931 +912.0,86.474152 +925.0,86.521378 +938.0,86.552628 +950.0,86.598076 +962.0,86.651535 +975.0,86.715912 +988.0,86.783661 +1000.0,86.844574 +1015.0,86.926735 +1030.0,87.028801 +1044.0,87.128235 +1060.0,87.238464 +1075.0,87.344162 +1090.0,87.461327 +1106.0,87.568489 +1120.0,87.673401 +1138.0,87.804008 +1150.0,87.883133 +1172.0,88.03363 +1180.0,88.088539 +1206.0,88.236641 +1220.0,88.312088 +1241.0,88.43586 +1250.0,88.486343 +1265.0,88.571785 +1280.0,88.670998 +1315.0,88.8508 +1320.0,88.875412 +1340.0,88.940201 +1360.0,88.999283 +1380.0,89.053871 +1400.0,89.098251 +1430.0,89.157188 +1450.0,89.199142 +1475.0,89.242676 +1500.0,89.286354 +1525.0,89.335205 +1550.0,89.378242 +1575.0,89.429764 +1600.0,89.474205 +1625.0,89.52272 +1650.0,89.577255 +1675.0,89.632195 +1700.0,89.693855 +1725.0,89.760017 +1750.0,89.816727 +1775.0,89.886528 +1800.0,89.959686 +1825.0,90.042648 +1850.0,90.123505 +1875.0,90.203667 +1900.0,90.294113 +1925.0,90.382721 +1950.0,90.494263 +1975.0,90.591408 +2000.0,90.700439 +2030.0,90.839371 +2060.0,90.985733 +2090.0,91.134712 +2120.0,91.287323 +2140.0,91.396133 +2180.0,91.609131 +2200.0,91.724281 +2240.0,91.953598 +2270.0,92.138763 +2300.0,92.318275 +2330.0,92.505653 +2360.0,92.696831 +2400.0,92.956299 +2430.0,93.150742 +2470.0,93.42971 +2500.0,93.635712 +2540.0,93.918365 +2580.0,94.188286 +2620.0,94.461639 +2650.0,94.654587 +2690.0,94.908905 +2720.0,95.086823 +2760.0,95.316727 +2800.0,95.515236 +2850.0,95.725677 +2900.0,95.887955 +2950.0,95.993484 +3000.0,96.046974 +3040.0,96.048676 +3070.0,96.030228 +3110.0,95.976227 +3150.0,95.896194 +3200.0,95.762047 +3250.0,95.602325 +3300.0,95.413963 +3350.0,95.214676 +3400.0,94.994156 +3450.0,94.771378 +3500.0,94.543541 +3550.0,94.316582 +3600.0,94.091095 +3650.0,93.875275 +3700.0,93.670792 +3750.0,93.471527 +3820.0,93.215836 +3870.0,93.046844 +3950.0,92.80426 +4000.0,92.675789 +4060.0,92.53064 +4120.0,92.413155 +4180.0,92.315628 +4250.0,92.22007 +4310.0,92.165283 +4370.0,92.117958 +4440.0,92.088135 +4500.0,92.082939 +4550.0,92.086319 +4620.0,92.101715 +4680.0,92.123383 +4750.0,92.15094 +4820.0,92.170921 +4870.0,92.189308 +4940.0,92.197998 +5000.0,92.188568 +5080.0,92.153671 +5150.0,92.084801 +5220.0,91.980217 +5300.0,91.808426 +5380.0,91.583267 +5450.0,91.332947 +5520.0,91.054901 +5600.0,90.688499 +5700.0,90.191238 +5800.0,89.689796 +5900.0,89.193619 +6000.0,88.745461 +6080.0,88.44545 +6150.0,88.223404 +6220.0,88.072449 +6300.0,87.983315 +6400.0,88.038513 +6500.0,88.258636 +6600.0,88.673828 +6700.0,89.277138 +6800.0,89.994736 +6900.0,90.812706 +7000.0,91.655334 +7100.0,92.422348 +7200.0,93.065163 +7300.0,93.554398 +7400.0,93.869781 +7500.0,94.051048 +7620.0,94.133606 +7750.0,94.134773 +7880.0,94.078163 +8000.0,93.996819 +8120.0,93.842842 +8250.0,93.55722 +8380.0,93.095657 +8500.0,92.506248 +8620.0,91.770233 +8750.0,90.851151 +8850.0,90.088356 +9000.0,88.926773 +9120.0,88.03231 +9250.0,87.08622 +9380.0,86.190002 +9500.0,85.408005 +9620.0,84.679283 +9750.0,83.974007 +9880.0,83.324043 +10000.0,82.770538 +10150.0,82.18972 +10300.0,81.671303 +10440.0,81.212059 +10600.0,80.802132 +10750.0,80.494598 +10900.0,80.208961 +11060.0,80.017876 +11200.0,79.931107 +11380.0,79.841034 +11500.0,79.796036 +11720.0,79.817871 +11800.0,79.856346 +12060.0,80.02198 +12200.0,80.189079 +12410.0,80.481339 +12500.0,80.588593 +12650.0,80.695976 +12800.0,80.655846 +13150.0,80.27346 +13200.0,80.22419 +13400.0,79.997185 +13600.0,79.924744 +13800.0,79.958786 +14000.0,80.192818 +14300.0,80.744476 +14500.0,81.346573 +14750.0,82.150314 +15000.0,83.122765 +15250.0,84.026924 +15500.0,84.569672 +15750.0,84.863876 +16000.0,84.89698 +16250.0,83.962463 +16500.0,81.495934 +16750.0,78.037849 +17000.0,74.585602 +17250.0,70.568008 +17500.0,67.431458 +17750.0,65.128929 +18000.0,63.996498 +18250.0,64.06855 +18500.0,63.473297 +18750.0,61.851959 +19000.0,59.501434 +19250.0,64.244003 +19500.0,64.423065 +19750.0,61.971725 diff --git a/backend/main.py b/backend/main.py index 349d09a..422a5cb 100644 --- a/backend/main.py +++ b/backend/main.py @@ -72,6 +72,6 @@ if __name__ == "__main__": uvicorn.run( "main:app", host="0.0.0.0", - port=8002, + port=8083, reload=False ) diff --git a/backend/routes/models.py b/backend/routes/models.py index 1e9878b..1027603 100644 --- a/backend/routes/models.py +++ b/backend/routes/models.py @@ -22,9 +22,13 @@ MEILISEARCH_API_KEY = os.getenv("MEILISEARCH_API_KEY", "") MEILISEARCH_INDEX = os.getenv("MEILISEARCH_INDEX", "models") # 文件上传配置 -UPLOAD_FOLDER = Path(__file__).parent.parent.parent / "autoeq" / "measurements" +UPLOAD_FOLDER = Path("/data/project/autoeq/measurements") ALLOWED_EXTENSIONS = {'.csv', '.txt', '.json'} +# 记录上传路径配置 +logger.info(f"UPLOAD_FOLDER configured as: {UPLOAD_FOLDER}") +logger.info(f"UPLOAD_FOLDER absolute path: {UPLOAD_FOLDER.absolute()}") + @router.get("/", response_model=ApiResponse) def get_models( @@ -104,6 +108,7 @@ def create_model( measurement_filename = None if measurement_file and measurement_file.filename: logger.info(f"Uploading measurement file: {measurement_file.filename}") + logger.info(f"UPLOAD_FOLDER is: {UPLOAD_FOLDER}") # 验证文件扩展名 file_ext = os.path.splitext(measurement_file.filename)[1].lower() if file_ext not in ALLOWED_EXTENSIONS: @@ -112,10 +117,12 @@ def create_model( # 创建保存路径:autoeq/measurements/{source}/data/{form}/{filename} save_dir = UPLOAD_FOLDER / source / "data" / form + logger.info(f"Creating directory: {save_dir}") save_dir.mkdir(parents=True, exist_ok=True) # 保存文件(保留原文件名) file_path = save_dir / measurement_file.filename + logger.info(f"Saving file to: {file_path}") with open(file_path, "wb") as buffer: shutil.copyfileobj(measurement_file.file, buffer) diff --git a/docker-compose.yml b/docker-compose.yml index 119de93..6af669a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,7 +5,7 @@ services: build: context: ./backend dockerfile: Dockerfile - container_name: audio-dashboard-backend + container_name: dashboard-backend environment: - DATABASE_HOST=${DATABASE_HOST:-localhost} - DATABASE_PORT=${DATABASE_PORT:-3306} @@ -22,14 +22,17 @@ services: restart: unless-stopped networks: - audio-network + volumes: + - /data/project/autoeq/measurements:/data/project/autoeq/measurements frontend: - build: - context: ./frontend - dockerfile: Dockerfile - container_name: audio-dashboard-frontend + image: nginx:alpine + container_name: dashboard-frontend ports: - "8082:80" + volumes: + - /data/project/dashboard/frontend/dist:/usr/share/nginx/html:ro + - /data/project/dashboard/frontend/nginx.conf:/etc/nginx/conf.d/default.conf:ro depends_on: - backend restart: unless-stopped diff --git a/extract_frequency_response.py b/extract_frequency_response.py deleted file mode 100644 index 829a6d1..0000000 --- a/extract_frequency_response.py +++ /dev/null @@ -1,120 +0,0 @@ -import cv2 -import numpy as np -import matplotlib.pyplot as plt -import json - -# 读取图片 -img_path = r"C:\Users\yangy\.cursor\projects\h-soft-projects-luxsin-dashboard/assets/c__Users_yangy_AppData_Roaming_Cursor_User_workspaceStorage_b134a9df77916b35c1e5b1ece8dc14fe_images_Arcona-avg-0b78da44-4aaa-465b-9b2b-fba051a28742.png" -img = cv2.imread(img_path) -img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) -img_copy = img.copy() -gray = cv2.cvtColor(img_copy, cv2.COLOR_RGB2GRAY) - -print(f"图片尺寸:{img_copy.shape}") -height, width = gray.shape - -# 定义图表区域(排除顶部标题和底部图例) -# 根据图片估算:顶部约 5%,底部约 8% -chart_top = int(height * 0.05) -chart_bottom = int(height * 0.92) -chart_left = int(width * 0.02) -chart_right = int(width * 0.98) - -# 裁剪出图表区域 -chart_roi = gray[chart_top:chart_bottom, chart_left:chart_right] - -# 使用阈值提取白色线条 -_, thresh = cv2.threshold(chart_roi, 200, 255, cv2.THRESH_BINARY) - -# 形态学操作,连接断开的线条 -kernel = np.ones((3,3), np.uint8) -dilated_thresh = cv2.dilate(thresh, kernel, iterations=2) -eroded_thresh = cv2.erode(dilated_thresh, kernel, iterations=1) - -# 查找轮廓 -contours, _ = cv2.findContours(eroded_thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) - -# 找到最大的连续轮廓(应该是频响曲线) -largest_contour = None -max_area = 0 - -for contour in contours: - area = cv2.contourArea(contour) - if area > max_area: - max_area = area - largest_contour = contour - -print(f"最大轮廓面积:{max_area}") - -# 提取频响曲线上的点 -frequency_points = [] - -if largest_contour is not None: - # 对于每个 x 坐标,找到对应的 y 坐标(取平均值) - x_coords = {} - - for point in largest_contour: - x, y = point[0] - # 转换回原图坐标 - global_x = int(x) + chart_left - global_y = int(y) + chart_top - - if global_x not in x_coords: - x_coords[global_x] = [] - x_coords[global_x].append(global_y) - - # 对每个 x,计算平均 y 值 - for x in sorted(x_coords.keys()): - y_values = x_coords[x] - avg_y = sum(y_values) // len(y_values) - frequency_points.append([int(x), int(avg_y)]) - - print(f"提取的频响曲线点数:{len(frequency_points)}") - - # 创建可视化结果 - result = img_copy.copy() - - # 绘制检测到的点 - for i, (x, y) in enumerate(frequency_points): - cv2.circle(result, (x, y), 1, (255, 0, 0), -1) - - # 显示结果 - plt.figure(figsize=(20, 10)) - plt.imshow(result) - plt.title(f'Extracted Frequency Response Curve ({len(frequency_points)} points)') - plt.axis('off') - plt.tight_layout() - plt.show() - - # 保存点到 JSON 文件 - output_data = { - "frequency_points": frequency_points, - "chart_area": { - "top": int(chart_top), - "bottom": int(chart_bottom), - "left": int(chart_left), - "right": int(chart_right) - }, - "image_size": { - "width": int(width), - "height": int(height) - } - } - - with open('frequency_response_points.json', 'w', encoding='utf-8') as f: - json.dump(output_data, f, ensure_ascii=False, indent=2) - - print(f"\n频响点位已保存到 frequency_response_points.json") - print(f"\n前 50 个点的坐标 (x, y):") - for i, point in enumerate(frequency_points[:50]): - print(f"{i+1}: {point}") - - # 也保存为 CSV 格式,方便查看 - with open('frequency_response_points.csv', 'w', encoding='utf-8') as f: - f.write("index,x,y\n") - for i, point in enumerate(frequency_points): - f.write(f"{i+1},{point[0]},{point[1]}\n") - - print(f"\n点位也已保存到 frequency_response_points.csv") -else: - print("未找到频响曲线") diff --git a/frequency_response.csv b/frequency_response.csv deleted file mode 100644 index f358881..0000000 --- a/frequency_response.csv +++ /dev/null @@ -1,535 +0,0 @@ -index,pixel_x,pixel_y,frequency_hz,db_value -1,278,236,122.58,99.03 -2,284,237,127.86,98.93 -3,285,236,128.76,99.03 -4,286,236,129.67,99.03 -5,287,238,130.58,98.83 -6,288,239,131.5,98.73 -7,289,236,132.43,99.03 -8,290,237,133.36,98.93 -9,295,237,138.13,98.93 -10,296,237,139.11,98.93 -11,297,238,140.09,98.83 -12,323,238,168.17,98.83 -13,324,237,169.36,98.93 -14,325,237,170.55,98.93 -15,334,238,181.69,98.83 -16,335,239,182.97,98.73 -17,339,240,188.18,98.63 -18,340,239,189.51,98.73 -19,341,239,190.85,98.73 -20,342,241,192.19,98.53 -21,343,242,193.55,98.43 -22,344,240,194.91,98.63 -23,345,241,196.29,98.53 -24,346,240,197.67,98.63 -25,347,241,199.07,98.53 -26,348,243,200.47,98.33 -27,349,242,201.88,98.43 -28,350,242,203.31,98.43 -29,352,244,206.18,98.23 -30,353,243,207.64,98.33 -31,354,243,209.1,98.33 -32,358,245,215.06,98.12 -33,359,244,216.58,98.23 -34,360,244,218.11,98.23 -35,361,246,219.65,98.02 -36,362,245,221.19,98.12 -37,363,245,222.75,98.12 -38,364,247,224.32,97.92 -39,365,248,225.91,97.82 -40,366,245,227.5,98.12 -41,367,247,229.1,97.92 -42,368,247,230.72,97.92 -43,369,248,232.35,97.82 -44,370,250,233.99,97.62 -45,371,248,235.64,97.82 -46,372,249,237.3,97.72 -47,373,249,238.97,97.72 -48,374,250,240.66,97.62 -49,375,250,242.35,97.62 -50,376,251,244.06,97.52 -51,377,251,245.78,97.52 -52,378,252,247.52,97.42 -53,379,252,249.26,97.42 -54,380,253,251.02,97.32 -55,381,253,252.79,97.32 -56,382,253,254.57,97.32 -57,383,255,256.37,97.12 -58,384,257,258.18,96.92 -59,385,255,260.0,97.12 -60,386,257,261.83,96.92 -61,387,259,263.68,96.71 -62,388,257,265.54,96.92 -63,389,257,267.41,96.92 -64,390,262,269.29,96.41 -65,391,262,271.19,96.41 -66,392,260,273.11,96.61 -67,393,260,275.03,96.61 -68,397,268,282.87,95.81 -69,398,266,284.87,96.01 -70,399,265,286.88,96.11 -71,408,278,305.6,94.8 -72,409,276,307.76,95.0 -73,410,275,309.93,95.1 -74,413,282,316.53,94.4 -75,414,282,318.77,94.4 -76,415,280,321.01,94.6 -77,416,282,323.28,94.4 -78,417,284,325.56,94.19 -79,418,283,327.85,94.29 -80,419,283,330.16,94.29 -81,420,284,332.49,94.19 -82,421,284,334.84,94.19 -83,422,285,337.2,94.09 -84,423,284,339.58,94.19 -85,424,285,341.97,94.09 -86,426,287,346.81,93.89 -87,427,288,349.26,93.79 -88,429,288,354.2,93.79 -89,430,287,356.7,93.89 -90,433,285,364.3,94.09 -91,434,284,366.87,94.19 -92,435,285,369.45,94.09 -93,436,284,372.06,94.19 -94,437,286,374.68,93.99 -95,438,284,377.33,94.19 -96,439,283,379.99,94.29 -97,440,283,382.67,94.29 -98,441,281,385.37,94.5 -99,442,282,388.08,94.4 -100,443,280,390.82,94.6 -101,444,281,393.58,94.5 -102,446,280,399.15,94.6 -103,447,278,401.96,94.8 -104,448,278,404.8,94.8 -105,449,278,407.65,94.8 -106,450,277,410.52,94.9 -107,451,279,413.42,94.7 -108,452,277,416.34,94.9 -109,453,276,419.27,95.0 -110,454,277,422.23,94.9 -111,455,275,425.21,95.1 -112,456,275,428.2,95.1 -113,457,275,431.22,95.1 -114,458,273,434.26,95.3 -115,459,276,437.33,95.0 -116,460,274,440.41,95.2 -117,461,272,443.52,95.4 -118,462,273,446.64,95.3 -119,463,272,449.79,95.4 -120,464,274,452.97,95.2 -121,465,272,456.16,95.4 -122,466,273,459.38,95.3 -123,467,270,462.62,95.6 -124,468,270,465.88,95.6 -125,469,269,469.16,95.71 -126,470,269,472.47,95.71 -127,471,268,475.8,95.81 -128,472,268,479.16,95.81 -129,473,267,482.54,95.91 -130,474,267,485.94,95.91 -131,475,268,489.37,95.81 -132,476,266,492.82,96.01 -133,477,264,496.3,96.21 -134,478,264,499.8,96.21 -135,479,264,503.32,96.21 -136,480,263,506.87,96.31 -137,481,263,510.44,96.31 -138,482,262,514.04,96.41 -139,483,262,517.67,96.41 -140,484,260,521.32,96.61 -141,485,261,524.99,96.51 -142,486,260,528.7,96.61 -143,487,260,532.43,96.61 -144,488,258,536.18,96.81 -145,489,259,539.96,96.71 -146,490,258,543.77,96.81 -147,491,260,547.6,96.61 -148,492,258,551.47,96.81 -149,493,256,555.35,97.02 -150,494,259,559.27,96.71 -151,495,257,563.21,96.92 -152,496,256,567.19,97.02 -153,497,257,571.19,96.92 -154,499,255,579.27,97.12 -155,500,255,583.36,97.12 -156,501,256,587.47,97.02 -157,502,254,591.61,97.22 -158,503,254,595.78,97.22 -159,504,255,599.99,97.12 -160,506,253,608.48,97.32 -161,507,253,612.77,97.32 -162,508,254,617.09,97.22 -163,513,253,639.16,97.32 -164,514,252,643.66,97.42 -165,519,252,666.68,97.42 -166,520,251,671.38,97.52 -167,537,251,756.58,97.52 -168,538,252,761.91,97.42 -169,541,253,778.14,97.32 -170,542,254,783.63,97.22 -171,543,251,789.16,97.52 -172,544,252,794.72,97.42 -173,545,254,800.33,97.22 -174,546,255,805.97,97.12 -175,547,252,811.66,97.42 -176,548,254,817.38,97.22 -177,549,256,823.14,97.02 -178,550,254,828.95,97.22 -179,551,255,834.79,97.12 -180,552,254,840.68,97.22 -181,553,256,846.61,97.02 -182,555,257,858.59,96.92 -183,556,259,864.65,96.71 -184,557,258,870.74,96.81 -185,558,258,876.88,96.81 -186,559,259,883.07,96.71 -187,560,259,889.3,96.71 -188,561,259,895.57,96.71 -189,562,261,901.88,96.51 -190,563,263,908.24,96.31 -191,564,262,914.65,96.41 -192,565,262,921.1,96.41 -193,566,263,927.59,96.31 -194,567,263,934.13,96.31 -195,568,266,940.72,96.01 -196,569,265,947.36,96.11 -197,570,267,954.04,95.91 -198,571,265,960.76,96.11 -199,572,266,967.54,96.01 -200,573,265,974.36,96.11 -201,574,267,981.23,95.91 -202,575,267,988.15,95.91 -203,576,268,995.12,95.81 -204,577,270,1002.14,95.6 -205,578,267,1009.21,95.91 -206,579,268,1016.32,95.81 -207,580,270,1023.49,95.6 -208,581,269,1030.71,95.71 -209,582,269,1037.98,95.71 -210,583,271,1045.3,95.5 -211,584,272,1052.67,95.4 -212,585,269,1060.09,95.71 -213,586,271,1067.57,95.5 -214,587,271,1075.1,95.5 -215,588,272,1082.68,95.4 -216,589,274,1090.31,95.2 -217,590,271,1098.0,95.5 -218,591,272,1105.74,95.4 -219,595,272,1137.27,95.4 -220,596,271,1145.29,95.5 -221,597,272,1153.36,95.4 -222,598,271,1161.5,95.5 -223,599,271,1169.69,95.5 -224,600,270,1177.94,95.6 -225,601,270,1186.24,95.6 -226,602,269,1194.61,95.71 -227,603,269,1203.03,95.71 -228,604,268,1211.52,95.81 -229,605,270,1220.06,95.6 -230,606,268,1228.66,95.81 -231,607,266,1237.33,96.01 -232,608,269,1246.05,95.71 -233,609,268,1254.84,95.81 -234,610,266,1263.69,96.01 -235,611,266,1272.6,96.01 -236,612,267,1281.58,95.91 -237,613,265,1290.61,96.11 -238,614,265,1299.71,96.11 -239,615,266,1308.88,96.01 -240,617,264,1327.41,96.21 -241,618,264,1336.77,96.21 -242,619,265,1346.19,96.11 -243,628,263,1434.08,96.31 -244,629,262,1444.2,96.41 -245,630,265,1454.38,96.11 -246,631,264,1464.64,96.21 -247,632,262,1474.97,96.41 -248,633,261,1485.37,96.51 -249,634,264,1495.84,96.21 -250,635,262,1506.39,96.41 -251,636,260,1517.01,96.61 -252,637,261,1527.71,96.51 -253,638,260,1538.48,96.61 -254,639,262,1549.33,96.41 -255,640,260,1560.26,96.61 -256,641,258,1571.26,96.81 -257,642,259,1582.34,96.71 -258,643,258,1593.5,96.81 -259,644,260,1604.74,96.61 -260,645,258,1616.06,96.81 -261,646,256,1627.45,97.02 -262,647,257,1638.93,96.92 -263,648,256,1650.49,97.02 -264,649,258,1662.13,96.81 -265,650,256,1673.85,97.02 -266,651,254,1685.65,97.22 -267,652,255,1697.54,97.12 -268,653,254,1709.51,97.22 -269,654,254,1721.56,97.22 -270,655,253,1733.7,97.32 -271,656,253,1745.93,97.32 -272,657,252,1758.24,97.42 -273,658,252,1770.64,97.42 -274,659,251,1783.13,97.52 -275,660,251,1795.7,97.52 -276,661,250,1808.37,97.62 -277,662,250,1821.12,97.62 -278,663,249,1833.96,97.72 -279,664,249,1846.89,97.72 -280,665,248,1859.92,97.82 -281,666,248,1873.03,97.82 -282,667,247,1886.24,97.92 -283,668,249,1899.54,97.72 -284,669,248,1912.94,97.82 -285,674,246,1981.35,98.02 -286,676,248,2009.39,97.82 -287,677,242,2023.56,98.43 -288,679,242,2052.2,98.43 -289,681,239,2081.25,98.73 -290,683,236,2110.71,99.03 -291,685,233,2140.58,99.33 -292,687,232,2170.88,99.44 -293,688,226,2186.19,100.04 -294,690,228,2217.13,99.84 -295,692,221,2248.51,100.54 -296,694,223,2280.33,100.34 -297,696,216,2312.61,101.05 -298,698,218,2345.34,100.85 -299,699,213,2361.88,101.35 -300,700,213,2378.54,101.35 -301,701,213,2395.31,101.35 -302,702,213,2412.2,101.35 -303,703,214,2429.21,101.25 -304,704,214,2446.34,101.25 -305,705,213,2463.59,101.35 -306,706,213,2480.97,101.35 -307,708,210,2516.08,101.65 -308,711,207,2569.69,101.96 -309,712,207,2587.81,101.96 -310,717,200,2680.35,102.66 -311,718,197,2699.25,102.96 -312,719,199,2718.29,102.76 -313,720,197,2737.46,102.96 -314,721,195,2756.76,103.17 -315,722,195,2776.2,103.17 -316,726,197,2855.35,102.96 -317,727,194,2875.48,103.27 -318,728,195,2895.76,103.17 -319,729,195,2916.18,103.17 -320,730,201,2936.74,102.56 -321,731,198,2957.45,102.86 -322,733,198,2999.31,102.86 -323,734,198,3020.46,102.86 -324,736,196,3063.22,103.06 -325,738,195,3106.57,103.17 -326,740,188,3150.54,103.87 -327,741,188,3172.76,103.87 -328,743,186,3217.66,104.07 -329,744,186,3240.35,104.07 -330,745,185,3263.21,104.17 -331,746,187,3286.22,103.97 -332,748,187,3332.73,103.97 -333,749,188,3356.23,103.87 -334,750,186,3379.9,104.07 -335,751,186,3403.73,104.07 -336,752,186,3427.74,104.07 -337,760,198,3625.96,102.86 -338,763,197,3703.21,102.96 -339,774,213,4000.82,101.35 -340,776,214,4057.45,101.25 -341,777,218,4086.06,100.85 -342,778,214,4114.87,101.25 -343,779,219,4143.89,100.75 -344,780,223,4173.11,100.34 -345,781,220,4202.54,100.65 -346,782,222,4232.18,100.44 -347,783,222,4262.02,100.44 -348,784,225,4292.08,100.14 -349,785,224,4322.35,100.24 -350,787,223,4383.52,100.34 -351,789,227,4445.57,99.94 -352,790,226,4476.92,100.04 -353,791,227,4508.49,99.94 -354,792,227,4540.28,99.94 -355,793,232,4572.3,99.44 -356,794,232,4604.54,99.44 -357,795,231,4637.02,99.54 -358,796,230,4669.72,99.64 -359,797,231,4702.65,99.54 -360,799,231,4769.21,99.54 -361,800,230,4802.84,99.64 -362,801,233,4836.71,99.33 -363,802,232,4870.82,99.44 -364,805,232,4974.59,99.44 -365,806,233,5009.67,99.33 -366,808,230,5080.58,99.64 -367,810,227,5152.49,99.94 -368,811,226,5188.82,100.04 -369,812,220,5225.41,100.65 -370,813,212,5262.26,101.45 -371,814,204,5299.37,102.26 -372,815,197,5336.74,102.96 -373,816,192,5374.38,103.47 -374,817,191,5412.28,103.57 -375,818,186,5450.44,104.07 -376,820,186,5527.59,104.07 -377,821,190,5566.57,103.67 -378,822,189,5605.82,103.77 -379,823,192,5645.35,103.47 -380,824,195,5685.17,103.17 -381,825,198,5725.26,102.86 -382,826,201,5765.63,102.56 -383,827,205,5806.29,102.16 -384,828,208,5847.24,101.85 -385,829,212,5888.47,101.45 -386,830,215,5930.0,101.15 -387,831,218,5971.81,100.85 -388,832,222,6013.93,100.44 -389,833,225,6056.34,100.14 -390,834,229,6099.05,99.74 -391,835,231,6142.06,99.54 -392,836,234,6185.37,99.23 -393,837,237,6228.99,98.93 -394,838,239,6272.92,98.73 -395,839,241,6317.15,98.53 -396,840,243,6361.7,98.33 -397,841,245,6406.56,98.12 -398,842,244,6451.74,98.23 -399,843,249,6497.24,97.72 -400,845,249,6589.2,97.72 -401,850,259,6824.83,96.71 -402,851,259,6872.96,96.71 -403,852,258,6921.43,96.81 -404,853,258,6970.24,96.81 -405,854,259,7019.39,96.71 -406,856,258,7118.74,96.81 -407,857,261,7168.94,96.51 -408,859,254,7270.41,97.22 -409,861,256,7373.31,97.02 -410,864,248,7530.41,97.82 -411,865,249,7583.51,97.72 -412,866,244,7636.99,98.23 -413,867,245,7690.84,98.12 -414,868,243,7745.08,98.33 -415,869,241,7799.7,98.53 -416,870,238,7854.7,98.83 -417,871,233,7910.09,99.33 -418,872,228,7965.87,99.84 -419,873,222,8022.05,100.44 -420,874,213,8078.62,101.35 -421,875,224,8135.59,100.24 -422,877,217,8250.74,100.95 -423,878,221,8308.92,100.54 -424,879,225,8367.52,100.14 -425,880,230,8426.52,99.64 -426,881,233,8485.95,99.33 -427,882,236,8545.79,99.03 -428,883,239,8606.06,98.73 -429,884,241,8666.75,98.53 -430,885,244,8727.86,98.23 -431,886,247,8789.41,97.92 -432,887,250,8851.39,97.62 -433,888,254,8913.81,97.22 -434,889,259,8976.67,96.71 -435,890,264,9039.98,96.21 -436,891,269,9103.73,95.71 -437,892,273,9167.93,95.3 -438,893,277,9232.58,94.9 -439,894,282,9297.69,94.4 -440,895,286,9363.25,93.99 -441,896,292,9429.28,93.39 -442,897,298,9495.78,92.78 -443,898,304,9562.74,92.18 -444,899,310,9630.18,91.57 -445,901,302,9766.48,92.38 -446,902,313,9835.35,91.27 -447,903,304,9904.71,92.18 -448,904,306,9974.56,91.98 -449,906,302,10115.73,92.38 -450,907,304,10187.07,92.18 -451,908,309,10258.91,91.67 -452,909,313,10331.26,91.27 -453,910,318,10404.11,90.77 -454,911,319,10477.48,90.67 -455,912,319,10551.37,90.67 -456,914,322,10700.71,90.36 -457,915,317,10776.17,90.87 -458,916,317,10852.16,90.87 -459,917,313,10928.69,91.27 -460,918,309,11005.76,91.67 -461,919,304,11083.37,92.18 -462,920,299,11161.53,92.68 -463,921,294,11240.24,93.19 -464,922,288,11319.51,93.79 -465,923,282,11399.33,94.4 -466,924,276,11479.72,95.0 -467,925,269,11560.68,95.71 -468,926,262,11642.2,96.41 -469,927,256,11724.3,97.02 -470,928,253,11806.98,97.32 -471,929,253,11890.24,97.32 -472,934,248,12315.45,97.82 -473,935,248,12402.29,97.82 -474,936,248,12489.75,97.82 -475,937,245,12577.83,98.12 -476,938,242,12666.53,98.43 -477,939,239,12755.85,98.73 -478,940,236,12845.81,99.03 -479,941,233,12936.4,99.33 -480,942,230,13027.62,99.64 -481,943,229,13119.49,99.74 -482,945,233,13305.18,99.33 -483,946,232,13399.01,99.44 -484,947,238,13493.5,98.83 -485,948,249,13588.66,97.72 -486,949,262,13684.48,96.41 -487,950,278,13780.98,94.8 -488,951,296,13878.17,92.98 -489,952,314,13976.04,91.17 -490,953,324,14074.59,90.16 -491,954,309,14173.85,91.67 -492,955,343,14273.8,88.25 -493,956,329,14374.46,89.66 -494,957,315,14475.83,91.07 -495,958,304,14577.91,92.18 -496,959,296,14680.71,92.98 -497,960,298,14784.24,92.78 -498,962,293,14993.49,93.29 -499,963,290,15099.23,93.59 -500,964,297,15205.71,92.88 -501,965,299,15312.94,92.68 -502,966,302,15420.92,92.38 -503,967,305,15529.67,92.08 -504,968,309,15639.19,91.67 -505,969,315,15749.47,91.07 -506,970,322,15860.54,90.36 -507,971,330,15972.39,89.56 -508,972,339,16085.02,88.65 -509,973,344,16198.45,88.15 -510,974,352,16312.68,87.34 -511,975,345,16427.72,88.04 -512,976,352,16543.57,87.34 -513,977,350,16660.23,87.54 -514,978,349,16777.72,87.64 -515,981,345,17135.18,88.04 -516,982,345,17256.01,88.04 -517,983,343,17377.7,88.25 -518,984,338,17500.25,88.75 -519,985,333,17623.66,89.25 -520,986,327,17747.94,89.86 -521,987,322,17873.1,90.36 -522,988,317,17999.14,90.87 -523,990,324,18253.89,90.16 -524,991,314,18382.62,91.17 -525,992,323,18512.25,90.26 -526,993,329,18642.8,89.66 -527,994,337,18774.27,88.85 -528,995,345,18906.67,88.04 -529,996,352,19039.99,87.34 -530,998,342,19309.48,88.35 -531,999,348,19445.65,87.74 -532,1000,343,19582.78,88.25 -533,1001,335,19720.88,89.05 -534,1002,337,19859.95,88.85 diff --git a/frequency_response_curve.png b/frequency_response_curve.png deleted file mode 100644 index 2359a91..0000000 Binary files a/frequency_response_curve.png and /dev/null differ diff --git a/frequency_response_detailed.json b/frequency_response_detailed.json deleted file mode 100644 index f1ecd09..0000000 --- a/frequency_response_detailed.json +++ /dev/null @@ -1,3228 +0,0 @@ -{ - "metadata": { - "image_size": { - "width": 1024, - "height": 570 - }, - "chart_area": { - "top": 28, - "bottom": 524, - "left": 20, - "right": 1003 - }, - "frequency_range": { - "min": 20, - "max": 20000 - }, - "db_range": { - "min": 70, - "max": 120 - } - }, - "data_points": [ - { - "pixel_x": 278, - "pixel_y": 236, - "frequency_hz": 122.58, - "db_value": 99.03 - }, - { - "pixel_x": 284, - "pixel_y": 237, - "frequency_hz": 127.86, - "db_value": 98.93 - }, - { - "pixel_x": 285, - "pixel_y": 236, - "frequency_hz": 128.76, - "db_value": 99.03 - }, - { - "pixel_x": 286, - "pixel_y": 236, - "frequency_hz": 129.67, - "db_value": 99.03 - }, - { - "pixel_x": 287, - "pixel_y": 238, - "frequency_hz": 130.58, - "db_value": 98.83 - }, - { - "pixel_x": 288, - "pixel_y": 239, - "frequency_hz": 131.5, - "db_value": 98.73 - }, - { - "pixel_x": 289, - "pixel_y": 236, - "frequency_hz": 132.43, - "db_value": 99.03 - }, - { - "pixel_x": 290, - "pixel_y": 237, - "frequency_hz": 133.36, - "db_value": 98.93 - }, - { - "pixel_x": 295, - "pixel_y": 237, - "frequency_hz": 138.13, - "db_value": 98.93 - }, - { - "pixel_x": 296, - "pixel_y": 237, - "frequency_hz": 139.11, - "db_value": 98.93 - }, - { - "pixel_x": 297, - "pixel_y": 238, - "frequency_hz": 140.09, - "db_value": 98.83 - }, - { - "pixel_x": 323, - "pixel_y": 238, - "frequency_hz": 168.17, - "db_value": 98.83 - }, - { - "pixel_x": 324, - "pixel_y": 237, - "frequency_hz": 169.36, - "db_value": 98.93 - }, - { - "pixel_x": 325, - "pixel_y": 237, - "frequency_hz": 170.55, - "db_value": 98.93 - }, - { - "pixel_x": 334, - "pixel_y": 238, - "frequency_hz": 181.69, - "db_value": 98.83 - }, - { - "pixel_x": 335, - "pixel_y": 239, - "frequency_hz": 182.97, - "db_value": 98.73 - }, - { - "pixel_x": 339, - "pixel_y": 240, - "frequency_hz": 188.18, - "db_value": 98.63 - }, - { - "pixel_x": 340, - "pixel_y": 239, - "frequency_hz": 189.51, - "db_value": 98.73 - }, - { - "pixel_x": 341, - "pixel_y": 239, - "frequency_hz": 190.85, - "db_value": 98.73 - }, - { - "pixel_x": 342, - "pixel_y": 241, - "frequency_hz": 192.19, - "db_value": 98.53 - }, - { - "pixel_x": 343, - "pixel_y": 242, - "frequency_hz": 193.55, - "db_value": 98.43 - }, - { - "pixel_x": 344, - "pixel_y": 240, - "frequency_hz": 194.91, - "db_value": 98.63 - }, - { - "pixel_x": 345, - "pixel_y": 241, - "frequency_hz": 196.29, - "db_value": 98.53 - }, - { - "pixel_x": 346, - "pixel_y": 240, - "frequency_hz": 197.67, - "db_value": 98.63 - }, - { - "pixel_x": 347, - "pixel_y": 241, - "frequency_hz": 199.07, - "db_value": 98.53 - }, - { - "pixel_x": 348, - "pixel_y": 243, - "frequency_hz": 200.47, - "db_value": 98.33 - }, - { - "pixel_x": 349, - "pixel_y": 242, - "frequency_hz": 201.88, - "db_value": 98.43 - }, - { - "pixel_x": 350, - "pixel_y": 242, - "frequency_hz": 203.31, - "db_value": 98.43 - }, - { - "pixel_x": 352, - "pixel_y": 244, - "frequency_hz": 206.18, - "db_value": 98.23 - }, - { - "pixel_x": 353, - "pixel_y": 243, - "frequency_hz": 207.64, - "db_value": 98.33 - }, - { - "pixel_x": 354, - "pixel_y": 243, - "frequency_hz": 209.1, - "db_value": 98.33 - }, - { - "pixel_x": 358, - "pixel_y": 245, - "frequency_hz": 215.06, - "db_value": 98.12 - }, - { - "pixel_x": 359, - "pixel_y": 244, - "frequency_hz": 216.58, - "db_value": 98.23 - }, - { - "pixel_x": 360, - "pixel_y": 244, - "frequency_hz": 218.11, - "db_value": 98.23 - }, - { - "pixel_x": 361, - "pixel_y": 246, - "frequency_hz": 219.65, - "db_value": 98.02 - }, - { - "pixel_x": 362, - "pixel_y": 245, - "frequency_hz": 221.19, - "db_value": 98.12 - }, - { - "pixel_x": 363, - "pixel_y": 245, - "frequency_hz": 222.75, - "db_value": 98.12 - }, - { - "pixel_x": 364, - "pixel_y": 247, - "frequency_hz": 224.32, - "db_value": 97.92 - }, - { - "pixel_x": 365, - "pixel_y": 248, - "frequency_hz": 225.91, - "db_value": 97.82 - }, - { - "pixel_x": 366, - "pixel_y": 245, - "frequency_hz": 227.5, - "db_value": 98.12 - }, - { - "pixel_x": 367, - "pixel_y": 247, - "frequency_hz": 229.1, - "db_value": 97.92 - }, - { - "pixel_x": 368, - "pixel_y": 247, - "frequency_hz": 230.72, - "db_value": 97.92 - }, - { - "pixel_x": 369, - "pixel_y": 248, - "frequency_hz": 232.35, - "db_value": 97.82 - }, - { - "pixel_x": 370, - "pixel_y": 250, - "frequency_hz": 233.99, - "db_value": 97.62 - }, - { - "pixel_x": 371, - "pixel_y": 248, - "frequency_hz": 235.64, - "db_value": 97.82 - }, - { - "pixel_x": 372, - "pixel_y": 249, - "frequency_hz": 237.3, - "db_value": 97.72 - }, - { - "pixel_x": 373, - "pixel_y": 249, - "frequency_hz": 238.97, - "db_value": 97.72 - }, - { - "pixel_x": 374, - "pixel_y": 250, - "frequency_hz": 240.66, - "db_value": 97.62 - }, - { - "pixel_x": 375, - "pixel_y": 250, - "frequency_hz": 242.35, - "db_value": 97.62 - }, - { - "pixel_x": 376, - "pixel_y": 251, - "frequency_hz": 244.06, - "db_value": 97.52 - }, - { - "pixel_x": 377, - "pixel_y": 251, - "frequency_hz": 245.78, - "db_value": 97.52 - }, - { - "pixel_x": 378, - "pixel_y": 252, - "frequency_hz": 247.52, - "db_value": 97.42 - }, - { - "pixel_x": 379, - "pixel_y": 252, - "frequency_hz": 249.26, - "db_value": 97.42 - }, - { - "pixel_x": 380, - "pixel_y": 253, - "frequency_hz": 251.02, - "db_value": 97.32 - }, - { - "pixel_x": 381, - "pixel_y": 253, - "frequency_hz": 252.79, - "db_value": 97.32 - }, - { - "pixel_x": 382, - "pixel_y": 253, - "frequency_hz": 254.57, - "db_value": 97.32 - }, - { - "pixel_x": 383, - "pixel_y": 255, - "frequency_hz": 256.37, - "db_value": 97.12 - }, - { - "pixel_x": 384, - "pixel_y": 257, - "frequency_hz": 258.18, - "db_value": 96.92 - }, - { - "pixel_x": 385, - "pixel_y": 255, - "frequency_hz": 260.0, - "db_value": 97.12 - }, - { - "pixel_x": 386, - "pixel_y": 257, - "frequency_hz": 261.83, - "db_value": 96.92 - }, - { - "pixel_x": 387, - "pixel_y": 259, - "frequency_hz": 263.68, - "db_value": 96.71 - }, - { - "pixel_x": 388, - "pixel_y": 257, - "frequency_hz": 265.54, - "db_value": 96.92 - }, - { - "pixel_x": 389, - "pixel_y": 257, - "frequency_hz": 267.41, - "db_value": 96.92 - }, - { - "pixel_x": 390, - "pixel_y": 262, - "frequency_hz": 269.29, - "db_value": 96.41 - }, - { - "pixel_x": 391, - "pixel_y": 262, - "frequency_hz": 271.19, - "db_value": 96.41 - }, - { - "pixel_x": 392, - "pixel_y": 260, - "frequency_hz": 273.11, - "db_value": 96.61 - }, - { - "pixel_x": 393, - "pixel_y": 260, - "frequency_hz": 275.03, - "db_value": 96.61 - }, - { - "pixel_x": 397, - "pixel_y": 268, - "frequency_hz": 282.87, - "db_value": 95.81 - }, - { - "pixel_x": 398, - "pixel_y": 266, - "frequency_hz": 284.87, - "db_value": 96.01 - }, - { - "pixel_x": 399, - "pixel_y": 265, - "frequency_hz": 286.88, - "db_value": 96.11 - }, - { - "pixel_x": 408, - "pixel_y": 278, - "frequency_hz": 305.6, - "db_value": 94.8 - }, - { - "pixel_x": 409, - "pixel_y": 276, - "frequency_hz": 307.76, - "db_value": 95.0 - }, - { - "pixel_x": 410, - "pixel_y": 275, - "frequency_hz": 309.93, - "db_value": 95.1 - }, - { - "pixel_x": 413, - "pixel_y": 282, - "frequency_hz": 316.53, - "db_value": 94.4 - }, - { - "pixel_x": 414, - "pixel_y": 282, - "frequency_hz": 318.77, - "db_value": 94.4 - }, - { - "pixel_x": 415, - "pixel_y": 280, - "frequency_hz": 321.01, - "db_value": 94.6 - }, - { - "pixel_x": 416, - "pixel_y": 282, - "frequency_hz": 323.28, - "db_value": 94.4 - }, - { - "pixel_x": 417, - "pixel_y": 284, - "frequency_hz": 325.56, - "db_value": 94.19 - }, - { - "pixel_x": 418, - "pixel_y": 283, - "frequency_hz": 327.85, - "db_value": 94.29 - }, - { - "pixel_x": 419, - "pixel_y": 283, - "frequency_hz": 330.16, - "db_value": 94.29 - }, - { - "pixel_x": 420, - "pixel_y": 284, - "frequency_hz": 332.49, - "db_value": 94.19 - }, - { - "pixel_x": 421, - "pixel_y": 284, - "frequency_hz": 334.84, - "db_value": 94.19 - }, - { - "pixel_x": 422, - "pixel_y": 285, - "frequency_hz": 337.2, - "db_value": 94.09 - }, - { - "pixel_x": 423, - "pixel_y": 284, - "frequency_hz": 339.58, - "db_value": 94.19 - }, - { - "pixel_x": 424, - "pixel_y": 285, - "frequency_hz": 341.97, - "db_value": 94.09 - }, - { - "pixel_x": 426, - "pixel_y": 287, - "frequency_hz": 346.81, - "db_value": 93.89 - }, - { - "pixel_x": 427, - "pixel_y": 288, - "frequency_hz": 349.26, - "db_value": 93.79 - }, - { - "pixel_x": 429, - "pixel_y": 288, - "frequency_hz": 354.2, - "db_value": 93.79 - }, - { - "pixel_x": 430, - "pixel_y": 287, - "frequency_hz": 356.7, - "db_value": 93.89 - }, - { - "pixel_x": 433, - "pixel_y": 285, - "frequency_hz": 364.3, - "db_value": 94.09 - }, - { - "pixel_x": 434, - "pixel_y": 284, - "frequency_hz": 366.87, - "db_value": 94.19 - }, - { - "pixel_x": 435, - "pixel_y": 285, - "frequency_hz": 369.45, - "db_value": 94.09 - }, - { - "pixel_x": 436, - "pixel_y": 284, - "frequency_hz": 372.06, - "db_value": 94.19 - }, - { - "pixel_x": 437, - "pixel_y": 286, - "frequency_hz": 374.68, - "db_value": 93.99 - }, - { - "pixel_x": 438, - "pixel_y": 284, - "frequency_hz": 377.33, - "db_value": 94.19 - }, - { - "pixel_x": 439, - "pixel_y": 283, - "frequency_hz": 379.99, - "db_value": 94.29 - }, - { - "pixel_x": 440, - "pixel_y": 283, - "frequency_hz": 382.67, - "db_value": 94.29 - }, - { - "pixel_x": 441, - "pixel_y": 281, - "frequency_hz": 385.37, - "db_value": 94.5 - }, - { - "pixel_x": 442, - "pixel_y": 282, - "frequency_hz": 388.08, - "db_value": 94.4 - }, - { - "pixel_x": 443, - "pixel_y": 280, - "frequency_hz": 390.82, - "db_value": 94.6 - }, - { - "pixel_x": 444, - "pixel_y": 281, - "frequency_hz": 393.58, - "db_value": 94.5 - }, - { - "pixel_x": 446, - "pixel_y": 280, - "frequency_hz": 399.15, - "db_value": 94.6 - }, - { - "pixel_x": 447, - "pixel_y": 278, - "frequency_hz": 401.96, - "db_value": 94.8 - }, - { - "pixel_x": 448, - "pixel_y": 278, - "frequency_hz": 404.8, - "db_value": 94.8 - }, - { - "pixel_x": 449, - "pixel_y": 278, - "frequency_hz": 407.65, - "db_value": 94.8 - }, - { - "pixel_x": 450, - "pixel_y": 277, - "frequency_hz": 410.52, - "db_value": 94.9 - }, - { - "pixel_x": 451, - "pixel_y": 279, - "frequency_hz": 413.42, - "db_value": 94.7 - }, - { - "pixel_x": 452, - "pixel_y": 277, - "frequency_hz": 416.34, - "db_value": 94.9 - }, - { - "pixel_x": 453, - "pixel_y": 276, - "frequency_hz": 419.27, - "db_value": 95.0 - }, - { - "pixel_x": 454, - "pixel_y": 277, - "frequency_hz": 422.23, - "db_value": 94.9 - }, - { - "pixel_x": 455, - "pixel_y": 275, - "frequency_hz": 425.21, - "db_value": 95.1 - }, - { - "pixel_x": 456, - "pixel_y": 275, - "frequency_hz": 428.2, - "db_value": 95.1 - }, - { - "pixel_x": 457, - "pixel_y": 275, - "frequency_hz": 431.22, - "db_value": 95.1 - }, - { - "pixel_x": 458, - "pixel_y": 273, - "frequency_hz": 434.26, - "db_value": 95.3 - }, - { - "pixel_x": 459, - "pixel_y": 276, - "frequency_hz": 437.33, - "db_value": 95.0 - }, - { - "pixel_x": 460, - "pixel_y": 274, - "frequency_hz": 440.41, - "db_value": 95.2 - }, - { - "pixel_x": 461, - "pixel_y": 272, - "frequency_hz": 443.52, - "db_value": 95.4 - }, - { - "pixel_x": 462, - "pixel_y": 273, - "frequency_hz": 446.64, - "db_value": 95.3 - }, - { - "pixel_x": 463, - "pixel_y": 272, - "frequency_hz": 449.79, - "db_value": 95.4 - }, - { - "pixel_x": 464, - "pixel_y": 274, - "frequency_hz": 452.97, - "db_value": 95.2 - }, - { - "pixel_x": 465, - "pixel_y": 272, - "frequency_hz": 456.16, - "db_value": 95.4 - }, - { - "pixel_x": 466, - "pixel_y": 273, - "frequency_hz": 459.38, - "db_value": 95.3 - }, - { - "pixel_x": 467, - "pixel_y": 270, - "frequency_hz": 462.62, - "db_value": 95.6 - }, - { - "pixel_x": 468, - "pixel_y": 270, - "frequency_hz": 465.88, - "db_value": 95.6 - }, - { - "pixel_x": 469, - "pixel_y": 269, - "frequency_hz": 469.16, - "db_value": 95.71 - }, - { - "pixel_x": 470, - "pixel_y": 269, - "frequency_hz": 472.47, - "db_value": 95.71 - }, - { - "pixel_x": 471, - "pixel_y": 268, - "frequency_hz": 475.8, - "db_value": 95.81 - }, - { - "pixel_x": 472, - "pixel_y": 268, - "frequency_hz": 479.16, - "db_value": 95.81 - }, - { - "pixel_x": 473, - "pixel_y": 267, - "frequency_hz": 482.54, - "db_value": 95.91 - }, - { - "pixel_x": 474, - "pixel_y": 267, - "frequency_hz": 485.94, - "db_value": 95.91 - }, - { - "pixel_x": 475, - "pixel_y": 268, - "frequency_hz": 489.37, - "db_value": 95.81 - }, - { - "pixel_x": 476, - "pixel_y": 266, - "frequency_hz": 492.82, - "db_value": 96.01 - }, - { - "pixel_x": 477, - "pixel_y": 264, - "frequency_hz": 496.3, - "db_value": 96.21 - }, - { - "pixel_x": 478, - "pixel_y": 264, - "frequency_hz": 499.8, - "db_value": 96.21 - }, - { - "pixel_x": 479, - "pixel_y": 264, - "frequency_hz": 503.32, - "db_value": 96.21 - }, - { - "pixel_x": 480, - "pixel_y": 263, - "frequency_hz": 506.87, - "db_value": 96.31 - }, - { - "pixel_x": 481, - "pixel_y": 263, - "frequency_hz": 510.44, - "db_value": 96.31 - }, - { - "pixel_x": 482, - "pixel_y": 262, - "frequency_hz": 514.04, - "db_value": 96.41 - }, - { - "pixel_x": 483, - "pixel_y": 262, - "frequency_hz": 517.67, - "db_value": 96.41 - }, - { - "pixel_x": 484, - "pixel_y": 260, - "frequency_hz": 521.32, - "db_value": 96.61 - }, - { - "pixel_x": 485, - "pixel_y": 261, - "frequency_hz": 524.99, - "db_value": 96.51 - }, - { - "pixel_x": 486, - "pixel_y": 260, - "frequency_hz": 528.7, - "db_value": 96.61 - }, - { - "pixel_x": 487, - "pixel_y": 260, - "frequency_hz": 532.43, - "db_value": 96.61 - }, - { - "pixel_x": 488, - "pixel_y": 258, - "frequency_hz": 536.18, - "db_value": 96.81 - }, - { - "pixel_x": 489, - "pixel_y": 259, - "frequency_hz": 539.96, - "db_value": 96.71 - }, - { - "pixel_x": 490, - "pixel_y": 258, - "frequency_hz": 543.77, - "db_value": 96.81 - }, - { - "pixel_x": 491, - "pixel_y": 260, - "frequency_hz": 547.6, - "db_value": 96.61 - }, - { - "pixel_x": 492, - "pixel_y": 258, - "frequency_hz": 551.47, - "db_value": 96.81 - }, - { - "pixel_x": 493, - "pixel_y": 256, - "frequency_hz": 555.35, - "db_value": 97.02 - }, - { - "pixel_x": 494, - "pixel_y": 259, - "frequency_hz": 559.27, - "db_value": 96.71 - }, - { - "pixel_x": 495, - "pixel_y": 257, - "frequency_hz": 563.21, - "db_value": 96.92 - }, - { - "pixel_x": 496, - "pixel_y": 256, - "frequency_hz": 567.19, - "db_value": 97.02 - }, - { - "pixel_x": 497, - "pixel_y": 257, - "frequency_hz": 571.19, - "db_value": 96.92 - }, - { - "pixel_x": 499, - "pixel_y": 255, - "frequency_hz": 579.27, - "db_value": 97.12 - }, - { - "pixel_x": 500, - "pixel_y": 255, - "frequency_hz": 583.36, - "db_value": 97.12 - }, - { - "pixel_x": 501, - "pixel_y": 256, - "frequency_hz": 587.47, - "db_value": 97.02 - }, - { - "pixel_x": 502, - "pixel_y": 254, - "frequency_hz": 591.61, - "db_value": 97.22 - }, - { - "pixel_x": 503, - "pixel_y": 254, - "frequency_hz": 595.78, - "db_value": 97.22 - }, - { - "pixel_x": 504, - "pixel_y": 255, - "frequency_hz": 599.99, - "db_value": 97.12 - }, - { - "pixel_x": 506, - "pixel_y": 253, - "frequency_hz": 608.48, - "db_value": 97.32 - }, - { - "pixel_x": 507, - "pixel_y": 253, - "frequency_hz": 612.77, - "db_value": 97.32 - }, - { - "pixel_x": 508, - "pixel_y": 254, - "frequency_hz": 617.09, - "db_value": 97.22 - }, - { - "pixel_x": 513, - "pixel_y": 253, - "frequency_hz": 639.16, - "db_value": 97.32 - }, - { - "pixel_x": 514, - "pixel_y": 252, - "frequency_hz": 643.66, - "db_value": 97.42 - }, - { - "pixel_x": 519, - "pixel_y": 252, - "frequency_hz": 666.68, - "db_value": 97.42 - }, - { - "pixel_x": 520, - "pixel_y": 251, - "frequency_hz": 671.38, - "db_value": 97.52 - }, - { - "pixel_x": 537, - "pixel_y": 251, - "frequency_hz": 756.58, - "db_value": 97.52 - }, - { - "pixel_x": 538, - "pixel_y": 252, - "frequency_hz": 761.91, - "db_value": 97.42 - }, - { - "pixel_x": 541, - "pixel_y": 253, - "frequency_hz": 778.14, - "db_value": 97.32 - }, - { - "pixel_x": 542, - "pixel_y": 254, - "frequency_hz": 783.63, - "db_value": 97.22 - }, - { - "pixel_x": 543, - "pixel_y": 251, - "frequency_hz": 789.16, - "db_value": 97.52 - }, - { - "pixel_x": 544, - "pixel_y": 252, - "frequency_hz": 794.72, - "db_value": 97.42 - }, - { - "pixel_x": 545, - "pixel_y": 254, - "frequency_hz": 800.33, - "db_value": 97.22 - }, - { - "pixel_x": 546, - "pixel_y": 255, - "frequency_hz": 805.97, - "db_value": 97.12 - }, - { - "pixel_x": 547, - "pixel_y": 252, - "frequency_hz": 811.66, - "db_value": 97.42 - }, - { - "pixel_x": 548, - "pixel_y": 254, - "frequency_hz": 817.38, - "db_value": 97.22 - }, - { - "pixel_x": 549, - "pixel_y": 256, - "frequency_hz": 823.14, - "db_value": 97.02 - }, - { - "pixel_x": 550, - "pixel_y": 254, - "frequency_hz": 828.95, - "db_value": 97.22 - }, - { - "pixel_x": 551, - "pixel_y": 255, - "frequency_hz": 834.79, - "db_value": 97.12 - }, - { - "pixel_x": 552, - "pixel_y": 254, - "frequency_hz": 840.68, - "db_value": 97.22 - }, - { - "pixel_x": 553, - "pixel_y": 256, - "frequency_hz": 846.61, - "db_value": 97.02 - }, - { - "pixel_x": 555, - "pixel_y": 257, - "frequency_hz": 858.59, - "db_value": 96.92 - }, - { - "pixel_x": 556, - "pixel_y": 259, - "frequency_hz": 864.65, - "db_value": 96.71 - }, - { - "pixel_x": 557, - "pixel_y": 258, - "frequency_hz": 870.74, - "db_value": 96.81 - }, - { - "pixel_x": 558, - "pixel_y": 258, - "frequency_hz": 876.88, - "db_value": 96.81 - }, - { - "pixel_x": 559, - "pixel_y": 259, - "frequency_hz": 883.07, - "db_value": 96.71 - }, - { - "pixel_x": 560, - "pixel_y": 259, - "frequency_hz": 889.3, - "db_value": 96.71 - }, - { - "pixel_x": 561, - "pixel_y": 259, - "frequency_hz": 895.57, - "db_value": 96.71 - }, - { - "pixel_x": 562, - "pixel_y": 261, - "frequency_hz": 901.88, - "db_value": 96.51 - }, - { - "pixel_x": 563, - "pixel_y": 263, - "frequency_hz": 908.24, - "db_value": 96.31 - }, - { - "pixel_x": 564, - "pixel_y": 262, - "frequency_hz": 914.65, - "db_value": 96.41 - }, - { - "pixel_x": 565, - "pixel_y": 262, - "frequency_hz": 921.1, - "db_value": 96.41 - }, - { - "pixel_x": 566, - "pixel_y": 263, - "frequency_hz": 927.59, - "db_value": 96.31 - }, - { - "pixel_x": 567, - "pixel_y": 263, - "frequency_hz": 934.13, - "db_value": 96.31 - }, - { - "pixel_x": 568, - "pixel_y": 266, - "frequency_hz": 940.72, - "db_value": 96.01 - }, - { - "pixel_x": 569, - "pixel_y": 265, - "frequency_hz": 947.36, - "db_value": 96.11 - }, - { - "pixel_x": 570, - "pixel_y": 267, - "frequency_hz": 954.04, - "db_value": 95.91 - }, - { - "pixel_x": 571, - "pixel_y": 265, - "frequency_hz": 960.76, - "db_value": 96.11 - }, - { - "pixel_x": 572, - "pixel_y": 266, - "frequency_hz": 967.54, - "db_value": 96.01 - }, - { - "pixel_x": 573, - "pixel_y": 265, - "frequency_hz": 974.36, - "db_value": 96.11 - }, - { - "pixel_x": 574, - "pixel_y": 267, - "frequency_hz": 981.23, - "db_value": 95.91 - }, - { - "pixel_x": 575, - "pixel_y": 267, - "frequency_hz": 988.15, - "db_value": 95.91 - }, - { - "pixel_x": 576, - "pixel_y": 268, - "frequency_hz": 995.12, - "db_value": 95.81 - }, - { - "pixel_x": 577, - "pixel_y": 270, - "frequency_hz": 1002.14, - "db_value": 95.6 - }, - { - "pixel_x": 578, - "pixel_y": 267, - "frequency_hz": 1009.21, - "db_value": 95.91 - }, - { - "pixel_x": 579, - "pixel_y": 268, - "frequency_hz": 1016.32, - "db_value": 95.81 - }, - { - "pixel_x": 580, - "pixel_y": 270, - "frequency_hz": 1023.49, - "db_value": 95.6 - }, - { - "pixel_x": 581, - "pixel_y": 269, - "frequency_hz": 1030.71, - "db_value": 95.71 - }, - { - "pixel_x": 582, - "pixel_y": 269, - "frequency_hz": 1037.98, - "db_value": 95.71 - }, - { - "pixel_x": 583, - "pixel_y": 271, - "frequency_hz": 1045.3, - "db_value": 95.5 - }, - { - "pixel_x": 584, - "pixel_y": 272, - "frequency_hz": 1052.67, - "db_value": 95.4 - }, - { - "pixel_x": 585, - "pixel_y": 269, - "frequency_hz": 1060.09, - "db_value": 95.71 - }, - { - "pixel_x": 586, - "pixel_y": 271, - "frequency_hz": 1067.57, - "db_value": 95.5 - }, - { - "pixel_x": 587, - "pixel_y": 271, - "frequency_hz": 1075.1, - "db_value": 95.5 - }, - { - "pixel_x": 588, - "pixel_y": 272, - "frequency_hz": 1082.68, - "db_value": 95.4 - }, - { - "pixel_x": 589, - "pixel_y": 274, - "frequency_hz": 1090.31, - "db_value": 95.2 - }, - { - "pixel_x": 590, - "pixel_y": 271, - "frequency_hz": 1098.0, - "db_value": 95.5 - }, - { - "pixel_x": 591, - "pixel_y": 272, - "frequency_hz": 1105.74, - "db_value": 95.4 - }, - { - "pixel_x": 595, - "pixel_y": 272, - "frequency_hz": 1137.27, - "db_value": 95.4 - }, - { - "pixel_x": 596, - "pixel_y": 271, - "frequency_hz": 1145.29, - "db_value": 95.5 - }, - { - "pixel_x": 597, - "pixel_y": 272, - "frequency_hz": 1153.36, - "db_value": 95.4 - }, - { - "pixel_x": 598, - "pixel_y": 271, - "frequency_hz": 1161.5, - "db_value": 95.5 - }, - { - "pixel_x": 599, - "pixel_y": 271, - "frequency_hz": 1169.69, - "db_value": 95.5 - }, - { - "pixel_x": 600, - "pixel_y": 270, - "frequency_hz": 1177.94, - "db_value": 95.6 - }, - { - "pixel_x": 601, - "pixel_y": 270, - "frequency_hz": 1186.24, - "db_value": 95.6 - }, - { - "pixel_x": 602, - "pixel_y": 269, - "frequency_hz": 1194.61, - "db_value": 95.71 - }, - { - "pixel_x": 603, - "pixel_y": 269, - "frequency_hz": 1203.03, - "db_value": 95.71 - }, - { - "pixel_x": 604, - "pixel_y": 268, - "frequency_hz": 1211.52, - "db_value": 95.81 - }, - { - "pixel_x": 605, - "pixel_y": 270, - "frequency_hz": 1220.06, - "db_value": 95.6 - }, - { - "pixel_x": 606, - "pixel_y": 268, - "frequency_hz": 1228.66, - "db_value": 95.81 - }, - { - "pixel_x": 607, - "pixel_y": 266, - "frequency_hz": 1237.33, - "db_value": 96.01 - }, - { - "pixel_x": 608, - "pixel_y": 269, - "frequency_hz": 1246.05, - "db_value": 95.71 - }, - { - "pixel_x": 609, - "pixel_y": 268, - "frequency_hz": 1254.84, - "db_value": 95.81 - }, - { - "pixel_x": 610, - "pixel_y": 266, - "frequency_hz": 1263.69, - "db_value": 96.01 - }, - { - "pixel_x": 611, - "pixel_y": 266, - "frequency_hz": 1272.6, - "db_value": 96.01 - }, - { - "pixel_x": 612, - "pixel_y": 267, - "frequency_hz": 1281.58, - "db_value": 95.91 - }, - { - "pixel_x": 613, - "pixel_y": 265, - "frequency_hz": 1290.61, - "db_value": 96.11 - }, - { - "pixel_x": 614, - "pixel_y": 265, - "frequency_hz": 1299.71, - "db_value": 96.11 - }, - { - "pixel_x": 615, - "pixel_y": 266, - "frequency_hz": 1308.88, - "db_value": 96.01 - }, - { - "pixel_x": 617, - "pixel_y": 264, - "frequency_hz": 1327.41, - "db_value": 96.21 - }, - { - "pixel_x": 618, - "pixel_y": 264, - "frequency_hz": 1336.77, - "db_value": 96.21 - }, - { - "pixel_x": 619, - "pixel_y": 265, - "frequency_hz": 1346.19, - "db_value": 96.11 - }, - { - "pixel_x": 628, - "pixel_y": 263, - "frequency_hz": 1434.08, - "db_value": 96.31 - }, - { - "pixel_x": 629, - "pixel_y": 262, - "frequency_hz": 1444.2, - "db_value": 96.41 - }, - { - "pixel_x": 630, - "pixel_y": 265, - "frequency_hz": 1454.38, - "db_value": 96.11 - }, - { - "pixel_x": 631, - "pixel_y": 264, - "frequency_hz": 1464.64, - "db_value": 96.21 - }, - { - "pixel_x": 632, - "pixel_y": 262, - "frequency_hz": 1474.97, - "db_value": 96.41 - }, - { - "pixel_x": 633, - "pixel_y": 261, - "frequency_hz": 1485.37, - "db_value": 96.51 - }, - { - "pixel_x": 634, - "pixel_y": 264, - "frequency_hz": 1495.84, - "db_value": 96.21 - }, - { - "pixel_x": 635, - "pixel_y": 262, - "frequency_hz": 1506.39, - "db_value": 96.41 - }, - { - "pixel_x": 636, - "pixel_y": 260, - "frequency_hz": 1517.01, - "db_value": 96.61 - }, - { - "pixel_x": 637, - "pixel_y": 261, - "frequency_hz": 1527.71, - "db_value": 96.51 - }, - { - "pixel_x": 638, - "pixel_y": 260, - "frequency_hz": 1538.48, - "db_value": 96.61 - }, - { - "pixel_x": 639, - "pixel_y": 262, - "frequency_hz": 1549.33, - "db_value": 96.41 - }, - { - "pixel_x": 640, - "pixel_y": 260, - "frequency_hz": 1560.26, - "db_value": 96.61 - }, - { - "pixel_x": 641, - "pixel_y": 258, - "frequency_hz": 1571.26, - "db_value": 96.81 - }, - { - "pixel_x": 642, - "pixel_y": 259, - "frequency_hz": 1582.34, - "db_value": 96.71 - }, - { - "pixel_x": 643, - "pixel_y": 258, - "frequency_hz": 1593.5, - "db_value": 96.81 - }, - { - "pixel_x": 644, - "pixel_y": 260, - "frequency_hz": 1604.74, - "db_value": 96.61 - }, - { - "pixel_x": 645, - "pixel_y": 258, - "frequency_hz": 1616.06, - "db_value": 96.81 - }, - { - "pixel_x": 646, - "pixel_y": 256, - "frequency_hz": 1627.45, - "db_value": 97.02 - }, - { - "pixel_x": 647, - "pixel_y": 257, - "frequency_hz": 1638.93, - "db_value": 96.92 - }, - { - "pixel_x": 648, - "pixel_y": 256, - "frequency_hz": 1650.49, - "db_value": 97.02 - }, - { - "pixel_x": 649, - "pixel_y": 258, - "frequency_hz": 1662.13, - "db_value": 96.81 - }, - { - "pixel_x": 650, - "pixel_y": 256, - "frequency_hz": 1673.85, - "db_value": 97.02 - }, - { - "pixel_x": 651, - "pixel_y": 254, - "frequency_hz": 1685.65, - "db_value": 97.22 - }, - { - "pixel_x": 652, - "pixel_y": 255, - "frequency_hz": 1697.54, - "db_value": 97.12 - }, - { - "pixel_x": 653, - "pixel_y": 254, - "frequency_hz": 1709.51, - "db_value": 97.22 - }, - { - "pixel_x": 654, - "pixel_y": 254, - "frequency_hz": 1721.56, - "db_value": 97.22 - }, - { - "pixel_x": 655, - "pixel_y": 253, - "frequency_hz": 1733.7, - "db_value": 97.32 - }, - { - "pixel_x": 656, - "pixel_y": 253, - "frequency_hz": 1745.93, - "db_value": 97.32 - }, - { - "pixel_x": 657, - "pixel_y": 252, - "frequency_hz": 1758.24, - "db_value": 97.42 - }, - { - "pixel_x": 658, - "pixel_y": 252, - "frequency_hz": 1770.64, - "db_value": 97.42 - }, - { - "pixel_x": 659, - "pixel_y": 251, - "frequency_hz": 1783.13, - "db_value": 97.52 - }, - { - "pixel_x": 660, - "pixel_y": 251, - "frequency_hz": 1795.7, - "db_value": 97.52 - }, - { - "pixel_x": 661, - "pixel_y": 250, - "frequency_hz": 1808.37, - "db_value": 97.62 - }, - { - "pixel_x": 662, - "pixel_y": 250, - "frequency_hz": 1821.12, - "db_value": 97.62 - }, - { - "pixel_x": 663, - "pixel_y": 249, - "frequency_hz": 1833.96, - "db_value": 97.72 - }, - { - "pixel_x": 664, - "pixel_y": 249, - "frequency_hz": 1846.89, - "db_value": 97.72 - }, - { - "pixel_x": 665, - "pixel_y": 248, - "frequency_hz": 1859.92, - "db_value": 97.82 - }, - { - "pixel_x": 666, - "pixel_y": 248, - "frequency_hz": 1873.03, - "db_value": 97.82 - }, - { - "pixel_x": 667, - "pixel_y": 247, - "frequency_hz": 1886.24, - "db_value": 97.92 - }, - { - "pixel_x": 668, - "pixel_y": 249, - "frequency_hz": 1899.54, - "db_value": 97.72 - }, - { - "pixel_x": 669, - "pixel_y": 248, - "frequency_hz": 1912.94, - "db_value": 97.82 - }, - { - "pixel_x": 674, - "pixel_y": 246, - "frequency_hz": 1981.35, - "db_value": 98.02 - }, - { - "pixel_x": 676, - "pixel_y": 248, - "frequency_hz": 2009.39, - "db_value": 97.82 - }, - { - "pixel_x": 677, - "pixel_y": 242, - "frequency_hz": 2023.56, - "db_value": 98.43 - }, - { - "pixel_x": 679, - "pixel_y": 242, - "frequency_hz": 2052.2, - "db_value": 98.43 - }, - { - "pixel_x": 681, - "pixel_y": 239, - "frequency_hz": 2081.25, - "db_value": 98.73 - }, - { - "pixel_x": 683, - "pixel_y": 236, - "frequency_hz": 2110.71, - "db_value": 99.03 - }, - { - "pixel_x": 685, - "pixel_y": 233, - "frequency_hz": 2140.58, - "db_value": 99.33 - }, - { - "pixel_x": 687, - "pixel_y": 232, - "frequency_hz": 2170.88, - "db_value": 99.44 - }, - { - "pixel_x": 688, - "pixel_y": 226, - "frequency_hz": 2186.19, - "db_value": 100.04 - }, - { - "pixel_x": 690, - "pixel_y": 228, - "frequency_hz": 2217.13, - "db_value": 99.84 - }, - { - "pixel_x": 692, - "pixel_y": 221, - "frequency_hz": 2248.51, - "db_value": 100.54 - }, - { - "pixel_x": 694, - "pixel_y": 223, - "frequency_hz": 2280.33, - "db_value": 100.34 - }, - { - "pixel_x": 696, - "pixel_y": 216, - "frequency_hz": 2312.61, - "db_value": 101.05 - }, - { - "pixel_x": 698, - "pixel_y": 218, - "frequency_hz": 2345.34, - "db_value": 100.85 - }, - { - "pixel_x": 699, - "pixel_y": 213, - "frequency_hz": 2361.88, - "db_value": 101.35 - }, - { - "pixel_x": 700, - "pixel_y": 213, - "frequency_hz": 2378.54, - "db_value": 101.35 - }, - { - "pixel_x": 701, - "pixel_y": 213, - "frequency_hz": 2395.31, - "db_value": 101.35 - }, - { - "pixel_x": 702, - "pixel_y": 213, - "frequency_hz": 2412.2, - "db_value": 101.35 - }, - { - "pixel_x": 703, - "pixel_y": 214, - "frequency_hz": 2429.21, - "db_value": 101.25 - }, - { - "pixel_x": 704, - "pixel_y": 214, - "frequency_hz": 2446.34, - "db_value": 101.25 - }, - { - "pixel_x": 705, - "pixel_y": 213, - "frequency_hz": 2463.59, - "db_value": 101.35 - }, - { - "pixel_x": 706, - "pixel_y": 213, - "frequency_hz": 2480.97, - "db_value": 101.35 - }, - { - "pixel_x": 708, - "pixel_y": 210, - "frequency_hz": 2516.08, - "db_value": 101.65 - }, - { - "pixel_x": 711, - "pixel_y": 207, - "frequency_hz": 2569.69, - "db_value": 101.96 - }, - { - "pixel_x": 712, - "pixel_y": 207, - "frequency_hz": 2587.81, - "db_value": 101.96 - }, - { - "pixel_x": 717, - "pixel_y": 200, - "frequency_hz": 2680.35, - "db_value": 102.66 - }, - { - "pixel_x": 718, - "pixel_y": 197, - "frequency_hz": 2699.25, - "db_value": 102.96 - }, - { - "pixel_x": 719, - "pixel_y": 199, - "frequency_hz": 2718.29, - "db_value": 102.76 - }, - { - "pixel_x": 720, - "pixel_y": 197, - "frequency_hz": 2737.46, - "db_value": 102.96 - }, - { - "pixel_x": 721, - "pixel_y": 195, - "frequency_hz": 2756.76, - "db_value": 103.17 - }, - { - "pixel_x": 722, - "pixel_y": 195, - "frequency_hz": 2776.2, - "db_value": 103.17 - }, - { - "pixel_x": 726, - "pixel_y": 197, - "frequency_hz": 2855.35, - "db_value": 102.96 - }, - { - "pixel_x": 727, - "pixel_y": 194, - "frequency_hz": 2875.48, - "db_value": 103.27 - }, - { - "pixel_x": 728, - "pixel_y": 195, - "frequency_hz": 2895.76, - "db_value": 103.17 - }, - { - "pixel_x": 729, - "pixel_y": 195, - "frequency_hz": 2916.18, - "db_value": 103.17 - }, - { - "pixel_x": 730, - "pixel_y": 201, - "frequency_hz": 2936.74, - "db_value": 102.56 - }, - { - "pixel_x": 731, - "pixel_y": 198, - "frequency_hz": 2957.45, - "db_value": 102.86 - }, - { - "pixel_x": 733, - "pixel_y": 198, - "frequency_hz": 2999.31, - "db_value": 102.86 - }, - { - "pixel_x": 734, - "pixel_y": 198, - "frequency_hz": 3020.46, - "db_value": 102.86 - }, - { - "pixel_x": 736, - "pixel_y": 196, - "frequency_hz": 3063.22, - "db_value": 103.06 - }, - { - "pixel_x": 738, - "pixel_y": 195, - "frequency_hz": 3106.57, - "db_value": 103.17 - }, - { - "pixel_x": 740, - "pixel_y": 188, - "frequency_hz": 3150.54, - "db_value": 103.87 - }, - { - "pixel_x": 741, - "pixel_y": 188, - "frequency_hz": 3172.76, - "db_value": 103.87 - }, - { - "pixel_x": 743, - "pixel_y": 186, - "frequency_hz": 3217.66, - "db_value": 104.07 - }, - { - "pixel_x": 744, - "pixel_y": 186, - "frequency_hz": 3240.35, - "db_value": 104.07 - }, - { - "pixel_x": 745, - "pixel_y": 185, - "frequency_hz": 3263.21, - "db_value": 104.17 - }, - { - "pixel_x": 746, - "pixel_y": 187, - "frequency_hz": 3286.22, - "db_value": 103.97 - }, - { - "pixel_x": 748, - "pixel_y": 187, - "frequency_hz": 3332.73, - "db_value": 103.97 - }, - { - "pixel_x": 749, - "pixel_y": 188, - "frequency_hz": 3356.23, - "db_value": 103.87 - }, - { - "pixel_x": 750, - "pixel_y": 186, - "frequency_hz": 3379.9, - "db_value": 104.07 - }, - { - "pixel_x": 751, - "pixel_y": 186, - "frequency_hz": 3403.73, - "db_value": 104.07 - }, - { - "pixel_x": 752, - "pixel_y": 186, - "frequency_hz": 3427.74, - "db_value": 104.07 - }, - { - "pixel_x": 760, - "pixel_y": 198, - "frequency_hz": 3625.96, - "db_value": 102.86 - }, - { - "pixel_x": 763, - "pixel_y": 197, - "frequency_hz": 3703.21, - "db_value": 102.96 - }, - { - "pixel_x": 774, - "pixel_y": 213, - "frequency_hz": 4000.82, - "db_value": 101.35 - }, - { - "pixel_x": 776, - "pixel_y": 214, - "frequency_hz": 4057.45, - "db_value": 101.25 - }, - { - "pixel_x": 777, - "pixel_y": 218, - "frequency_hz": 4086.06, - "db_value": 100.85 - }, - { - "pixel_x": 778, - "pixel_y": 214, - "frequency_hz": 4114.87, - "db_value": 101.25 - }, - { - "pixel_x": 779, - "pixel_y": 219, - "frequency_hz": 4143.89, - "db_value": 100.75 - }, - { - "pixel_x": 780, - "pixel_y": 223, - "frequency_hz": 4173.11, - "db_value": 100.34 - }, - { - "pixel_x": 781, - "pixel_y": 220, - "frequency_hz": 4202.54, - "db_value": 100.65 - }, - { - "pixel_x": 782, - "pixel_y": 222, - "frequency_hz": 4232.18, - "db_value": 100.44 - }, - { - "pixel_x": 783, - "pixel_y": 222, - "frequency_hz": 4262.02, - "db_value": 100.44 - }, - { - "pixel_x": 784, - "pixel_y": 225, - "frequency_hz": 4292.08, - "db_value": 100.14 - }, - { - "pixel_x": 785, - "pixel_y": 224, - "frequency_hz": 4322.35, - "db_value": 100.24 - }, - { - "pixel_x": 787, - "pixel_y": 223, - "frequency_hz": 4383.52, - "db_value": 100.34 - }, - { - "pixel_x": 789, - "pixel_y": 227, - "frequency_hz": 4445.57, - "db_value": 99.94 - }, - { - "pixel_x": 790, - "pixel_y": 226, - "frequency_hz": 4476.92, - "db_value": 100.04 - }, - { - "pixel_x": 791, - "pixel_y": 227, - "frequency_hz": 4508.49, - "db_value": 99.94 - }, - { - "pixel_x": 792, - "pixel_y": 227, - "frequency_hz": 4540.28, - "db_value": 99.94 - }, - { - "pixel_x": 793, - "pixel_y": 232, - "frequency_hz": 4572.3, - "db_value": 99.44 - }, - { - "pixel_x": 794, - "pixel_y": 232, - "frequency_hz": 4604.54, - "db_value": 99.44 - }, - { - "pixel_x": 795, - "pixel_y": 231, - "frequency_hz": 4637.02, - "db_value": 99.54 - }, - { - "pixel_x": 796, - "pixel_y": 230, - "frequency_hz": 4669.72, - "db_value": 99.64 - }, - { - "pixel_x": 797, - "pixel_y": 231, - "frequency_hz": 4702.65, - "db_value": 99.54 - }, - { - "pixel_x": 799, - "pixel_y": 231, - "frequency_hz": 4769.21, - "db_value": 99.54 - }, - { - "pixel_x": 800, - "pixel_y": 230, - "frequency_hz": 4802.84, - "db_value": 99.64 - }, - { - "pixel_x": 801, - "pixel_y": 233, - "frequency_hz": 4836.71, - "db_value": 99.33 - }, - { - "pixel_x": 802, - "pixel_y": 232, - "frequency_hz": 4870.82, - "db_value": 99.44 - }, - { - "pixel_x": 805, - "pixel_y": 232, - "frequency_hz": 4974.59, - "db_value": 99.44 - }, - { - "pixel_x": 806, - "pixel_y": 233, - "frequency_hz": 5009.67, - "db_value": 99.33 - }, - { - "pixel_x": 808, - "pixel_y": 230, - "frequency_hz": 5080.58, - "db_value": 99.64 - }, - { - "pixel_x": 810, - "pixel_y": 227, - "frequency_hz": 5152.49, - "db_value": 99.94 - }, - { - "pixel_x": 811, - "pixel_y": 226, - "frequency_hz": 5188.82, - "db_value": 100.04 - }, - { - "pixel_x": 812, - "pixel_y": 220, - "frequency_hz": 5225.41, - "db_value": 100.65 - }, - { - "pixel_x": 813, - "pixel_y": 212, - "frequency_hz": 5262.26, - "db_value": 101.45 - }, - { - "pixel_x": 814, - "pixel_y": 204, - "frequency_hz": 5299.37, - "db_value": 102.26 - }, - { - "pixel_x": 815, - "pixel_y": 197, - "frequency_hz": 5336.74, - "db_value": 102.96 - }, - { - "pixel_x": 816, - "pixel_y": 192, - "frequency_hz": 5374.38, - "db_value": 103.47 - }, - { - "pixel_x": 817, - "pixel_y": 191, - "frequency_hz": 5412.28, - "db_value": 103.57 - }, - { - "pixel_x": 818, - "pixel_y": 186, - "frequency_hz": 5450.44, - "db_value": 104.07 - }, - { - "pixel_x": 820, - "pixel_y": 186, - "frequency_hz": 5527.59, - "db_value": 104.07 - }, - { - "pixel_x": 821, - "pixel_y": 190, - "frequency_hz": 5566.57, - "db_value": 103.67 - }, - { - "pixel_x": 822, - "pixel_y": 189, - "frequency_hz": 5605.82, - "db_value": 103.77 - }, - { - "pixel_x": 823, - "pixel_y": 192, - "frequency_hz": 5645.35, - "db_value": 103.47 - }, - { - "pixel_x": 824, - "pixel_y": 195, - "frequency_hz": 5685.17, - "db_value": 103.17 - }, - { - "pixel_x": 825, - "pixel_y": 198, - "frequency_hz": 5725.26, - "db_value": 102.86 - }, - { - "pixel_x": 826, - "pixel_y": 201, - "frequency_hz": 5765.63, - "db_value": 102.56 - }, - { - "pixel_x": 827, - "pixel_y": 205, - "frequency_hz": 5806.29, - "db_value": 102.16 - }, - { - "pixel_x": 828, - "pixel_y": 208, - "frequency_hz": 5847.24, - "db_value": 101.85 - }, - { - "pixel_x": 829, - "pixel_y": 212, - "frequency_hz": 5888.47, - "db_value": 101.45 - }, - { - "pixel_x": 830, - "pixel_y": 215, - "frequency_hz": 5930.0, - "db_value": 101.15 - }, - { - "pixel_x": 831, - "pixel_y": 218, - "frequency_hz": 5971.81, - "db_value": 100.85 - }, - { - "pixel_x": 832, - "pixel_y": 222, - "frequency_hz": 6013.93, - "db_value": 100.44 - }, - { - "pixel_x": 833, - "pixel_y": 225, - "frequency_hz": 6056.34, - "db_value": 100.14 - }, - { - "pixel_x": 834, - "pixel_y": 229, - "frequency_hz": 6099.05, - "db_value": 99.74 - }, - { - "pixel_x": 835, - "pixel_y": 231, - "frequency_hz": 6142.06, - "db_value": 99.54 - }, - { - "pixel_x": 836, - "pixel_y": 234, - "frequency_hz": 6185.37, - "db_value": 99.23 - }, - { - "pixel_x": 837, - "pixel_y": 237, - "frequency_hz": 6228.99, - "db_value": 98.93 - }, - { - "pixel_x": 838, - "pixel_y": 239, - "frequency_hz": 6272.92, - "db_value": 98.73 - }, - { - "pixel_x": 839, - "pixel_y": 241, - "frequency_hz": 6317.15, - "db_value": 98.53 - }, - { - "pixel_x": 840, - "pixel_y": 243, - "frequency_hz": 6361.7, - "db_value": 98.33 - }, - { - "pixel_x": 841, - "pixel_y": 245, - "frequency_hz": 6406.56, - "db_value": 98.12 - }, - { - "pixel_x": 842, - "pixel_y": 244, - "frequency_hz": 6451.74, - "db_value": 98.23 - }, - { - "pixel_x": 843, - "pixel_y": 249, - "frequency_hz": 6497.24, - "db_value": 97.72 - }, - { - "pixel_x": 845, - "pixel_y": 249, - "frequency_hz": 6589.2, - "db_value": 97.72 - }, - { - "pixel_x": 850, - "pixel_y": 259, - "frequency_hz": 6824.83, - "db_value": 96.71 - }, - { - "pixel_x": 851, - "pixel_y": 259, - "frequency_hz": 6872.96, - "db_value": 96.71 - }, - { - "pixel_x": 852, - "pixel_y": 258, - "frequency_hz": 6921.43, - "db_value": 96.81 - }, - { - "pixel_x": 853, - "pixel_y": 258, - "frequency_hz": 6970.24, - "db_value": 96.81 - }, - { - "pixel_x": 854, - "pixel_y": 259, - "frequency_hz": 7019.39, - "db_value": 96.71 - }, - { - "pixel_x": 856, - "pixel_y": 258, - "frequency_hz": 7118.74, - "db_value": 96.81 - }, - { - "pixel_x": 857, - "pixel_y": 261, - "frequency_hz": 7168.94, - "db_value": 96.51 - }, - { - "pixel_x": 859, - "pixel_y": 254, - "frequency_hz": 7270.41, - "db_value": 97.22 - }, - { - "pixel_x": 861, - "pixel_y": 256, - "frequency_hz": 7373.31, - "db_value": 97.02 - }, - { - "pixel_x": 864, - "pixel_y": 248, - "frequency_hz": 7530.41, - "db_value": 97.82 - }, - { - "pixel_x": 865, - "pixel_y": 249, - "frequency_hz": 7583.51, - "db_value": 97.72 - }, - { - "pixel_x": 866, - "pixel_y": 244, - "frequency_hz": 7636.99, - "db_value": 98.23 - }, - { - "pixel_x": 867, - "pixel_y": 245, - "frequency_hz": 7690.84, - "db_value": 98.12 - }, - { - "pixel_x": 868, - "pixel_y": 243, - "frequency_hz": 7745.08, - "db_value": 98.33 - }, - { - "pixel_x": 869, - "pixel_y": 241, - "frequency_hz": 7799.7, - "db_value": 98.53 - }, - { - "pixel_x": 870, - "pixel_y": 238, - "frequency_hz": 7854.7, - "db_value": 98.83 - }, - { - "pixel_x": 871, - "pixel_y": 233, - "frequency_hz": 7910.09, - "db_value": 99.33 - }, - { - "pixel_x": 872, - "pixel_y": 228, - "frequency_hz": 7965.87, - "db_value": 99.84 - }, - { - "pixel_x": 873, - "pixel_y": 222, - "frequency_hz": 8022.05, - "db_value": 100.44 - }, - { - "pixel_x": 874, - "pixel_y": 213, - "frequency_hz": 8078.62, - "db_value": 101.35 - }, - { - "pixel_x": 875, - "pixel_y": 224, - "frequency_hz": 8135.59, - "db_value": 100.24 - }, - { - "pixel_x": 877, - "pixel_y": 217, - "frequency_hz": 8250.74, - "db_value": 100.95 - }, - { - "pixel_x": 878, - "pixel_y": 221, - "frequency_hz": 8308.92, - "db_value": 100.54 - }, - { - "pixel_x": 879, - "pixel_y": 225, - "frequency_hz": 8367.52, - "db_value": 100.14 - }, - { - "pixel_x": 880, - "pixel_y": 230, - "frequency_hz": 8426.52, - "db_value": 99.64 - }, - { - "pixel_x": 881, - "pixel_y": 233, - "frequency_hz": 8485.95, - "db_value": 99.33 - }, - { - "pixel_x": 882, - "pixel_y": 236, - "frequency_hz": 8545.79, - "db_value": 99.03 - }, - { - "pixel_x": 883, - "pixel_y": 239, - "frequency_hz": 8606.06, - "db_value": 98.73 - }, - { - "pixel_x": 884, - "pixel_y": 241, - "frequency_hz": 8666.75, - "db_value": 98.53 - }, - { - "pixel_x": 885, - "pixel_y": 244, - "frequency_hz": 8727.86, - "db_value": 98.23 - }, - { - "pixel_x": 886, - "pixel_y": 247, - "frequency_hz": 8789.41, - "db_value": 97.92 - }, - { - "pixel_x": 887, - "pixel_y": 250, - "frequency_hz": 8851.39, - "db_value": 97.62 - }, - { - "pixel_x": 888, - "pixel_y": 254, - "frequency_hz": 8913.81, - "db_value": 97.22 - }, - { - "pixel_x": 889, - "pixel_y": 259, - "frequency_hz": 8976.67, - "db_value": 96.71 - }, - { - "pixel_x": 890, - "pixel_y": 264, - "frequency_hz": 9039.98, - "db_value": 96.21 - }, - { - "pixel_x": 891, - "pixel_y": 269, - "frequency_hz": 9103.73, - "db_value": 95.71 - }, - { - "pixel_x": 892, - "pixel_y": 273, - "frequency_hz": 9167.93, - "db_value": 95.3 - }, - { - "pixel_x": 893, - "pixel_y": 277, - "frequency_hz": 9232.58, - "db_value": 94.9 - }, - { - "pixel_x": 894, - "pixel_y": 282, - "frequency_hz": 9297.69, - "db_value": 94.4 - }, - { - "pixel_x": 895, - "pixel_y": 286, - "frequency_hz": 9363.25, - "db_value": 93.99 - }, - { - "pixel_x": 896, - "pixel_y": 292, - "frequency_hz": 9429.28, - "db_value": 93.39 - }, - { - "pixel_x": 897, - "pixel_y": 298, - "frequency_hz": 9495.78, - "db_value": 92.78 - }, - { - "pixel_x": 898, - "pixel_y": 304, - "frequency_hz": 9562.74, - "db_value": 92.18 - }, - { - "pixel_x": 899, - "pixel_y": 310, - "frequency_hz": 9630.18, - "db_value": 91.57 - }, - { - "pixel_x": 901, - "pixel_y": 302, - "frequency_hz": 9766.48, - "db_value": 92.38 - }, - { - "pixel_x": 902, - "pixel_y": 313, - "frequency_hz": 9835.35, - "db_value": 91.27 - }, - { - "pixel_x": 903, - "pixel_y": 304, - "frequency_hz": 9904.71, - "db_value": 92.18 - }, - { - "pixel_x": 904, - "pixel_y": 306, - "frequency_hz": 9974.56, - "db_value": 91.98 - }, - { - "pixel_x": 906, - "pixel_y": 302, - "frequency_hz": 10115.73, - "db_value": 92.38 - }, - { - "pixel_x": 907, - "pixel_y": 304, - "frequency_hz": 10187.07, - "db_value": 92.18 - }, - { - "pixel_x": 908, - "pixel_y": 309, - "frequency_hz": 10258.91, - "db_value": 91.67 - }, - { - "pixel_x": 909, - "pixel_y": 313, - "frequency_hz": 10331.26, - "db_value": 91.27 - }, - { - "pixel_x": 910, - "pixel_y": 318, - "frequency_hz": 10404.11, - "db_value": 90.77 - }, - { - "pixel_x": 911, - "pixel_y": 319, - "frequency_hz": 10477.48, - "db_value": 90.67 - }, - { - "pixel_x": 912, - "pixel_y": 319, - "frequency_hz": 10551.37, - "db_value": 90.67 - }, - { - "pixel_x": 914, - "pixel_y": 322, - "frequency_hz": 10700.71, - "db_value": 90.36 - }, - { - "pixel_x": 915, - "pixel_y": 317, - "frequency_hz": 10776.17, - "db_value": 90.87 - }, - { - "pixel_x": 916, - "pixel_y": 317, - "frequency_hz": 10852.16, - "db_value": 90.87 - }, - { - "pixel_x": 917, - "pixel_y": 313, - "frequency_hz": 10928.69, - "db_value": 91.27 - }, - { - "pixel_x": 918, - "pixel_y": 309, - "frequency_hz": 11005.76, - "db_value": 91.67 - }, - { - "pixel_x": 919, - "pixel_y": 304, - "frequency_hz": 11083.37, - "db_value": 92.18 - }, - { - "pixel_x": 920, - "pixel_y": 299, - "frequency_hz": 11161.53, - "db_value": 92.68 - }, - { - "pixel_x": 921, - "pixel_y": 294, - "frequency_hz": 11240.24, - "db_value": 93.19 - }, - { - "pixel_x": 922, - "pixel_y": 288, - "frequency_hz": 11319.51, - "db_value": 93.79 - }, - { - "pixel_x": 923, - "pixel_y": 282, - "frequency_hz": 11399.33, - "db_value": 94.4 - }, - { - "pixel_x": 924, - "pixel_y": 276, - "frequency_hz": 11479.72, - "db_value": 95.0 - }, - { - "pixel_x": 925, - "pixel_y": 269, - "frequency_hz": 11560.68, - "db_value": 95.71 - }, - { - "pixel_x": 926, - "pixel_y": 262, - "frequency_hz": 11642.2, - "db_value": 96.41 - }, - { - "pixel_x": 927, - "pixel_y": 256, - "frequency_hz": 11724.3, - "db_value": 97.02 - }, - { - "pixel_x": 928, - "pixel_y": 253, - "frequency_hz": 11806.98, - "db_value": 97.32 - }, - { - "pixel_x": 929, - "pixel_y": 253, - "frequency_hz": 11890.24, - "db_value": 97.32 - }, - { - "pixel_x": 934, - "pixel_y": 248, - "frequency_hz": 12315.45, - "db_value": 97.82 - }, - { - "pixel_x": 935, - "pixel_y": 248, - "frequency_hz": 12402.29, - "db_value": 97.82 - }, - { - "pixel_x": 936, - "pixel_y": 248, - "frequency_hz": 12489.75, - "db_value": 97.82 - }, - { - "pixel_x": 937, - "pixel_y": 245, - "frequency_hz": 12577.83, - "db_value": 98.12 - }, - { - "pixel_x": 938, - "pixel_y": 242, - "frequency_hz": 12666.53, - "db_value": 98.43 - }, - { - "pixel_x": 939, - "pixel_y": 239, - "frequency_hz": 12755.85, - "db_value": 98.73 - }, - { - "pixel_x": 940, - "pixel_y": 236, - "frequency_hz": 12845.81, - "db_value": 99.03 - }, - { - "pixel_x": 941, - "pixel_y": 233, - "frequency_hz": 12936.4, - "db_value": 99.33 - }, - { - "pixel_x": 942, - "pixel_y": 230, - "frequency_hz": 13027.62, - "db_value": 99.64 - }, - { - "pixel_x": 943, - "pixel_y": 229, - "frequency_hz": 13119.49, - "db_value": 99.74 - }, - { - "pixel_x": 945, - "pixel_y": 233, - "frequency_hz": 13305.18, - "db_value": 99.33 - }, - { - "pixel_x": 946, - "pixel_y": 232, - "frequency_hz": 13399.01, - "db_value": 99.44 - }, - { - "pixel_x": 947, - "pixel_y": 238, - "frequency_hz": 13493.5, - "db_value": 98.83 - }, - { - "pixel_x": 948, - "pixel_y": 249, - "frequency_hz": 13588.66, - "db_value": 97.72 - }, - { - "pixel_x": 949, - "pixel_y": 262, - "frequency_hz": 13684.48, - "db_value": 96.41 - }, - { - "pixel_x": 950, - "pixel_y": 278, - "frequency_hz": 13780.98, - "db_value": 94.8 - }, - { - "pixel_x": 951, - "pixel_y": 296, - "frequency_hz": 13878.17, - "db_value": 92.98 - }, - { - "pixel_x": 952, - "pixel_y": 314, - "frequency_hz": 13976.04, - "db_value": 91.17 - }, - { - "pixel_x": 953, - "pixel_y": 324, - "frequency_hz": 14074.59, - "db_value": 90.16 - }, - { - "pixel_x": 954, - "pixel_y": 309, - "frequency_hz": 14173.85, - "db_value": 91.67 - }, - { - "pixel_x": 955, - "pixel_y": 343, - "frequency_hz": 14273.8, - "db_value": 88.25 - }, - { - "pixel_x": 956, - "pixel_y": 329, - "frequency_hz": 14374.46, - "db_value": 89.66 - }, - { - "pixel_x": 957, - "pixel_y": 315, - "frequency_hz": 14475.83, - "db_value": 91.07 - }, - { - "pixel_x": 958, - "pixel_y": 304, - "frequency_hz": 14577.91, - "db_value": 92.18 - }, - { - "pixel_x": 959, - "pixel_y": 296, - "frequency_hz": 14680.71, - "db_value": 92.98 - }, - { - "pixel_x": 960, - "pixel_y": 298, - "frequency_hz": 14784.24, - "db_value": 92.78 - }, - { - "pixel_x": 962, - "pixel_y": 293, - "frequency_hz": 14993.49, - "db_value": 93.29 - }, - { - "pixel_x": 963, - "pixel_y": 290, - "frequency_hz": 15099.23, - "db_value": 93.59 - }, - { - "pixel_x": 964, - "pixel_y": 297, - "frequency_hz": 15205.71, - "db_value": 92.88 - }, - { - "pixel_x": 965, - "pixel_y": 299, - "frequency_hz": 15312.94, - "db_value": 92.68 - }, - { - "pixel_x": 966, - "pixel_y": 302, - "frequency_hz": 15420.92, - "db_value": 92.38 - }, - { - "pixel_x": 967, - "pixel_y": 305, - "frequency_hz": 15529.67, - "db_value": 92.08 - }, - { - "pixel_x": 968, - "pixel_y": 309, - "frequency_hz": 15639.19, - "db_value": 91.67 - }, - { - "pixel_x": 969, - "pixel_y": 315, - "frequency_hz": 15749.47, - "db_value": 91.07 - }, - { - "pixel_x": 970, - "pixel_y": 322, - "frequency_hz": 15860.54, - "db_value": 90.36 - }, - { - "pixel_x": 971, - "pixel_y": 330, - "frequency_hz": 15972.39, - "db_value": 89.56 - }, - { - "pixel_x": 972, - "pixel_y": 339, - "frequency_hz": 16085.02, - "db_value": 88.65 - }, - { - "pixel_x": 973, - "pixel_y": 344, - "frequency_hz": 16198.45, - "db_value": 88.15 - }, - { - "pixel_x": 974, - "pixel_y": 352, - "frequency_hz": 16312.68, - "db_value": 87.34 - }, - { - "pixel_x": 975, - "pixel_y": 345, - "frequency_hz": 16427.72, - "db_value": 88.04 - }, - { - "pixel_x": 976, - "pixel_y": 352, - "frequency_hz": 16543.57, - "db_value": 87.34 - }, - { - "pixel_x": 977, - "pixel_y": 350, - "frequency_hz": 16660.23, - "db_value": 87.54 - }, - { - "pixel_x": 978, - "pixel_y": 349, - "frequency_hz": 16777.72, - "db_value": 87.64 - }, - { - "pixel_x": 981, - "pixel_y": 345, - "frequency_hz": 17135.18, - "db_value": 88.04 - }, - { - "pixel_x": 982, - "pixel_y": 345, - "frequency_hz": 17256.01, - "db_value": 88.04 - }, - { - "pixel_x": 983, - "pixel_y": 343, - "frequency_hz": 17377.7, - "db_value": 88.25 - }, - { - "pixel_x": 984, - "pixel_y": 338, - "frequency_hz": 17500.25, - "db_value": 88.75 - }, - { - "pixel_x": 985, - "pixel_y": 333, - "frequency_hz": 17623.66, - "db_value": 89.25 - }, - { - "pixel_x": 986, - "pixel_y": 327, - "frequency_hz": 17747.94, - "db_value": 89.86 - }, - { - "pixel_x": 987, - "pixel_y": 322, - "frequency_hz": 17873.1, - "db_value": 90.36 - }, - { - "pixel_x": 988, - "pixel_y": 317, - "frequency_hz": 17999.14, - "db_value": 90.87 - }, - { - "pixel_x": 990, - "pixel_y": 324, - "frequency_hz": 18253.89, - "db_value": 90.16 - }, - { - "pixel_x": 991, - "pixel_y": 314, - "frequency_hz": 18382.62, - "db_value": 91.17 - }, - { - "pixel_x": 992, - "pixel_y": 323, - "frequency_hz": 18512.25, - "db_value": 90.26 - }, - { - "pixel_x": 993, - "pixel_y": 329, - "frequency_hz": 18642.8, - "db_value": 89.66 - }, - { - "pixel_x": 994, - "pixel_y": 337, - "frequency_hz": 18774.27, - "db_value": 88.85 - }, - { - "pixel_x": 995, - "pixel_y": 345, - "frequency_hz": 18906.67, - "db_value": 88.04 - }, - { - "pixel_x": 996, - "pixel_y": 352, - "frequency_hz": 19039.99, - "db_value": 87.34 - }, - { - "pixel_x": 998, - "pixel_y": 342, - "frequency_hz": 19309.48, - "db_value": 88.35 - }, - { - "pixel_x": 999, - "pixel_y": 348, - "frequency_hz": 19445.65, - "db_value": 87.74 - }, - { - "pixel_x": 1000, - "pixel_y": 343, - "frequency_hz": 19582.78, - "db_value": 88.25 - }, - { - "pixel_x": 1001, - "pixel_y": 335, - "frequency_hz": 19720.88, - "db_value": 89.05 - }, - { - "pixel_x": 1002, - "pixel_y": 337, - "frequency_hz": 19859.95, - "db_value": 88.85 - } - ] -} \ No newline at end of file diff --git a/frequency_response_points.csv b/frequency_response_points.csv deleted file mode 100644 index b4491cb..0000000 --- a/frequency_response_points.csv +++ /dev/null @@ -1,535 +0,0 @@ -index,x,y -1,278,236 -2,284,237 -3,285,236 -4,286,236 -5,287,238 -6,288,239 -7,289,236 -8,290,237 -9,295,237 -10,296,237 -11,297,238 -12,323,238 -13,324,237 -14,325,237 -15,334,238 -16,335,239 -17,339,240 -18,340,239 -19,341,239 -20,342,241 -21,343,242 -22,344,240 -23,345,241 -24,346,240 -25,347,241 -26,348,243 -27,349,242 -28,350,242 -29,352,244 -30,353,243 -31,354,243 -32,358,245 -33,359,244 -34,360,244 -35,361,246 -36,362,245 -37,363,245 -38,364,247 -39,365,248 -40,366,245 -41,367,247 -42,368,247 -43,369,248 -44,370,250 -45,371,248 -46,372,249 -47,373,249 -48,374,250 -49,375,250 -50,376,251 -51,377,251 -52,378,252 -53,379,252 -54,380,253 -55,381,253 -56,382,253 -57,383,255 -58,384,257 -59,385,255 -60,386,257 -61,387,259 -62,388,257 -63,389,257 -64,390,262 -65,391,262 -66,392,260 -67,393,260 -68,397,268 -69,398,266 -70,399,265 -71,408,278 -72,409,276 -73,410,275 -74,413,282 -75,414,282 -76,415,280 -77,416,282 -78,417,284 -79,418,283 -80,419,283 -81,420,284 -82,421,284 -83,422,285 -84,423,284 -85,424,285 -86,426,287 -87,427,288 -88,429,288 -89,430,287 -90,433,285 -91,434,284 -92,435,285 -93,436,284 -94,437,286 -95,438,284 -96,439,283 -97,440,283 -98,441,281 -99,442,282 -100,443,280 -101,444,281 -102,446,280 -103,447,278 -104,448,278 -105,449,278 -106,450,277 -107,451,279 -108,452,277 -109,453,276 -110,454,277 -111,455,275 -112,456,275 -113,457,275 -114,458,273 -115,459,276 -116,460,274 -117,461,272 -118,462,273 -119,463,272 -120,464,274 -121,465,272 -122,466,273 -123,467,270 -124,468,270 -125,469,269 -126,470,269 -127,471,268 -128,472,268 -129,473,267 -130,474,267 -131,475,268 -132,476,266 -133,477,264 -134,478,264 -135,479,264 -136,480,263 -137,481,263 -138,482,262 -139,483,262 -140,484,260 -141,485,261 -142,486,260 -143,487,260 -144,488,258 -145,489,259 -146,490,258 -147,491,260 -148,492,258 -149,493,256 -150,494,259 -151,495,257 -152,496,256 -153,497,257 -154,499,255 -155,500,255 -156,501,256 -157,502,254 -158,503,254 -159,504,255 -160,506,253 -161,507,253 -162,508,254 -163,513,253 -164,514,252 -165,519,252 -166,520,251 -167,537,251 -168,538,252 -169,541,253 -170,542,254 -171,543,251 -172,544,252 -173,545,254 -174,546,255 -175,547,252 -176,548,254 -177,549,256 -178,550,254 -179,551,255 -180,552,254 -181,553,256 -182,555,257 -183,556,259 -184,557,258 -185,558,258 -186,559,259 -187,560,259 -188,561,259 -189,562,261 -190,563,263 -191,564,262 -192,565,262 -193,566,263 -194,567,263 -195,568,266 -196,569,265 -197,570,267 -198,571,265 -199,572,266 -200,573,265 -201,574,267 -202,575,267 -203,576,268 -204,577,270 -205,578,267 -206,579,268 -207,580,270 -208,581,269 -209,582,269 -210,583,271 -211,584,272 -212,585,269 -213,586,271 -214,587,271 -215,588,272 -216,589,274 -217,590,271 -218,591,272 -219,595,272 -220,596,271 -221,597,272 -222,598,271 -223,599,271 -224,600,270 -225,601,270 -226,602,269 -227,603,269 -228,604,268 -229,605,270 -230,606,268 -231,607,266 -232,608,269 -233,609,268 -234,610,266 -235,611,266 -236,612,267 -237,613,265 -238,614,265 -239,615,266 -240,617,264 -241,618,264 -242,619,265 -243,628,263 -244,629,262 -245,630,265 -246,631,264 -247,632,262 -248,633,261 -249,634,264 -250,635,262 -251,636,260 -252,637,261 -253,638,260 -254,639,262 -255,640,260 -256,641,258 -257,642,259 -258,643,258 -259,644,260 -260,645,258 -261,646,256 -262,647,257 -263,648,256 -264,649,258 -265,650,256 -266,651,254 -267,652,255 -268,653,254 -269,654,254 -270,655,253 -271,656,253 -272,657,252 -273,658,252 -274,659,251 -275,660,251 -276,661,250 -277,662,250 -278,663,249 -279,664,249 -280,665,248 -281,666,248 -282,667,247 -283,668,249 -284,669,248 -285,674,246 -286,676,248 -287,677,242 -288,679,242 -289,681,239 -290,683,236 -291,685,233 -292,687,232 -293,688,226 -294,690,228 -295,692,221 -296,694,223 -297,696,216 -298,698,218 -299,699,213 -300,700,213 -301,701,213 -302,702,213 -303,703,214 -304,704,214 -305,705,213 -306,706,213 -307,708,210 -308,711,207 -309,712,207 -310,717,200 -311,718,197 -312,719,199 -313,720,197 -314,721,195 -315,722,195 -316,726,197 -317,727,194 -318,728,195 -319,729,195 -320,730,201 -321,731,198 -322,733,198 -323,734,198 -324,736,196 -325,738,195 -326,740,188 -327,741,188 -328,743,186 -329,744,186 -330,745,185 -331,746,187 -332,748,187 -333,749,188 -334,750,186 -335,751,186 -336,752,186 -337,760,198 -338,763,197 -339,774,213 -340,776,214 -341,777,218 -342,778,214 -343,779,219 -344,780,223 -345,781,220 -346,782,222 -347,783,222 -348,784,225 -349,785,224 -350,787,223 -351,789,227 -352,790,226 -353,791,227 -354,792,227 -355,793,232 -356,794,232 -357,795,231 -358,796,230 -359,797,231 -360,799,231 -361,800,230 -362,801,233 -363,802,232 -364,805,232 -365,806,233 -366,808,230 -367,810,227 -368,811,226 -369,812,220 -370,813,212 -371,814,204 -372,815,197 -373,816,192 -374,817,191 -375,818,186 -376,820,186 -377,821,190 -378,822,189 -379,823,192 -380,824,195 -381,825,198 -382,826,201 -383,827,205 -384,828,208 -385,829,212 -386,830,215 -387,831,218 -388,832,222 -389,833,225 -390,834,229 -391,835,231 -392,836,234 -393,837,237 -394,838,239 -395,839,241 -396,840,243 -397,841,245 -398,842,244 -399,843,249 -400,845,249 -401,850,259 -402,851,259 -403,852,258 -404,853,258 -405,854,259 -406,856,258 -407,857,261 -408,859,254 -409,861,256 -410,864,248 -411,865,249 -412,866,244 -413,867,245 -414,868,243 -415,869,241 -416,870,238 -417,871,233 -418,872,228 -419,873,222 -420,874,213 -421,875,224 -422,877,217 -423,878,221 -424,879,225 -425,880,230 -426,881,233 -427,882,236 -428,883,239 -429,884,241 -430,885,244 -431,886,247 -432,887,250 -433,888,254 -434,889,259 -435,890,264 -436,891,269 -437,892,273 -438,893,277 -439,894,282 -440,895,286 -441,896,292 -442,897,298 -443,898,304 -444,899,310 -445,901,302 -446,902,313 -447,903,304 -448,904,306 -449,906,302 -450,907,304 -451,908,309 -452,909,313 -453,910,318 -454,911,319 -455,912,319 -456,914,322 -457,915,317 -458,916,317 -459,917,313 -460,918,309 -461,919,304 -462,920,299 -463,921,294 -464,922,288 -465,923,282 -466,924,276 -467,925,269 -468,926,262 -469,927,256 -470,928,253 -471,929,253 -472,934,248 -473,935,248 -474,936,248 -475,937,245 -476,938,242 -477,939,239 -478,940,236 -479,941,233 -480,942,230 -481,943,229 -482,945,233 -483,946,232 -484,947,238 -485,948,249 -486,949,262 -487,950,278 -488,951,296 -489,952,314 -490,953,324 -491,954,309 -492,955,343 -493,956,329 -494,957,315 -495,958,304 -496,959,296 -497,960,298 -498,962,293 -499,963,290 -500,964,297 -501,965,299 -502,966,302 -503,967,305 -504,968,309 -505,969,315 -506,970,322 -507,971,330 -508,972,339 -509,973,344 -510,974,352 -511,975,345 -512,976,352 -513,977,350 -514,978,349 -515,981,345 -516,982,345 -517,983,343 -518,984,338 -519,985,333 -520,986,327 -521,987,322 -522,988,317 -523,990,324 -524,991,314 -525,992,323 -526,993,329 -527,994,337 -528,995,345 -529,996,352 -530,998,342 -531,999,348 -532,1000,343 -533,1001,335 -534,1002,337 diff --git a/frequency_response_points.json b/frequency_response_points.json deleted file mode 100644 index c846e28..0000000 --- a/frequency_response_points.json +++ /dev/null @@ -1,2150 +0,0 @@ -{ - "frequency_points": [ - [ - 278, - 236 - ], - [ - 284, - 237 - ], - [ - 285, - 236 - ], - [ - 286, - 236 - ], - [ - 287, - 238 - ], - [ - 288, - 239 - ], - [ - 289, - 236 - ], - [ - 290, - 237 - ], - [ - 295, - 237 - ], - [ - 296, - 237 - ], - [ - 297, - 238 - ], - [ - 323, - 238 - ], - [ - 324, - 237 - ], - [ - 325, - 237 - ], - [ - 334, - 238 - ], - [ - 335, - 239 - ], - [ - 339, - 240 - ], - [ - 340, - 239 - ], - [ - 341, - 239 - ], - [ - 342, - 241 - ], - [ - 343, - 242 - ], - [ - 344, - 240 - ], - [ - 345, - 241 - ], - [ - 346, - 240 - ], - [ - 347, - 241 - ], - [ - 348, - 243 - ], - [ - 349, - 242 - ], - [ - 350, - 242 - ], - [ - 352, - 244 - ], - [ - 353, - 243 - ], - [ - 354, - 243 - ], - [ - 358, - 245 - ], - [ - 359, - 244 - ], - [ - 360, - 244 - ], - [ - 361, - 246 - ], - [ - 362, - 245 - ], - [ - 363, - 245 - ], - [ - 364, - 247 - ], - [ - 365, - 248 - ], - [ - 366, - 245 - ], - [ - 367, - 247 - ], - [ - 368, - 247 - ], - [ - 369, - 248 - ], - [ - 370, - 250 - ], - [ - 371, - 248 - ], - [ - 372, - 249 - ], - [ - 373, - 249 - ], - [ - 374, - 250 - ], - [ - 375, - 250 - ], - [ - 376, - 251 - ], - [ - 377, - 251 - ], - [ - 378, - 252 - ], - [ - 379, - 252 - ], - [ - 380, - 253 - ], - [ - 381, - 253 - ], - [ - 382, - 253 - ], - [ - 383, - 255 - ], - [ - 384, - 257 - ], - [ - 385, - 255 - ], - [ - 386, - 257 - ], - [ - 387, - 259 - ], - [ - 388, - 257 - ], - [ - 389, - 257 - ], - [ - 390, - 262 - ], - [ - 391, - 262 - ], - [ - 392, - 260 - ], - [ - 393, - 260 - ], - [ - 397, - 268 - ], - [ - 398, - 266 - ], - [ - 399, - 265 - ], - [ - 408, - 278 - ], - [ - 409, - 276 - ], - [ - 410, - 275 - ], - [ - 413, - 282 - ], - [ - 414, - 282 - ], - [ - 415, - 280 - ], - [ - 416, - 282 - ], - [ - 417, - 284 - ], - [ - 418, - 283 - ], - [ - 419, - 283 - ], - [ - 420, - 284 - ], - [ - 421, - 284 - ], - [ - 422, - 285 - ], - [ - 423, - 284 - ], - [ - 424, - 285 - ], - [ - 426, - 287 - ], - [ - 427, - 288 - ], - [ - 429, - 288 - ], - [ - 430, - 287 - ], - [ - 433, - 285 - ], - [ - 434, - 284 - ], - [ - 435, - 285 - ], - [ - 436, - 284 - ], - [ - 437, - 286 - ], - [ - 438, - 284 - ], - [ - 439, - 283 - ], - [ - 440, - 283 - ], - [ - 441, - 281 - ], - [ - 442, - 282 - ], - [ - 443, - 280 - ], - [ - 444, - 281 - ], - [ - 446, - 280 - ], - [ - 447, - 278 - ], - [ - 448, - 278 - ], - [ - 449, - 278 - ], - [ - 450, - 277 - ], - [ - 451, - 279 - ], - [ - 452, - 277 - ], - [ - 453, - 276 - ], - [ - 454, - 277 - ], - [ - 455, - 275 - ], - [ - 456, - 275 - ], - [ - 457, - 275 - ], - [ - 458, - 273 - ], - [ - 459, - 276 - ], - [ - 460, - 274 - ], - [ - 461, - 272 - ], - [ - 462, - 273 - ], - [ - 463, - 272 - ], - [ - 464, - 274 - ], - [ - 465, - 272 - ], - [ - 466, - 273 - ], - [ - 467, - 270 - ], - [ - 468, - 270 - ], - [ - 469, - 269 - ], - [ - 470, - 269 - ], - [ - 471, - 268 - ], - [ - 472, - 268 - ], - [ - 473, - 267 - ], - [ - 474, - 267 - ], - [ - 475, - 268 - ], - [ - 476, - 266 - ], - [ - 477, - 264 - ], - [ - 478, - 264 - ], - [ - 479, - 264 - ], - [ - 480, - 263 - ], - [ - 481, - 263 - ], - [ - 482, - 262 - ], - [ - 483, - 262 - ], - [ - 484, - 260 - ], - [ - 485, - 261 - ], - [ - 486, - 260 - ], - [ - 487, - 260 - ], - [ - 488, - 258 - ], - [ - 489, - 259 - ], - [ - 490, - 258 - ], - [ - 491, - 260 - ], - [ - 492, - 258 - ], - [ - 493, - 256 - ], - [ - 494, - 259 - ], - [ - 495, - 257 - ], - [ - 496, - 256 - ], - [ - 497, - 257 - ], - [ - 499, - 255 - ], - [ - 500, - 255 - ], - [ - 501, - 256 - ], - [ - 502, - 254 - ], - [ - 503, - 254 - ], - [ - 504, - 255 - ], - [ - 506, - 253 - ], - [ - 507, - 253 - ], - [ - 508, - 254 - ], - [ - 513, - 253 - ], - [ - 514, - 252 - ], - [ - 519, - 252 - ], - [ - 520, - 251 - ], - [ - 537, - 251 - ], - [ - 538, - 252 - ], - [ - 541, - 253 - ], - [ - 542, - 254 - ], - [ - 543, - 251 - ], - [ - 544, - 252 - ], - [ - 545, - 254 - ], - [ - 546, - 255 - ], - [ - 547, - 252 - ], - [ - 548, - 254 - ], - [ - 549, - 256 - ], - [ - 550, - 254 - ], - [ - 551, - 255 - ], - [ - 552, - 254 - ], - [ - 553, - 256 - ], - [ - 555, - 257 - ], - [ - 556, - 259 - ], - [ - 557, - 258 - ], - [ - 558, - 258 - ], - [ - 559, - 259 - ], - [ - 560, - 259 - ], - [ - 561, - 259 - ], - [ - 562, - 261 - ], - [ - 563, - 263 - ], - [ - 564, - 262 - ], - [ - 565, - 262 - ], - [ - 566, - 263 - ], - [ - 567, - 263 - ], - [ - 568, - 266 - ], - [ - 569, - 265 - ], - [ - 570, - 267 - ], - [ - 571, - 265 - ], - [ - 572, - 266 - ], - [ - 573, - 265 - ], - [ - 574, - 267 - ], - [ - 575, - 267 - ], - [ - 576, - 268 - ], - [ - 577, - 270 - ], - [ - 578, - 267 - ], - [ - 579, - 268 - ], - [ - 580, - 270 - ], - [ - 581, - 269 - ], - [ - 582, - 269 - ], - [ - 583, - 271 - ], - [ - 584, - 272 - ], - [ - 585, - 269 - ], - [ - 586, - 271 - ], - [ - 587, - 271 - ], - [ - 588, - 272 - ], - [ - 589, - 274 - ], - [ - 590, - 271 - ], - [ - 591, - 272 - ], - [ - 595, - 272 - ], - [ - 596, - 271 - ], - [ - 597, - 272 - ], - [ - 598, - 271 - ], - [ - 599, - 271 - ], - [ - 600, - 270 - ], - [ - 601, - 270 - ], - [ - 602, - 269 - ], - [ - 603, - 269 - ], - [ - 604, - 268 - ], - [ - 605, - 270 - ], - [ - 606, - 268 - ], - [ - 607, - 266 - ], - [ - 608, - 269 - ], - [ - 609, - 268 - ], - [ - 610, - 266 - ], - [ - 611, - 266 - ], - [ - 612, - 267 - ], - [ - 613, - 265 - ], - [ - 614, - 265 - ], - [ - 615, - 266 - ], - [ - 617, - 264 - ], - [ - 618, - 264 - ], - [ - 619, - 265 - ], - [ - 628, - 263 - ], - [ - 629, - 262 - ], - [ - 630, - 265 - ], - [ - 631, - 264 - ], - [ - 632, - 262 - ], - [ - 633, - 261 - ], - [ - 634, - 264 - ], - [ - 635, - 262 - ], - [ - 636, - 260 - ], - [ - 637, - 261 - ], - [ - 638, - 260 - ], - [ - 639, - 262 - ], - [ - 640, - 260 - ], - [ - 641, - 258 - ], - [ - 642, - 259 - ], - [ - 643, - 258 - ], - [ - 644, - 260 - ], - [ - 645, - 258 - ], - [ - 646, - 256 - ], - [ - 647, - 257 - ], - [ - 648, - 256 - ], - [ - 649, - 258 - ], - [ - 650, - 256 - ], - [ - 651, - 254 - ], - [ - 652, - 255 - ], - [ - 653, - 254 - ], - [ - 654, - 254 - ], - [ - 655, - 253 - ], - [ - 656, - 253 - ], - [ - 657, - 252 - ], - [ - 658, - 252 - ], - [ - 659, - 251 - ], - [ - 660, - 251 - ], - [ - 661, - 250 - ], - [ - 662, - 250 - ], - [ - 663, - 249 - ], - [ - 664, - 249 - ], - [ - 665, - 248 - ], - [ - 666, - 248 - ], - [ - 667, - 247 - ], - [ - 668, - 249 - ], - [ - 669, - 248 - ], - [ - 674, - 246 - ], - [ - 676, - 248 - ], - [ - 677, - 242 - ], - [ - 679, - 242 - ], - [ - 681, - 239 - ], - [ - 683, - 236 - ], - [ - 685, - 233 - ], - [ - 687, - 232 - ], - [ - 688, - 226 - ], - [ - 690, - 228 - ], - [ - 692, - 221 - ], - [ - 694, - 223 - ], - [ - 696, - 216 - ], - [ - 698, - 218 - ], - [ - 699, - 213 - ], - [ - 700, - 213 - ], - [ - 701, - 213 - ], - [ - 702, - 213 - ], - [ - 703, - 214 - ], - [ - 704, - 214 - ], - [ - 705, - 213 - ], - [ - 706, - 213 - ], - [ - 708, - 210 - ], - [ - 711, - 207 - ], - [ - 712, - 207 - ], - [ - 717, - 200 - ], - [ - 718, - 197 - ], - [ - 719, - 199 - ], - [ - 720, - 197 - ], - [ - 721, - 195 - ], - [ - 722, - 195 - ], - [ - 726, - 197 - ], - [ - 727, - 194 - ], - [ - 728, - 195 - ], - [ - 729, - 195 - ], - [ - 730, - 201 - ], - [ - 731, - 198 - ], - [ - 733, - 198 - ], - [ - 734, - 198 - ], - [ - 736, - 196 - ], - [ - 738, - 195 - ], - [ - 740, - 188 - ], - [ - 741, - 188 - ], - [ - 743, - 186 - ], - [ - 744, - 186 - ], - [ - 745, - 185 - ], - [ - 746, - 187 - ], - [ - 748, - 187 - ], - [ - 749, - 188 - ], - [ - 750, - 186 - ], - [ - 751, - 186 - ], - [ - 752, - 186 - ], - [ - 760, - 198 - ], - [ - 763, - 197 - ], - [ - 774, - 213 - ], - [ - 776, - 214 - ], - [ - 777, - 218 - ], - [ - 778, - 214 - ], - [ - 779, - 219 - ], - [ - 780, - 223 - ], - [ - 781, - 220 - ], - [ - 782, - 222 - ], - [ - 783, - 222 - ], - [ - 784, - 225 - ], - [ - 785, - 224 - ], - [ - 787, - 223 - ], - [ - 789, - 227 - ], - [ - 790, - 226 - ], - [ - 791, - 227 - ], - [ - 792, - 227 - ], - [ - 793, - 232 - ], - [ - 794, - 232 - ], - [ - 795, - 231 - ], - [ - 796, - 230 - ], - [ - 797, - 231 - ], - [ - 799, - 231 - ], - [ - 800, - 230 - ], - [ - 801, - 233 - ], - [ - 802, - 232 - ], - [ - 805, - 232 - ], - [ - 806, - 233 - ], - [ - 808, - 230 - ], - [ - 810, - 227 - ], - [ - 811, - 226 - ], - [ - 812, - 220 - ], - [ - 813, - 212 - ], - [ - 814, - 204 - ], - [ - 815, - 197 - ], - [ - 816, - 192 - ], - [ - 817, - 191 - ], - [ - 818, - 186 - ], - [ - 820, - 186 - ], - [ - 821, - 190 - ], - [ - 822, - 189 - ], - [ - 823, - 192 - ], - [ - 824, - 195 - ], - [ - 825, - 198 - ], - [ - 826, - 201 - ], - [ - 827, - 205 - ], - [ - 828, - 208 - ], - [ - 829, - 212 - ], - [ - 830, - 215 - ], - [ - 831, - 218 - ], - [ - 832, - 222 - ], - [ - 833, - 225 - ], - [ - 834, - 229 - ], - [ - 835, - 231 - ], - [ - 836, - 234 - ], - [ - 837, - 237 - ], - [ - 838, - 239 - ], - [ - 839, - 241 - ], - [ - 840, - 243 - ], - [ - 841, - 245 - ], - [ - 842, - 244 - ], - [ - 843, - 249 - ], - [ - 845, - 249 - ], - [ - 850, - 259 - ], - [ - 851, - 259 - ], - [ - 852, - 258 - ], - [ - 853, - 258 - ], - [ - 854, - 259 - ], - [ - 856, - 258 - ], - [ - 857, - 261 - ], - [ - 859, - 254 - ], - [ - 861, - 256 - ], - [ - 864, - 248 - ], - [ - 865, - 249 - ], - [ - 866, - 244 - ], - [ - 867, - 245 - ], - [ - 868, - 243 - ], - [ - 869, - 241 - ], - [ - 870, - 238 - ], - [ - 871, - 233 - ], - [ - 872, - 228 - ], - [ - 873, - 222 - ], - [ - 874, - 213 - ], - [ - 875, - 224 - ], - [ - 877, - 217 - ], - [ - 878, - 221 - ], - [ - 879, - 225 - ], - [ - 880, - 230 - ], - [ - 881, - 233 - ], - [ - 882, - 236 - ], - [ - 883, - 239 - ], - [ - 884, - 241 - ], - [ - 885, - 244 - ], - [ - 886, - 247 - ], - [ - 887, - 250 - ], - [ - 888, - 254 - ], - [ - 889, - 259 - ], - [ - 890, - 264 - ], - [ - 891, - 269 - ], - [ - 892, - 273 - ], - [ - 893, - 277 - ], - [ - 894, - 282 - ], - [ - 895, - 286 - ], - [ - 896, - 292 - ], - [ - 897, - 298 - ], - [ - 898, - 304 - ], - [ - 899, - 310 - ], - [ - 901, - 302 - ], - [ - 902, - 313 - ], - [ - 903, - 304 - ], - [ - 904, - 306 - ], - [ - 906, - 302 - ], - [ - 907, - 304 - ], - [ - 908, - 309 - ], - [ - 909, - 313 - ], - [ - 910, - 318 - ], - [ - 911, - 319 - ], - [ - 912, - 319 - ], - [ - 914, - 322 - ], - [ - 915, - 317 - ], - [ - 916, - 317 - ], - [ - 917, - 313 - ], - [ - 918, - 309 - ], - [ - 919, - 304 - ], - [ - 920, - 299 - ], - [ - 921, - 294 - ], - [ - 922, - 288 - ], - [ - 923, - 282 - ], - [ - 924, - 276 - ], - [ - 925, - 269 - ], - [ - 926, - 262 - ], - [ - 927, - 256 - ], - [ - 928, - 253 - ], - [ - 929, - 253 - ], - [ - 934, - 248 - ], - [ - 935, - 248 - ], - [ - 936, - 248 - ], - [ - 937, - 245 - ], - [ - 938, - 242 - ], - [ - 939, - 239 - ], - [ - 940, - 236 - ], - [ - 941, - 233 - ], - [ - 942, - 230 - ], - [ - 943, - 229 - ], - [ - 945, - 233 - ], - [ - 946, - 232 - ], - [ - 947, - 238 - ], - [ - 948, - 249 - ], - [ - 949, - 262 - ], - [ - 950, - 278 - ], - [ - 951, - 296 - ], - [ - 952, - 314 - ], - [ - 953, - 324 - ], - [ - 954, - 309 - ], - [ - 955, - 343 - ], - [ - 956, - 329 - ], - [ - 957, - 315 - ], - [ - 958, - 304 - ], - [ - 959, - 296 - ], - [ - 960, - 298 - ], - [ - 962, - 293 - ], - [ - 963, - 290 - ], - [ - 964, - 297 - ], - [ - 965, - 299 - ], - [ - 966, - 302 - ], - [ - 967, - 305 - ], - [ - 968, - 309 - ], - [ - 969, - 315 - ], - [ - 970, - 322 - ], - [ - 971, - 330 - ], - [ - 972, - 339 - ], - [ - 973, - 344 - ], - [ - 974, - 352 - ], - [ - 975, - 345 - ], - [ - 976, - 352 - ], - [ - 977, - 350 - ], - [ - 978, - 349 - ], - [ - 981, - 345 - ], - [ - 982, - 345 - ], - [ - 983, - 343 - ], - [ - 984, - 338 - ], - [ - 985, - 333 - ], - [ - 986, - 327 - ], - [ - 987, - 322 - ], - [ - 988, - 317 - ], - [ - 990, - 324 - ], - [ - 991, - 314 - ], - [ - 992, - 323 - ], - [ - 993, - 329 - ], - [ - 994, - 337 - ], - [ - 995, - 345 - ], - [ - 996, - 352 - ], - [ - 998, - 342 - ], - [ - 999, - 348 - ], - [ - 1000, - 343 - ], - [ - 1001, - 335 - ], - [ - 1002, - 337 - ] - ], - "chart_area": { - "top": 28, - "bottom": 524, - "left": 20, - "right": 1003 - }, - "image_size": { - "width": 1024, - "height": 570 - } -} \ No newline at end of file diff --git a/frontend/build-and-deploy.bat b/frontend/build-and-deploy.bat new file mode 100644 index 0000000..5e5fe91 --- /dev/null +++ b/frontend/build-and-deploy.bat @@ -0,0 +1,47 @@ +@echo off +chcp 65001 >nul +echo ================================================ +echo 前端项目构建和部署脚本 +echo ================================================ +echo. + +cd /d "%~dp0" + +echo [1/3] 清理旧的构建文件... +if exist dist ( + rmdir /s /q dist + echo 已删除旧的 dist 目录 +) +echo. + +echo [2/3] 安装依赖并构建项目... +call pnpm install +if errorlevel 1 ( + echo. + echo ❌ 依赖安装失败,请检查网络连接 + pause + exit /b 1 +) + +call pnpm build +if errorlevel 1 ( + echo. + echo ❌ 构建失败,请检查错误信息 + pause + exit /b 1 +) +echo. + +echo [3/3] 构建完成! +echo. +echo ================================================ +echo 构建产物位置:%~dp0dist +echo ================================================ +echo. +echo 下一步操作: +echo 1. 将 dist 文件夹上传到服务器 +echo 2. 在服务器上运行:docker compose up -d +echo 3. 访问:http://服务器 IP:8082 +echo. +echo 文件已准备就绪,按任意键继续... +pause >nul diff --git a/frontend/nginx.conf b/frontend/nginx.conf index 8666971..406f682 100644 --- a/frontend/nginx.conf +++ b/frontend/nginx.conf @@ -8,7 +8,7 @@ server { gzip on; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; - # API proxy to backend + # API proxy to backend (使用后端容器名和端口) location /api { proxy_pass http://backend:8000; proxy_set_header Host $host; diff --git a/frontend/src/views/model/index.vue b/frontend/src/views/model/index.vue index bb74dd8..e22ced2 100644 --- a/frontend/src/views/model/index.vue +++ b/frontend/src/views/model/index.vue @@ -380,44 +380,34 @@ const handleDelete = (row) => { // 提交表单 const handleSubmit = async () => { if (!formRef.value) return - + await formRef.value.validate(async (valid) => { if (valid) { submitLoading.value = true try { - // 如果有文件,使用 FormData 上传 + // 始终使用 FormData 格式提交(后端需要 form-data) + const formDataUpload = new FormData() + formDataUpload.append('brand_name', formData.brand_name) + formDataUpload.append('name', formData.name) + formDataUpload.append('form', formData.form) + formDataUpload.append('rig', formData.rig) + formDataUpload.append('source', formData.source) + formDataUpload.append('eq_key', formData.eq_key || '') + + // 如果有文件,添加到 FormData if (uploadedFile.value) { - const formDataUpload = new FormData() - formDataUpload.append('brand_name', formData.brand_name) - formDataUpload.append('name', formData.name) - formDataUpload.append('form', formData.form) - formDataUpload.append('rig', formData.rig) - formDataUpload.append('source', formData.source) - formDataUpload.append('eq_key', formData.eq_key || '') formDataUpload.append('measurement_file', uploadedFile.value) - - const api = formData.id ? updateModel : createModel - const res = await api(formDataUpload, { isFormData: true }) - - if (res.code === 1) { - ElMessage.success(formData.id ? '更新成功' : '创建成功') - dialogVisible.value = false - loadData() - } else { - ElMessage.error(res.msg || '操作失败') - } + } + + const api = formData.id ? updateModel : createModel + const res = await api(formDataUpload, { isFormData: true }) + + if (res.code === 1) { + ElMessage.success(formData.id ? '更新成功' : '创建成功') + dialogVisible.value = false + loadData() } else { - // 没有文件,使用普通 JSON 提交 - const api = formData.id ? updateModel : createModel - const res = await api(formData) - - if (res.code === 1) { - ElMessage.success(formData.id ? '更新成功' : '创建成功') - dialogVisible.value = false - loadData() - } else { - ElMessage.error(res.msg || '操作失败') - } + ElMessage.error(res.msg || '操作失败') } } catch (error) { console.error('操作失败:', error)