GX-TXT Curve Digitalizer — Guida 03: digitalizzare una curva con assi logaritmici
Dall’immagine raster a un Dataset verificabile: l’esempio della funzione y = √x
Nei grafici scientifici non tutti gli assi sono lineari. Quando una grandezza copre diversi ordini di grandezza, spesso si preferisce una scala logaritmica: distanze uguali sulla carta rappresentano rapporti uguali tra i valori, non differenze uguali. Questo cambia il modo in cui un’immagine deve essere calibrata, e rende pericoloso trasformare direttamente i pixel con una semplice proporzione lineare.
In questa terza guida utilizziamo GX-TXT Curve Digitalizer per recuperare i dati da un grafico sintetico a doppia scala logaritmica. La funzione è nota in anticipo, y = √x: possiamo così distinguere ciò che sappiamo matematicamente da ciò che il digitalizzatore misura davvero sul raster. Seguiremo l’intero percorso: importazione, calibrazione, verifica, punti guida, tracciamento assistito, pubblicazione del Dataset e controllo nella Preview.
1. Il nostro campione: una funzione nota su carta log-log
L’immagine di partenza, log-reference.png, è un raster RGB di 1000 × 700 pixel. La linea blu rappresenta la funzione y = √x; i quattro marcatori rossi delimitano il rettangolo utile per la calibrazione. I valori di riferimento degli assi sono:
| Asse | Minimo | Massimo | Scala | Unità |
|---|---|---|---|---|
| X | 1 | 1000 | Logaritmica | 1 (adimensionale) |
| Y | 0,01 | 100 | Logaritmica | 1 (adimensionale) |
In una rappresentazione log-log la funzione appare come una retta, perché log₁₀(y) = 0,5 · log₁₀(x). La pendenza attesa nel piano logaritmico è dunque 0,5. Questa è una proprietà della funzione e della scelta degli assi, non un risultato della digitalizzazione.
Per avere qualche riferimento concreto, sulla curva teorica troviamo (1; 1), (10; 3,1623), (100; 10) e (1000; 31,6228). Non useremo questi numeri per costruire artificialmente i dati: li conserveremo come termini indipendenti di confronto.
2. Importare la sorgente come Dataset
Creiamo una nuova Session di GX-TXT, separata dalle prove delle guide precedenti. Nella sezione Acquisition selezioniamo Image importer, scegliamo log-reference.png, assegniamo l’identificativo image.tutorial03.log_reference e importiamo il file.
L’importazione crea un Dataset canonico di tipo image.raster. Il Curve Digitalizer può quindi lavorare su una sorgente associata alla Session, senza ricorrere a percorsi privati o a immagini sostituite manualmente nel progetto.
Apriamo Viewers → Digitalizer, creiamo una configurazione nuova chiamata T03 - sqrt(x) log-log, selezioniamo il Dataset appena importato in Image Dataset e confermiamo la finestra di anteprima con Use this image. Nel pannello Source troviamo l’identità della sorgente, le dimensioni del raster e la sua impronta SHA-256.

3. Impostare entrambi gli assi in scala logaritmica
Nella scheda Calibration impostiamo X e Y prima di scegliere i punti di riferimento. Per l’asse X inseriamo etichetta x, unità 1, ruolo semantico independent, minimo 1, massimo 1000 e Scale = log. Per l’asse Y inseriamo etichetta y=sqrt(x), unità 1, ruolo measured, minimo 0.01, massimo 100 e ancora Scale = log. Lasciamo la direzione Y su Upward (Cartesian), quindi premiamo Apply axis settings.

La scala logaritmica richiede estremi strettamente positivi. Durante la prova abbiamo anche verificato il comportamento dell’interfaccia inserendo provvisoriamente Y minimum = 0: il Digitalizer ha rifiutato l’impostazione con l’avviso «Logarithmic axes require positive limits». Abbiamo poi ripristinato il minimo corretto, 0.01, senza alterare la calibrazione valida.
4. Calibrare i quattro angoli del raster
L’immagine usa una calibrazione manuale a quattro punti. Nella stessa scheda Calibration selezioniamo, nell’ordine, i comandi Set BL, Set BR, Set TL, Set TR e facciamo clic sui marcatori rossi corrispondenti: bottom left, bottom right, top left e top right.
I punti effettivamente acquisiti nella prova GUI, espressi nelle coordinate pixel dell’immagine originale, sono:
| Angolo | Pixel X | Pixel Y |
|---|---|---|
| BL | 119,424 | 599,640 |
| BR | 919,424 | 599,640 |
| TL | 119,424 | 80,216 |
| TR | 919,424 | 80,216 |
I valori non coincidono esattamente con i centri nominali (120; 600), (920; 600), (120; 80), (920; 80): sono coordinate realmente ottenute attraverso i clic sul canvas, con una risoluzione grafica finita. Il sistema ha riconosciuto la calibrazione e abbiamo portato la misura Measurement 1 dallo stato draft allo stato accepted.

