From a raster image to a verifiable Dataset: the example of the function y = √x

Not all axes in scientific plots are linear. When a quantity spans several orders of magnitude, a logarithmic scale is often preferable: equal distances on the chart represent equal ratios between values, not equal differences. This changes how an image must be calibrated and makes it risky to convert pixels directly using a simple linear proportion.

In this third guide, we use GX-TXT Curve Digitalizer to recover data from a synthetic chart with two logarithmic axes. We know the function in advance, y = √x, so we can distinguish what is mathematically known from what the digitizer actually measures on the raster. We will follow the complete workflow: importing, calibrating, verifying, placing guide points, assisted tracing, publishing the Dataset and checking it in Preview.

1. Our sample: a known function on a log-log chart

The starting image, log-reference.png, is a 1000 × 700 pixel RGB raster. The blue line represents y = √x; the four red markers define the rectangle used for calibration. The reference axis values are:

AxisMinimumMaximumScaleUnit
X11000Logarithmic1 (dimensionless)
Y0.01100Logarithmic1 (dimensionless)

On a log-log plot, the function appears as a straight line because log₁₀(y) = 0.5 · log₁₀(x). The expected slope in logarithmic coordinates is therefore 0.5. This follows from the function and the choice of axes; it is not a result of digitization.

For concrete reference points, the theoretical curve contains (1, 1), (10, 3.1623), (100, 10) and (1000, 31.6228). We will not use these values to generate the data artificially: we will retain them as independent comparison references.

2. Importing the source as a Dataset

We create a new GX-TXT Session, separate from the experiments in the previous guides. In Acquisition, we select Image importer, choose log-reference.png, assign the ID image.tutorial03.log_reference and import the file.

Importing creates a canonical Dataset with the image.raster contract. Curve Digitalizer can then work with a source linked to the Session, without relying on private paths or manually replacing images inside the project.

We open Viewers → Digitalizer, create a new configuration named T03 - sqrt(x) log-log, select the newly imported Dataset under Image Dataset and confirm the preview dialog with Use this image. The Source panel displays the source identity, raster dimensions and SHA-256 fingerprint.

Curve Digitalizer displaying the log-log plot of y = √x and the Source panel with raster identity, dimensions and SHA-256.
Figure 1 — The synthetic chart linked to the Curve Digitalizer configuration. The Source panel lets us check the Dataset and raster source identities.

3. Setting both axes to logarithmic scale

In the Calibration tab, we configure X and Y before selecting the reference points. For X, we enter label x, unit 1, semantic role independent, minimum 1, maximum 1000, and Scale = log. For Y, we enter label y=sqrt(x), unit 1, role measured, minimum 0.01, maximum 100, and again Scale = log. We leave the Y direction at Upward (Cartesian) and click Apply axis settings.

Calibration tab with X ranging from 1 to 1000 and Y from 0.01 to 100, both set to logarithmic scale.
Figure 2 — The scientific limits and scales of the X and Y axes. The “log” setting applies to data calibration, not merely to how the plot appears.

A logarithmic scale requires strictly positive limits. During the test, we also checked the interface by temporarily entering Y minimum = 0: the Digitalizer rejected the setting with the warning “Logarithmic axes require positive limits.” We then restored the correct minimum, 0.01, without changing the valid calibration.

4. Calibrating the four corners of the raster

The image uses manual four-point calibration. In the same Calibration tab, we select Set BL, Set BR, Set TL, and Set TR in that order, clicking the corresponding red markers: bottom left, bottom right, top left and top right.

The points actually recorded during the GUI test, expressed in the original image’s pixel coordinates, are:

CornerPixel XPixel Y
BL119.424599.640
BR919.424599.640
TL119.42480.216
TR919.42480.216

The values do not match the nominal marker centers (120, 600), (920, 600), (120, 80), and (920, 80) exactly: they are coordinates obtained from actual clicks on the canvas, at finite display resolution. The system recognized the calibration, and we changed Measurement 1 from draft to accepted.

