Convertir CSV en MDF
Convertissez les mesures CSV au format ASAM MDF4 ou importez les données CSV dans une base de données SQL Server.
Convertir des fichiers CSV en ligne
Nous n’avons pas encore de convertisseur en ligne dédié pour CSV vers MDF, mais vous pouvez convertir des fichiers CSV en ligne vers ces formats et bien d’autres :
Comment convertir csv en fichier mdf
- Bases de données
- Aucune note pour l'instant.
Un programme de test, automobile ou d’analyse de données peut nécessiter un fichier ASAM Measurement Data Format au lieu d’un tableau en texte brut. Un workflow de base de données peut plutôt nécessiter une base de données Microsoft SQL Server dont le fichier de données principal possède l’extension .mdf ; il s’agit de formats différents qui nécessitent des procédures de conversion différentes.
Contenu d’un fichier CSV
CSV est un format tabulaire en texte brut : les lignes représentent des enregistrements, tandis que les virgules, les points-virgules ou les tabulations séparent les champs. Microsoft Excel, LibreOffice Calc, Google Sheets, les enregistreurs de données, les instruments de laboratoire, les exportations de bases de données et les scripts créent couramment des fichiers CSV.
CSV stocke généralement les valeurs sans définir les métadonnées des signaux, les types de données binaires, les groupes de canaux, les fréquences d’échantillonnage, les formules d’étalonnage, l’identité de l’appareil ou l’heure de début de la mesure. Une colonne d’horodatage peut être présente, mais un fichier contenant uniquement des échantillons nécessite une période d’échantillonnage connue avant de pouvoir représenter une mesure chronométrée.
Quel MDF voulez-vous dire ?
ASAM MDF est un format binaire de données de mesure utilisé pour les tests automobiles, l’analyse CAN et ECU, l’acquisition de données et les équipements de test. Les fichiers actuels utilisent généralement .mf4 ; les anciens fichiers MDF 3 utilisent généralement .mdf. MDF stocke les canaux, les groupes de canaux, les horodatages, les unités, les types de données, les informations sur la source et les métadonnées de mesure, ce qui permet aux logiciels compatibles d’accéder efficacement aux enregistrements volumineux et de conserver les signaux synchronisés ensemble.
Microsoft SQL Server MDF est un fichier de stockage de base de données, et non un format de mesure. SQL Server gère le fichier et son journal des transactions associé ; modifier le nom d’un fichier CSV en .mdf ne peut pas créer une base de données valide. Si la destination est SQL Server, importez le fichier CSV dans une base de données nouvelle ou existante et laissez SQL Server créer les fichiers de données.
Convertir un fichier CSV en ASAM MDF avec Python
Le package open source asammdf offre le meilleur contrôle sur les noms de canaux, les horodatages, les unités et la version de sortie. Installez-le avec :
python -m pip install asammdf numpyPréparez un fichier CSV encodé en UTF-8 avec une ligne d’en-tête. Cet exemple attend des horodatages en secondes et des colonnes de signaux numériques :
time,EngineSpeed,VehicleSpeed
0.000,800,0
0.010,805,0.2
0.020,810,0.4Enregistrez le code suivant sous csv_to_mdf.py, en modifiant les noms de canaux et les unités pour les faire correspondre à la source :
import csv
import numpy as np
from asammdf import MDF, Signal
input_file = "measurement.csv"
output_file = "measurement.mf4"
time_name = "time"
units = {"EngineSpeed": "rpm", "VehicleSpeed": "km/h"}
with open(input_file, newline="", encoding="utf-8-sig") as file:
rows = list(csv.DictReader(file))
if not rows:
raise ValueError("The CSV contains no data rows")
if time_name not in rows[0]:
raise ValueError("The CSV must contain a 'time' column")
timestamps = np.array([float(row[time_name]) for row in rows], dtype=float)
if np.any(~np.isfinite(timestamps)) or np.any(np.diff(timestamps) < 0):
raise ValueError("Timestamps must be finite and nondecreasing")
mdf = MDF(version="4.10")
for name in rows[0]:
if name == time_name:
continue
samples = np.array([float(row[name]) for row in rows], dtype=float)
mdf.append(Signal(samples=samples, timestamps=timestamps,
name=name, unit=units.get(name, "")))
mdf.save(output_file, overwrite=True)Exécutez-le avec python csv_to_mdf.py. Ouvrez le fichier measurement.mf4 obtenu dans un lecteur MDF et vérifiez les noms des canaux, les unités, les horodatages, le nombre d’échantillons, les valeurs manquantes et les plages numériques. Le script écrit des canaux à virgule flottante ; préservez les signaux booléens, entiers, énumérés, sous forme de tableaux d’octets ou textuels en assurant explicitement la gestion des types lorsque l’application réceptrice dépend de ces types.
Utiliser un logiciel de mesure de bureau
Les applications de mesure de Vector, National Instruments, Dewesoft et d’autres fournisseurs de systèmes de test peuvent importer des canaux CSV et exporter au format ASAM MDF, mais la prise en charge dépend du produit, de la version, de la licence et des options installées. Le workflow typique est File → Import → CSV, puis consiste à configurer le séparateur, le séparateur décimal, la ligne d’en-tête, la colonne d’horodatage et les unités, avant de choisir la commande d’exportation MDF ou MDF4 du produit. Vérifiez dans la documentation que la sortie est au format ASAM MDF, et non un fichier propriétaire utilisant l’extension .mdf.
Pour une conversion répétable ou automatisée, asammdf est généralement plus facile à auditer qu’un import graphique, car la construction des horodatages, les unités, la politique de gestion des valeurs manquantes et la version de sortie sont explicites dans le script.
Importer un fichier CSV dans une base de données SQL Server
Si le fichier requis est un fichier SQL Server .mdf, créez une base de données dans SQL Server Management Studio ou SQL Server Express, puis utilisez Tasks → Import Flat File ou l’Assistant Importation et Exportation SQL Server. Sélectionnez le fichier CSV, définissez son séparateur, son qualificateur de texte, son encodage, les types de colonnes, la gestion des valeurs nulles et la table de destination, puis laissez SQL Server créer ou étendre la base de données.
Examinez les types de colonnes déduits avant l’importation : les identifiants comportant des zéros initiaux doivent être de type texte, les dates nécessitent un format non ambigu et les longues valeurs numériques peuvent nécessiter decimal ou bigint. Le résultat est une base de données SQL Server dont les données peuvent résider dans un fichier .mdf ; le fichier CSV lui-même n’a pas été converti en fichier de mesure ASAM. Des outils tels que Full Convert peuvent migrer des données CSV vers une base de données SQL Server lorsqu’ils sont pris en charge, mais ils ne remplacent pas la gestion des fichiers de base de données de SQL Server.
Contrôles de qualité et de compatibilité
- Base de temps : Si le fichier CSV ne contient pas d’horodatages, calculez-les à partir de la fréquence d’échantillonnage documentée ; à 100 Hz, utilisez des intervalles de 0,01 seconde. Une base de temps déduite ne peut pas reconstituer une chronologie inconnue, les échantillons supprimés, les pauses ou les événements de déclenchement.
- Séparateur et paramètres régionaux : Configurez les séparateurs virgule ou point-virgule ainsi que le point décimal ou la virgule décimale. Un réglage incorrect peut décaler les champs ou importer les valeurs numériques en tant que texte.
- Mesures manquantes : Décidez comment les cellules vides,
NaNet les valeurs non valides doivent être représentés. Remplacer les lacunes par zéro modifie la mesure, sauf si cette règle est documentée. - Perte de métadonnées : CSV ne peut normalement pas fournir les définitions des messages CAN, les formules de conversion ECU, l’identité de l’appareil d’acquisition, les informations de déclenchement, l’étalonnage ou les détails de synchronisation d’origine. Ajoutez les métadonnées requises après l’importation.
- Version et extension : Utilisez
.mf4pour MDF4, sauf si la destination nécessite spécifiquement MDF3. Renommer.csven.mdfn’effectue aucune conversion, et un fichier ASAM.mdfne doit pas être fourni à SQL Server. - Services en ligne : Les convertisseurs généraux prennent rarement en charge la création de fichiers ASAM MDF ou SQL Server MDF conformes aux normes. Ne téléversez pas de données de véhicule, de laboratoire ou propriétaires, sauf si un service documente explicitement le type de MDF requis, la validation de sortie, les politiques de conservation et de suppression ; validez tout fichier téléchargé avec l’application cible.
Comparaison du format CSV vs MDF
Comparaison entre les formats CSV et MDF sur les propriétés les plus importantes pour cette conversion.
| Propriété | .CSV Comma-Separated Values | .MDF Media Descriptor File |
|---|---|---|
| Norme ouverte | Oui | Non |
| Compression | Non compressé | Les deux |
| Taille de fichier typique | Petit | Grand |
| S’ouvre dans un navigateur web | Oui, nativement | Non |
| Modification ultérieure | Facile | Non modifiable directement |
| Support des métadonnées | Basique | Basique |
| Lisible en texte brut | Oui | Non |
| Idéal pour | Échange de données | Archivage à long terme |
| Date d’introduction | — | 2000 |
| Développeur | — | Alcohol Soft |
| Type MIME | text/csv | — |