Il Digitalizer ha riportato un numero di condizionamento dell’omografia di circa 3,4 × 10³ e un RMS di riproiezione sui quattro angoli di circa 1,57 × 10⁻¹⁶. Questo RMS esprime la coerenza della trasformazione con i punti usati per calcolarla: non è l’incertezza della lettura della curva e non dimostra, da solo, l’accuratezza della digitalizzazione.
5. Verificare alcuni punti noti
Usiamo Verify calibration… per selezionare punti identificabili sulla traccia blu, inserendo nelle caselle Expected le coordinate fisiche previste dalla funzione. L’interfaccia restituisce i valori calcolati dalla calibrazione e i relativi scarti, senza modificare il Dataset.
| X teorica | Y teorica | X letta dalla GUI | Y letta dalla GUI |
|---|---|---|---|
| 1 | 1 | 1,0000 | 1,0128 |
| 10 | 3,1623 | 10,0832 | 3,1927 |
| 100 | 10 | 100,4150 | 10,0640 |
| 1000 | 31,6228 | 1000,0000 | 31,7238 |

Gli scarti sono piccoli rispetto all’escursione complessiva, ma non sono nulli. La scelta del pixel, lo spessore della linea, la posizione dei marcatori e il ricampionamento dell’immagine contribuiscono a limitare la precisione pratica. La verifica interattiva qui descritta non va confusa con una valutazione metrologica completa dell’incertezza.
6. Tracciare la curva con cinque punti guida
Passiamo alla scheda Curves. Non stiamo costruendo una famiglia di curve: lasciamo disattivata la casella This configuration is a numerical curve family e creiamo una sola curva mediante New curve, assegnandole il nome sqrt(x).
Per la prova di tracciamento assistito attiviamo Add guide e indichiamo cinque punti, distribuiti lungo la linea blu dal primo all’ultimo estremo. I punti guida descrivono il percorso desiderato: non sono ancora i cento punti che pubblicheremo.

Impostiamo Corridor = 5 px, Step = 8 px, Smooth curve prior = Off e Trace image = original. Nella sezione di accettazione specifichiamo Output points (Accept) = 100. Premendo Propose, il Curve Digitalizer elabora una proposta di 105 punti lungo 4 segmenti; in questa prova non segnala segmenti ambigui nella proposta. Esaminiamo visivamente la sovrapposizione prima di proseguire.

Con Accept confermiamo i quattro segmenti. L’interfaccia registra 100 assisted points added. Il conteggio finale della curva diventa 100 punti. La differenza fra 105 punti proposti e 100 accettati dipende dalla densità di uscita scelta, non dalla perdita accidentale di cinque dati.

7. Pubblicare il Dataset canonico
Nella scheda Publish impostiamo come nome base digitized.tutorial03.sqrt_loglog, scegliamo il layout separate e selezioniamo l’unica misura di calibrazione accettata, Measurement 1. Premiamo Publish selected calibrations.
Il risultato è un Dataset canonico con ID:
digitized.tutorial03.sqrt_loglog.measurement_1.curves

Il Dataset pubblicato contiene 100 righe e otto colonne: x, y, curve_id, curve_label, point_index, point_id, pixel_x, pixel_y. Le prime due riportano le coordinate scientifiche; le ultime due conservano la posizione nel raster originale. Identificatori e indici permettono di ricondurre le righe alla curva e ai punti da cui hanno avuto origine. Non abbiamo creato più copie dei medesimi punti attraverso calibrazioni alternative.
8. Controllare i risultati nella Dataset Preview
Nel pannello Dataset di GX-TXT attiviamo il nuovo Dataset e apriamo Preview. La visualizzazione mette a disposizione le schede Source image, Plot, Table e Quality.
La scheda Source image mostra il grafico originale con i punti digitalizzati sovrapposti: è il controllo visivo più immediato per capire se il tracciamento è rimasto sulla linea blu.