The y = √x chart with BL, BR, TL and TR markers and an accepted calibration measurement in Curve Digitalizer.
Figure 3 — The four calibration markers. The active measurement is accepted only after checking its geometry.

The Digitalizer reported a homography condition number of approximately 3.4 × 10³ and a four-corner reprojection RMS of approximately 1.57 × 10⁻¹⁶. This RMS describes how consistently the transformation reproduces the points used to calculate it: it is not the uncertainty of the digitized curve and does not, by itself, demonstrate digitization accuracy.

5. Checking known reference points

We use Verify calibration… to select identifiable points on the blue trace, entering the function’s expected physical coordinates in the Expected fields. The interface returns the coordinates calculated from calibration and their deviations, without modifying the Dataset.

Theoretical XTheoretical YGUI XGUI Y
111.00001.0128
103.162310.08323.1927
10010100.415010.0640
100031.62281000.000031.7238
Calibration verification panel with a selected curve point, calculated coordinates and differences from expected values.
Figure 4 — Interactive verification shows calculated coordinates and deviations from an expected scientific value. The table values come from GUI tests, not simulated clicks.

The deviations are small relative to the overall range, but they are not zero. Pixel selection, line thickness, marker placement and image resampling all limit practical precision. The interactive check described here must not be confused with a complete metrological uncertainty assessment.

6. Tracing the curve with five guide points

We switch to the Curves tab. We are not building a curve family, so we leave This configuration is a numerical curve family unchecked and create a single curve using New curve, naming it sqrt(x).

For the assisted tracing test, we enable Add guide and place five points along the blue line, from its first to its last endpoint. The guide points describe the intended path; they are not yet the one hundred points we will publish.

Log-log plot with five guide markers G1–G5 distributed along the blue y = √x line.
Figure 5 — Five guide points along the synthetic curve. A small number of references can guide the assisted tracing of a smooth trace.

We set Corridor = 5 px, Step = 8 px, Smooth curve prior = Off and Trace image = original. In the acceptance controls, we specify Output points (Accept) = 100. Clicking Propose, Curve Digitalizer generates a proposal of 105 points across 4 segments; in this test it reports no ambiguous segments in the proposal. We visually inspect the overlay before continuing.

Assisted tracing proposal following the blue curve, with five guides, a 5-pixel corridor and an 8-pixel step.
Figure 6 — The assisted proposal follows the original blue trace. Guide points are distinct from proposed points; the proposal is not yet a published measurement.

With Accept, we confirm the four segments. The interface reports 100 assisted points added. The final curve contains 100 points. The difference between 105 proposed points and 100 accepted points results from the selected output density, not from the accidental loss of five data points.

Curve Digitalizer showing one hundred accepted red points over the blue trace on the log-log chart.
Figure 7 — One hundred accepted points overlaid on the source chart. The curve belongs to the configuration and can be reviewed before publication.

7. Publishing the canonical Dataset

In the Publish tab, we enter digitized.tutorial03.sqrt_loglog as the base name, select the separate layout and choose the only accepted calibration measurement, Measurement 1. We click Publish selected calibrations.

The result is a canonical Dataset with the following ID:

digitized.tutorial03.sqrt_loglog.measurement_1.curves

Curve Digitalizer Publish tab confirming Published 1 Dataset(s) and showing the curve Dataset identifier.
Figure 8 — Confirmation that the Dataset was published from one curve and one accepted calibration measurement.

The published Dataset contains 100 rows and eight columns: x, y, curve_id, curve_label, point_index, point_id, pixel_x, and pixel_y. The first two contain scientific coordinates; the last two preserve positions in the original raster. Identifiers and indices link the rows to their source curve and points. We have not produced multiple copies of the same points through alternative calibrations.

8. Checking the results in Dataset Preview

In the GX-TXT Dataset panel, we activate the new Dataset and open Preview. The available tabs include Source image, Plot, Table and Quality.

The Source image tab displays the original chart with the digitized points overlaid. This provides the most immediate visual check of whether the trace remained on the blue line.

