Analisi dati
La sezione Analisi dati di func3d trasforma il grafico da illustrazione a strumento di lettura: valori reali sotto il cursore, marcatore con snapping, evidenziazione di elementi geometrici e isocurve, profilo 2D lungo un taglio. Tutte le letture sono in coordinate dati (z grezzo): la scala z visiva e le scale colore non alterano i numeri mostrati.
Modalità analisi e marcatore
- Modalità analisi: attivandola, il click sul grafico non ruota la scena ma interroga la superficie (picking con raycast); la rotazione resta disponibile fuori dalla modalità.
- Mostra marcatore: una sfera segna l'ultimo punto letto; accanto compaiono le coordinate (x, y, z) in valori dato, il gradiente ∇f con le sue componenti, la pendenza e l'azimut della massima salita.
- Serie attiva: con più serie in scena si sceglie quale interrogare (vale anche per statistiche ed estremi locali).
- Il picking interroga le superfici: nubi di punti e campi vettoriali non sono selezionabili (per le nubi ci sono i tooltip al passaggio del mouse).
Snapping
Il punto letto può agganciarsi a riferimenti utili:
| Modalità | Comportamento |
|---|---|
| Nessuno snap | si legge il punto esatto d'intersezione del raggio |
| Vertice più vicino | si aggancia al nodo di mesh più vicino (i valori campionati davvero) |
| Centro triangolo | si aggancia al baricentro del triangolo intersecato |
| Griglia definita | si aggancia a una griglia con passo scelto (es. leggere ogni 0.5) |
| Direzione bloccata | il movimento resta su una direzione fissata (profilo manuale lungo x o y) |
Evidenziazioni
- Triangolo intersecato: colora il triangolo di mesh colpito (con colore a scelta) — utile per capire la risoluzione locale della griglia.
- Isocurva locale: evidenzia la linea di livello passante per il punto letto, limitata alla regione connessa.
- Isocurva globale: la linea di livello alla quota scelta su tutta la superficie; la quota si imposta a mano oppure col pulsante Usa z del click.
Per le isocurve permanenti (più livelli, bande riempite, proiezione sul piano base) si usa invece il blocco Isolinee nella scheda della serie.
Tooltip al passaggio del mouse
Con l'analisi attiva, fermando il cursore sul grafico compare un tooltip con i valori dato del punto: x, y, z per le superfici; per le nubi anche il valore c associato al punto (e c₂ se la nube usa la doppia codifica colore/dimensione).
Nota sulle superfici parametriche (armoniche sferiche, Möbius, tori annodati...): il picking e il tooltip funzionano e mostrano le coordinate 3D reali del punto; non esistono invece isolinee e sezione 2D, perché per questi oggetti non c'è una z(x,y) da tagliare.
Sezione / profilo 2D
Il pannello Sezione 2D affianca al 3D un profilo lungo un taglio del dominio:
- taglio y = cost (profilo z(x)) o x = cost (profilo z(y)), spostabile con uno slider; oppure segmento arbitrario P0→P1 (profilo lungo la distanza s);
- nel 3D un piano-indicatore mostra dove passa il taglio, in tempo reale;
- nel 2D compaiono tutte le superfici visibili (colori distinti, legenda); le superfici chiuse mostrano i due rami, l'inferiore tratteggiato; fuori dal dominio di una serie la sua curva si interrompe;
- crosshair con i valori numerici di ogni curva alla posizione del cursore.
- il profilo si esporta in CSV (le coppie s, z di ogni curva) e in SVG vettoriale: assi, quote, griglia e curve sono oggetti veri, quindi il disegno si apre in Inkscape o Illustrator e si stampa a qualunque dimensione senza sfocarsi.
Curve 3D: tooltip e righello
Le curve parametriche sono linee sottili: il raycast che serve alle superfici non le becca. Il picking fa il contrario — proietta a schermo i campioni della curva e prende il più vicino al mouse entro pochi pixel. Così il tooltip al passaggio dice nome, t, x, y, z del punto, e il righello accetta punti di curva: se un campione sta entro 6 px dal click, il click era per la curva anche quando sotto c'è una superficie. Il punto di curva non viene agganciato (snap): è già un punto esatto della linea.
Registro delle misure
Ogni misura presa sul grafico — distanza 3D e planimetrica fra due punti, dislivello, pendenza media, massima pendenza, volume sopra o sotto una quota, area sopra quota, differenza fra due serie — finisce in un registro in fondo al pannello di analisi, con il suo contesto: quale serie, quali punti, quale quota di riferimento, l'unità di misura. Il registro si svuota con un pulsante e si esporta in CSV.
La ragione è pratica: una misura letta e non annotata è una misura persa, e trascriverla a mano dallo schermo è il punto in cui si sbaglia. Con il registro si prende una serie di misure di seguito — per esempio i dislivelli cratere–base in più direzioni — e si porta via il CSV.
Classi e tematizzazione
Per leggere una superficie come una carta tematica il colore continuo non basta: servono classi. Il modo colore classi offre i metodi consueti — natural breaks (Jenks), intervalli uguali, quantili, deviazione standard, numeri tondi, logaritmica, passo fisso — e mostra la tabella con estremi e conteggio di ogni classe.
Qualche avvertenza che si legge nella tabella e non nell'immagine:
- Jenks è risolto in modo esatto (programmazione dinamica di Fisher), non per approssimazioni: le classi sono l'optimum, non «un buon risultato». Su molte celle è il metodo più costoso, e si vede.
- i quantili su dati con molti valori uguali possono produrre classi di larghezza nulla: in quel caso il numero di classi restituito è minore di quello chiesto, ed è corretto che lo sia — una classe vuota non è una classe.
- i confini di classi adiacenti sono accoppiati: cambiando il «fino a» di una classe si sposta il «da» della successiva, e un confine non può scavalcare la classe vicina. Così non si possono scrivere classi che si sovrappongono o lasciano buchi — il valore che cadeva nel buco prendeva il colore della classe più vicina senza dirlo. Si può anche aggiungere una classe (si spezza in due la più larga) o toglierla (il vicino assorbe l'intervallo: la copertura complessiva non cambia mai);
- gli intervalli sono chiusi a sinistra e aperti a destra [min, max), tranne l'ultimo che è chiuso: così ogni valore appartiene a una classe sola e il massimo non resta fuori.
- si può scegliere quale coordinata decide il colore: la quota z, ma anche x o y — utile quando la variabile interessante è una direzione del piano e non l'altezza.
La classificazione sta in js/local/func3d/classi.js, libreria a sé
con collaudo headless (Jenks è verificato contro la ricerca esaustiva su casi
piccoli). Cambiare classi o tinta non ricostruisce la superficie: si ricolorano i
vertici in posto.
Confrontare due superfici
Il confronto a vista fra due superfici funziona solo se le due scale di colore coincidono. Con estremi diversi — ed è il caso normale, perché ogni serie prende i propri — lo stesso giallo significa 0,9 su una superficie e 2500 sull'altra: l'occhio confronta i colori e conclude il falso. L'interruttore Scala condivisa (Impostazioni generali → Legenda) impone a tutte le superfici gli stessi estremi: l'unione dei loro intervalli, oppure due valori scritti a mano quando si vuole un riferimento fisso fra sessioni diverse.
Le due letture sono complementari: con le scale proprie si vede la forma di ciascuna superficie (ogni colormap usa tutta la sua gamma), con la scala condivisa si vedono i livelli confrontabili. Passare dall'una all'altra non ricostruisce nulla: i vertici vengono ricolorati in posto, e spegnendo l'interruttore si torna esattamente ai colori di prima.
Quale soggetto per quale strumento
Ogni strumento rende al meglio su superfici con la "morfologia" giusta. Una guida rapida sui soggetti del registro:
| Strumento | Soggetti ideali | Cosa osservare |
|---|---|---|
| Estremi locali | Rastrigin, Himmelblau, Müller–Brown, vulcano | il reticolo regolare di picchi della Rastrigin; i 4 minimi identici di Himmelblau; il cratere del DEM. La prominenza filtra il rumore. |
| Massima pendenza | Müller–Brown, vulcano, Franke | sulla PES la discesa blu finisce nel minimo del bacino di partenza (cambia bacino spostando il click oltre la sella); sul DEM è la linea di deflusso. |
| Isocurve e quota z₀ | vulcano, membrana, gaussiana | curve di livello del DEM; linee nodali della membrana (z₀ = 0). |
| Volume rispetto a z₀ | vulcano, nucleo del calore 2D | volume d'invaso sopra una quota; sulla diffusione, il volume sotto la campana resta costante nel tempo (verifica fisica frame per frame). |
| Statistiche e istogramma | vulcano, Rastrigin, nucleo del calore 2D | l'istogramma delle quote del DEM è la curva ipsometrica; sulla Rastrigin la distribuzione è multimodale. |
| Differenza (A − B) | vulcano — campione sparso vs DEM completo; Franke | il caso d'uso principe: interpolare il campione (natural, krige, rst…) e misurare l'errore vero contro il DEM; |Δ|max cade dove i punti sono radi. |
| Righello 3D | vulcano, superfici parametriche | dislivello e pendenza media cratere–base; con snap a vertice le misure cadono sui nodi del DEM. |
| Sezione / profilo 2D | vulcano (polilinea), Müller–Brown, membrana | profilo topografico lungo un percorso a più vertici; sulla PES, il profilo lungo il cammino di reazione tra i minimi. |
Un flusso di lavoro tipico
- caricare i dati (dataset amministrato o import CSV) e scegliere il metodo di interpolazione;
- regolare colormap e scala colore (log o divergente se il campo lo richiede, clamp per concentrarsi su un intervallo);
- attivare l'analisi: tooltip per l'esplorazione veloce, marcatore + snap a vertice per leggere i valori campionati;
- tracciare l'isocurva globale a una quota d'interesse (Usa z del click);
- aprire la sezione 2D sul taglio significativo e confrontare le serie;
- esportare: PNG per la figura, CSV per i numeri, link condivisibile per i colleghi.
Keywords: analisi dati, picking, snapping, isocurve, sezione 2D, tooltip, grafici 3D