scientific-plot-digitizer은(는) 무엇을 하나요?
Codex 스킬: 과학 연구 플롯 이미지를 부드러운 CSV/Excel 데이터로 디지털화하며, 축 보정, QA 재플롯, 축 절단 표기를 지원합니다. 科研曲线图片数据提取 Codex skill,支持坐标标定、平滑数据导出、复绘检查与断轴说明。
개요
이 스킬은 과학 논문 및 보고서에 사용되는 곡선 그래프(플롯) 이미지에서 데이터 포인트를 추출하여 수치화합니다. 사용자가 제공한 이미지를 분석하여 축 좌표계를 보정하고, 곡선을 따라 데이터를 샘플링한 후 부드러운(smooth) CSV 또는 Excel 파일로 내보냅니다. 또한 추출된 데이터를 재플롯하여 원본 이미지와의 정합성을 검증(QA)하고, 축이 절단된 그래프의 경우 해당 정보를 메타데이터로 포함합니다.
작동 방식
- 이미지 입력: 사용자는 플롯 이미지 파일(예: PNG, JPG) 경로를 제공합니다.
- 축 보정(Calibration): 사용자가 지정한 축 범위와 단위를 바탕으로 픽셀 좌표를 실제 물리량으로 변환합니다.
- 데이터 추출: 이미지 처리 기법(예: 엣지 검출, 색상 분리)을 사용하여 곡선을 따라 데이터 포인트를 자동 또는 반자동으로 추출합니다.
- 내보내기: 추출된 데이터를 부드러운 보간(interpolation) 처리하여 CSV 또는 Excel 파일로 저장합니다.
- QA 재플롯: 추출된 데이터를 다시 그래프로 그려 원본 이미지 위에 오버레이하여 정확성을 시각적으로 확인합니다.
- 축 절단 표기: 원본 이미지에서 축이 절단된(broken axis) 경우, 해당 구간에 대한 주석(예: '//')을 데이터 파일에 포함시킵니다.
전제 조건
- OpenAI Codex 환경(예: Codex CLI, VSCode 확장 등)
- Python 3.8 이상
- 필수 Python 패키지:
numpy,pandas,matplotlib,opencv-python,scipy,openpyxl
사용 방법
예시 명령어
# 디지털화할 이미지 경로와 축 보정 정보를 제공
codex digitize --image "path/to/plot.png" \
--x-min 0 --x-max 10 --x-label "Time (s)" \
--y-min 0 --y-max 50 --y-label "Amplitude (V)"
주요 플래그
| 플래그 | 설명 | 필수 |
|---|---|---|
--image | 입력 이미지 파일 경로 | 예 |
--x-min, --x-max | X축 실제 최소/최대값 | 예 |
--y-min, --y-max | Y축 실제 최소/최대값 | 예 |
--x-label, --y-label | 축 레이블 (선택 사항) | 아니오 |
--output | 출력 파일 이름 (기본값: extracted_data.csv) | 아니오 |
--smooth | 데이터 평활화 정도 (기본값: True) | 아니오 |
--qa-plot | QA 재플롯 생성 여부 (기본값: True) | 아니오 |
출력 구조
extracted_data.csv(또는.xlsx): 아래 열을 포함x_value: 보정된 X축 값y_value: 보정된 Y축 값broken_axis_note(해당 시): 축 절단 구간 표시 (예: "Axis broken between x=3.5 and x=4.0")
qa_plot.png: QA 재플롯 이미지 (원본 이미지 위에 오버레이)
한계 및 주의사항
- 복잡한 3D 그래프나 컬러맵 플롯은 현재 지원하지 않습니다(2D 선 플롯만 해당).
- 이미지 해상도가 낮거나 곡선이 겹치는 경우 정확도가 떨어질 수 있습니다.
- 축 절단 지점은 사용자가 수동으로 지정할 수 있습니다(
--broken-axis플래그 사용). - 추출된 데이터는 항상 QA 재플롯으로 시각적 검증을 권장합니다.
예시 출력 (CSV)
x_value,y_value,broken_axis_note
0.0,1.23,
1.0,4.56,
2.0,9.87,
3.5,15.21,
4.0,,"Axis broken between x=3.5 and x=4.0"
5.0,22.34,Broken axis end
라이선스
이 스킬은 MIT 라이선스 하에 공개됩니다. 자유롭게 사용, 수정, 배포할 수 있습니다.