跳转到主要内容

svgdigitizer是一个Python库和命令行工具,用于恢复科学出版物中图表下隐藏的测量数据。

项目描述

SVGDigitizer — 从SVG文件中提取(x,y)数据点

Logo

svgdigitizer允许从二维坐标系中绘制的图中恢复数据,通常在科学出版物中找到。数据可以通过命令行界面或从特别准备的缩放矢量图形(SVG)文件中的API访问。数据可以存储为无摩擦数据包(CSV和JSON),可用于unitpackage以访问图表元数据或创建此类数据包的数据库。

优点

与其他绘图数字化器相比,svgdigitizer有一些优点,例如

  • 支持每个x(y)值多个y(x)值
  • 使用样条允许非常精确地重新追踪不同的特征
  • 样条可以用特定的采样间隔进行数字化
  • 支持变形/偏斜轴的图表
  • 从轴标签中提取单位
  • 以给定的扫描速率重建时间序列
  • 支持比例尺
  • 支持缩放因子
  • 从SVG中提取与图表相关的元数据
  • 无摩擦数据包(CSV + JSON)保存数据,允许FAIR数据使用
  • 在数据包中包含元数据
  • Python API以与重新追踪的数据交互

请参阅我们的文档获取更多详情。

安装

此软件包可在PiPY上找到,并可以使用pip进行安装。

pip install svgdigitizer

该软件包还可在conda-forge上找到,并可以使用conda或mamba进行安装。

conda install -c conda-forge svgdigitizer

安装。

mamba install -c conda-forge svgdigitizer

有关更详细的安装说明,请咨询我们的文档

命令行界面

CLI允许从PDF创建SVG文件,并允许对处理后的SVG文件进行数字化。某些图表类型有特定的命令来恢复不同类型的元数据。有关更多信息,请参阅CLI文档

$ svgdigitizer
Usage: svgdigitizer [OPTIONS] COMMAND [ARGS]...

  The svgdigitizer suite.

Options:
  --help  Show this message and exit.

Commands:
  cv        Digitize a cylic voltammogram and create a frictionless datapackage.
  digitize  Digitize a 2D plot.
  figure    Digitize a figure with units on the axis and create a frictionless datapackage.
  paginate  Render PDF pages as individual SVG files with linked PNG images.
  plot      Display a plot of the data traced in an SVG.

$ svgdigitizer figure doc/files/others/looping_scan_rate.svg --sampling-interval 0.01

API

您还可以直接从Python使用svgdigitizer软件包,以访问SVG或与图形相关联的附加属性。

>>> from svgdigitizer.svg import SVG
>>> from svgdigitizer.svgplot import SVGPlot
>>> from svgdigitizer.svgfigure import SVGFigure


>>> figure = SVGFigure(SVGPlot(SVG(open('doc/files/others/looping.svg', 'rb')), sampling_interval=0.01))

示例:figure.df提供数字化的曲线的数据框。 figure.plot()显示数字化的曲线图。 figure.metadata提供包含原始图表元数据(如轴的原始单位)的字典。

svgdigitizer可以通过子模块进行增强,这些子模块旨在数字化特定类型的图表,例如子模块electrochemistry.cv

此子模块允许数字化电化学领域常见的光伏伏安曲线。

>>> from svgdigitizer.svg import SVG
>>> from svgdigitizer.svgplot import SVGPlot
>>> from svgdigitizer.electrochemistry.cv import CV

>>> cv_svg = 'doc/files/mustermann_2021_svgdigitizer_1/mustermann_2021_svgdigitizer_1_f2a_blue.svg'
>>> cv = CV(SVGPlot(SVG(open(cv_svg, 'rb')), sampling_interval=0.01))

生成的cv对象具有与上面所述的figure对象相同的属性。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装软件包的信息。

源分发

svgdigitizer-0.12.0.tar.gz (49.9 kB 查看哈希值)

上传时间:

支持者

AWSAWS 云计算和安全赞助商 DatadogDatadog 监控 FastlyFastly CDN GoogleGoogle 下载分析 MicrosoftMicrosoft PSF赞助商 PingdomPingdom 监控 SentrySentry 错误日志 StatusPageStatusPage 状态页面