La scheda Plot rappresenta invece i valori numerici X e Y contenuti nel Dataset. Nella prova la vista iniziale usa assi di presentazione lineari: per questo la funzione appare con la consueta forma di radice quadrata, non come la retta osservata nel grafico sorgente log-log.

Nella scheda Table ritroviamo tutte le 100 righe del Dataset, comprese le coordinate scientifiche e i riferimenti ai pixel originali.

Infine, Quality espone il rapporto diagnostico della pubblicazione. Nel nostro caso segnala una curva, 100 punti raster, 99 segmenti e due osservazioni informative di debole contrasto locale. Non sono automaticamente due punti sbagliati e non costituiscono una stima dell’errore fisico. Il rapporto distingue infatti le osservazioni sull’immagine dall’accuratezza e dall’incertezza metrologiche, che non risultano valutate o dichiarate.

9. Quanto si avvicinano i punti alla funzione teorica?
Poiché conosciamo il modello, possiamo eseguire un controllo numerico indipendente dalla schermata sul CSV pubblicato. Per ciascuna riga prendiamo la X digitalizzata, calcoliamo la radice quadrata teorica di quella stessa X e confrontiamola con la Y digitalizzata. In simboli, lo scarto relativo percentuale è:
100 · [Y(digitalizzata) − √X(digitalizzata)] / √X(digitalizzata).
Sui 100 punti effettivamente pubblicati abbiamo ottenuto:
| Indicatore | Risultato |
|---|---|
| Punti confrontati | 100 |
| Errore relativo RMS rispetto a y = √x | 2,395% |
| Massimo errore relativo assoluto | 5,489% |
| Pendenza della regressione log₁₀(Y) su log₁₀(X) | 0,503632 |
| Intercetta della stessa regressione | −0,002120 |
La pendenza sperimentale 0,5036 è vicina alla pendenza teorica 0,5. Questo conferma che i dati seguono complessivamente la relazione attesa. Non significa che ciascun punto sia corretto: gli scarti locali, soprattutto per una traccia di pochi pixel di spessore, vanno esaminati separatamente.
Il valore RMS del 2,395% descrive quanto il Dataset differisce dalla funzione di riferimento in questo esercizio sintetico. Non è un’incertezza standard assegnabile automaticamente a nuove misure, né un’indicazione della prestazione universale del digitalizzatore su qualunque immagine.
10. Salvare, chiudere e riaprire
Concludiamo salvando la configurazione nella Session. Chiudiamo il Curve Digitalizer e riapriamolo attraverso Viewers → Digitalizer, senza ricreare la sorgente né ripetere l’importazione. La stessa configurazione T03 - sqrt(x) log-log viene recuperata insieme all’immagine, alla calibrazione e ai 100 punti accettati.

Conclusione
Questa prova mostra l’intero percorso da un’immagine scientifica a un Dataset numerico tracciabile. Gli aspetti fondamentali non sono soltanto la velocità del tracciamento, ma soprattutto la corretta interpretazione delle scale, la verifica di punti noti, la conservazione delle coordinate raster e la distinzione tra dati pubblicati, diagnostica dell’immagine e incertezza fisica.
La funzione y = √x è un caso didattico particolarmente utile: sul raster log-log è una retta, mentre nella rappresentazione numerica lineare torna a essere una radice quadrata. Il contenuto scientifico dei dati resta lo stesso; cambia il modo in cui scegliamo di visualizzarli.
Materiale per riprodurre l’esperimento
Per ripetere l’esercizio occorre l’immagine originale log-reference.png. Il file complementare log-reference.json descrive geometria e riferimenti matematici ideali, utili per il confronto ma non sostitutivi della calibrazione eseguita nella GUI. I due file sono raccolti nel pacchetto didattico
Altre tappe del progetto
- Curve Digitizer in GX-TXT: le curve dei datasheet diventano Dataset
- Dal grafico al Dataset scientifico: il primo esperimento con GX-TXT Curve Digitalizer
- GX-TXT Curve Digitalizer — Tutorial 02: digitalizzare una famiglia di curve con calibrazioni multiple
- GX-TXT Curve Digitalizer – Guida 04: digitalizzazione scientifica con doppio asse Y, calibrazione e propagazione delle incertezze