3D, immagini, PDF e testo

Non tutti i Dataset scientifici sono tabelle. GX-TXT dispone di importatori che preservano file strutturati o binari come Dataset canonici “file-shaped”, associando contract, metadata, hashes e provenance senza trasformare arbitrariamente il contenuto in colonne CSV.

Versione verificata

FrameworkGX-TXT 0.9.8.10-dev-031
3D Geometryacq.geometry_3d 1.1.0
Imagesacq.image_binary 1.2.0
PDFacq.pdf_document 1.0.1
Text / Sourceacq.text_document 1.0.4

1. Un modello comune

Famiglia importatori file-shaped
Questi importatori condividono un principio: preservare la sorgente e registrarla con il contract corretto, lasciando decoding/rendering/estrazione ai consumer downstream.

La maggior parte usa variable_mapping=none: non vengono create variabili artificiali per byte, pagine, facce o righe solo per adattare il contenuto al modello tabellare.

2. 3D Geometry Import

acq.geometry_3d importa batch misti dei formati:

FormatoContractControllo principale
STLgeometry.meshASCII/binary mesh envelope, triangle records, coordinate finite, bounds.
OBJgeometry.meshvertex/face/line/point records e indici.
STEP/STPmodel.cadISO 10303-21 envelope e sezioni obbligatorie; niente decoding completo CAD.
VTUgeometry.meshVTK XML UnstructuredGrid e array declarations.
VTPgeometry.meshVTK XML PolyData e topology/array declarations.
VTIfield.scalar_3dImageData 3D, extent, origin, spacing e scalar arrays.

2.1 Nessuna conversione geometrica in acquisizione

Il modulo non esegue mesh repair, resampling, triangolazione implicita, coordinate conversion, CAD tessellation o field extraction. Il canonical payload resta byte-identical al file preservato.

2.2 Preview e Native 3D

La Preview presenta metadata, validation level e warnings; non genera necessariamente una thumbnail tessellata. Dopo import, Native 3D seleziona il Dataset direttamente dalla Session. VTI richiede array scalare e isovalue espliciti.

2.3 Dipendenze esterne OBJ

I riferimenti mtllib vengono elencati ma material/texture esterni non vengono copiati o scaricati automaticamente. La geometria resta preservata, mentre le dipendenze visuali esterne non diventano portabili per magia.

3. Image importer

acq.image_binary importa PNG, JPEG, BMP e TIFF come image.raster.

L'estrazione metadata estesa usa Python/Pillow quando disponibile, ma il percorso base signature-based resta indipendente da Pillow.

4. PDF Document Import

acq.pdf_document importa ogni PDF come un Dataset indipendente document.pdf.

Il contract garantisce:

4.1 Cosa non garantisce

Non implica automaticamente testo estraibile, OCR, pagine raster, title/author presenti o documento non cifrato.

L'importatore non esegue OCR, text extraction, rasterizzazione, repair, optimization o annotation.

4.2 Metadata PDF

Quando disponibili può registrare pdf.version, pdf.encrypted, title, author, subject, keywords, creator/producer e date.

I workflow OCR e di estrazione appartengono a consumer separati, non all'acquisizione.

5. Text and Source Code Import

acq.text_document importa testo, markup, configurazioni e source code come:

Original bytes, encoding, BOM, tabs e line endings vengono preservati. Il source code non viene mai eseguito, importato come modulo, compilato o seguito nelle sue dipendenze.

5.1 Language detection

Il modulo può riconoscere Python, Tcl, Octave/MATLAB, C/C++, shell, PowerShell, JavaScript/TypeScript, Fortran, Rust, Go, R, Julia, Ruby, Perl, Lua, PHP, SQL, Make/CMake, JSON/YAML/TOML/INI/XML/HTML/CSS/Markdown/TeX e altri casi dichiarati.

La detection usa estensione/nome, shebang, modeline e firme limitate del contenuto. È un metadata hint, non validazione sintattica.

5.2 Import as e Language sono indipendenti

Un file Python può essere preservato come document.text oppure code.source mantenendo comunque code.language=python.

5.3 Encoding

Auto controlla BOM, Python coding cookie e UTF-8; sono disponibili override espliciti per UTF-16/32, cp1252, ISO-8859-1 e altri valori dichiarati dal modulo.

Gli override Language/Encoding si applicano al run corrente; riportali ad auto prima di un batch misto se non vuoi forzare tutti i file allo stesso modo.

6. Copy into Session e RAW esterno

Per text/source il framework offre anche la possibilità di mantenere/riferire l'originale esterno come RAW quando esplicitamente scelto; la copia in Session resta il comportamento normale. Le risorse esterne vanno verificate attraverso le funzioni pubbliche di metadata/integrità, non date per permanenti.

7. Perché non creare finte Variables?

Una geometria STEP, un'immagine JPEG o un PDF non sono tabelle solo perché GX-TXT supporta tabelle. Questi importatori dichiarano variable_mapping=none e mantengono un contract file-shaped appropriato.

Un consumer successivo può creare un Dataset numerico derivato quando esiste una trasformazione scientifica esplicita: per esempio OCR, digitalizzazione, estrazione tabella o decoding.

8. Preservazione e provenance

Acquisition Handler API lascia a CORE:

Il plugin riconosce il formato, valida ciò che è nel suo scope, produce/copia il canonical payload e restituisce un descriptor. Non deve scrivere direttamente metadata/datasets.ini.

9. Limiti di validazione non equivalgono a certificazione scientifica

Per STEP e VTK, per esempio, l'importatore può verificare envelope e metadata strutturali senza decodificare ogni entità CAD o ogni array scientifico. Un import riuscito significa che la sorgente è stata riconosciuta e preservata secondo il validation scope dichiarato; non che qualunque consumer futuro sia obbligato a poterla renderizzare.

10. Guida rapida alla scelta

SorgenteImporterContract
STL / OBJ / VTU / VTP3D Geometry Importgeometry.mesh
STEP / STP3D Geometry Importmodel.cad
VTI scalar field3D Geometry Importfield.scalar_3d
PNG / JPEG / BMP / TIFFImage importerimage.raster
PDFPDF Document Importdocument.pdf
Testo / markup / configText and Source Code Importdocument.text
Source codeText and Source Code Importcode.source

11. Guide collegate