Source image tab displaying the original y = √x log-log chart with digitized points over the blue line.
Figure 9 — Source image: verified source identity and published points displayed at their original raster coordinates.

The Plot tab, by contrast, displays the numerical X and Y values stored in the Dataset. In our test, the initial view uses linear presentation axes. The function therefore has its familiar square-root shape, rather than appearing as the straight line seen on the original log-log chart.

Dataset Preview Plot tab showing the numerical y = √x curve on linear X and Y axes.
Figure 10 — The Preview numerical Plot with linear display scales. The chosen plot style does not change the logarithmic calibration used to obtain the scientific coordinates.

In the Table tab, we find all 100 rows of the Dataset, including scientific coordinates and references to the original raster pixels.

Table tab showing 100 rows of X and Y coordinates, curve and point identifiers, indexes and raster positions.
Figure 11 — Table: canonical data and identifiers for the published points. Pixel coordinates remain available alongside X and Y.

Finally, Quality displays the publication’s diagnostic report. In our case, it shows one curve, 100 raster points, 99 segments and two informational observations of weak local contrast. These do not automatically indicate two incorrect points, nor do they constitute an estimate of physical error. The report distinguishes image observations from metrological accuracy and uncertainty, neither of which was assessed or declared.

Quality v2 tab showing one curve, 100 raster points, 99 segments and two low-contrast observations.
Figure 12 — Quality: point, segment and image-observation counts. Source verification is separate from physical accuracy and uncertainty.

9. How closely do the points match the theoretical function?

Because we know the model, we can perform a numerical check independent of the screenshot using the published CSV. For each row, we take the digitized X, calculate the theoretical square root of that same X and compare it with the digitized Y. The percentage relative deviation is:

100 · [Y(digitized) − √X(digitized)] / √X(digitized).

For the 100 points actually published, we obtained:

MetricResult
Points compared100
RMS relative error versus y = √x2.395%
Maximum absolute relative error5.489%
Slope of log₁₀(Y) versus log₁₀(X) regression0.503632
Intercept of the same regression−0.002120

The fitted slope of 0.5036 is close to the theoretical slope of 0.5. This confirms that the data broadly follow the expected relationship. It does not mean that every point is correct: local deviations, especially with a trace only a few pixels thick, must be examined separately.

The 2.395% RMS value describes how much the Dataset differs from the reference function in this synthetic exercise. It is not a standard uncertainty that can automatically be assigned to new measurements, nor an indication of the digitizer’s universal performance on arbitrary images.

10. Saving, closing and reopening

We finish by saving the configuration in the Session. We close Curve Digitalizer and reopen it via Viewers → Digitalizer, without recreating the source or repeating the import. The same T03 - sqrt(x) log-log configuration is restored together with the image, calibration and all 100 accepted points.

Curve Digitalizer reopened with the same log-log chart and one hundred red sqrt(x) points still present.
Figure 13 — After reopening the Viewer, the curve retains all 100 previously accepted points. This check distinguishes saved work from a temporary display.

Conclusion

This experiment demonstrates the complete workflow from a scientific image to a traceable numerical Dataset. The important aspects are not just tracing speed but, above all, correct interpretation of the scales, verification against known points, preservation of raster coordinates and a clear distinction between published data, image diagnostics and physical uncertainty.

The function y = √x is a particularly useful teaching example: it is a straight line on the log-log raster, while it returns to its square-root shape in a linear numerical representation. The scientific content of the data remains unchanged; only the way we choose to display it differs.

Materials for reproducing the experiment

To repeat the experiment, you need the original image log-reference.png. The companion file log-reference.json describes the ideal geometry and mathematical reference values. These are useful for comparison but do not replace calibration carried out in the GUI. Both files are included in the teaching materials package

#assisted curve tracing #Curve Digitalizer #curve digitization #data extraction #GiuxLab #GX-TXT #log-log plots #logarithmic calibration #Scientific Datasets #scientific image digitization

Other steps of this project

Leave a Reply

Your email address will not be published. Required fields are marked *