Converter CSV para MDF
Converta medições CSV para ASAM MDF4 ou importe dados CSV para um banco de dados SQL Server.
Converter ficheiros CSV online
Ainda não temos um conversor online dedicado para CSV para MDF, mas pode converter ficheiros CSV online para estes e outros formatos:
Como converter csv para mdf arquivo
- Bancos de dados
- Nenhuma avaliação ainda.
Um programa de teste, automotivo ou de análise de dados pode exigir um arquivo ASAM Measurement Data Format em vez de uma tabela de texto simples. Um fluxo de trabalho de banco de dados pode exigir, por outro lado, um banco de dados Microsoft SQL Server cujo arquivo de dados principal tenha a extensão .mdf; esses são formatos diferentes e exigem procedimentos de conversão diferentes.
O que CSV contém
CSV é um formato tabular de texto simples: as linhas representam registros, enquanto vírgulas, ponto e vírgulas ou tabulações separam os campos. Microsoft Excel, LibreOffice Calc, Google Sheets, registradores de dados, instrumentos de laboratório, exportações de bancos de dados e scripts geralmente criam arquivos CSV.
CSV normalmente armazena valores sem definir metadados de sinais, tipos de dados binários, grupos de canais, taxas de amostragem, fórmulas de calibração, identidade do dispositivo ou horário de início da medição. Uma coluna de timestamp pode estar presente, mas um arquivo contendo apenas amostras requer um período de amostragem conhecido antes que possa representar uma medição temporizada.
Qual MDF você quer dizer?
ASAM MDF é um formato binário de dados de medição usado em testes automotivos, análise de CAN e ECU, aquisição de dados e equipamentos de teste. Os arquivos atuais normalmente usam .mf4; arquivos MDF 3 mais antigos normalmente usam .mdf. MDF armazena canais, grupos de canais, timestamps, unidades, tipos de dados, informações de origem e metadados de medição, permitindo que softwares compatíveis acessem grandes gravações com eficiência e mantenham os sinais sincronizados juntos.
Microsoft SQL Server MDF é um arquivo de armazenamento de banco de dados, não um formato de medição. O SQL Server gerencia o arquivo e seu transaction log associado; alterar o nome de um arquivo CSV para .mdf não pode criar um banco de dados válido. Se o destino for o SQL Server, importe o CSV para um banco de dados novo ou existente e deixe o SQL Server criar os arquivos de dados.
Converter CSV em ASAM MDF com Python
O pacote de código aberto asammdf oferece o maior controle sobre nomes de canais, timestamps, unidades e versão de saída. Instale-o com:
python -m pip install asammdf numpyPrepare um CSV UTF-8 com uma linha de cabeçalho. Este exemplo espera timestamps em segundos e colunas de sinais numéricos:
time,EngineSpeed,VehicleSpeed
0.000,800,0
0.010,805,0.2
0.020,810,0.4Salve o seguinte como csv_to_mdf.py, alterando os nomes dos canais e as unidades para corresponderem à origem:
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)Execute-o com python csv_to_mdf.py. Abra o measurement.mf4 resultante em um leitor de MDF e verifique os nomes dos canais, as unidades, os timestamps, as contagens de amostras, os valores ausentes e os intervalos numéricos. O script grava canais de ponto flutuante; preserve sinais Boolean, inteiros, enumerados, de matriz de bytes ou de texto com tratamento explícito de tipos quando o aplicativo receptor depender desses tipos.
Usar software de medição para desktop
Aplicativos de medição da Vector, National Instruments, Dewesoft e de outros fornecedores de sistemas de teste podem importar canais CSV e exportar ASAM MDF, mas o suporte depende do produto, da versão, da licença e das opções instaladas. O fluxo de trabalho típico é File → Import → CSV, configurar o delimitador, o separador decimal, a linha de cabeçalho, a coluna de timestamp e as unidades e, em seguida, escolher o comando de exportação MDF ou MDF4 do produto. Verifique na documentação se a saída é ASAM MDF, e não um arquivo proprietário com extensão .mdf.
Para uma conversão repetível ou automatizada, asammdf geralmente é mais fácil de auditar do que uma importação gráfica, pois a construção dos timestamps, as unidades, a política para valores ausentes e a versão de saída são explícitas no script.
Importar CSV para um banco de dados SQL Server
Se o arquivo necessário for um .mdf do SQL Server, crie um banco de dados no SQL Server Management Studio ou no SQL Server Express e, em seguida, use Tasks → Import Flat File ou o SQL Server Import and Export Wizard. Selecione o CSV, defina o delimitador, o qualificador de texto, a codificação, os tipos de coluna, o tratamento de valores nulos e a tabela de destino, e deixe o SQL Server criar ou estender o banco de dados.
Revise os tipos de coluna inferidos antes da importação: identificadores com zeros à esquerda devem ser texto, datas exigem um formato não ambíguo e valores numéricos longos podem precisar de decimal ou bigint. O resultado é um banco de dados SQL Server cujos dados podem estar em um arquivo .mdf; o CSV em si não foi convertido em um arquivo de medição ASAM. Ferramentas como o Full Convert podem migrar dados CSV para um banco de dados SQL Server quando houver suporte, mas não substituem o gerenciamento de arquivos de banco de dados do SQL Server.
Verificações de qualidade e compatibilidade
- Base de tempo: Se o CSV não tiver timestamps, calcule-os a partir da taxa de amostragem documentada; a 100 Hz, use intervalos de 0,01 segundo. Uma base de tempo inferida não pode recuperar temporização desconhecida, amostras descartadas, pausas ou eventos de trigger.
- Delimitador e localidade: Configure separadores por vírgula ou ponto e vírgula e ponto decimal ou vírgula decimal. Uma configuração incorreta pode deslocar campos ou importar valores numéricos como texto.
- Leituras ausentes: Decida como células vazias,
NaNe valores inválidos devem ser representados. Substituir lacunas por zero altera a medição, a menos que essa regra esteja documentada. - Perda de metadados: CSV normalmente não pode fornecer definições de mensagens CAN, fórmulas de conversão de ECU, identidade do dispositivo de aquisição, informações de trigger, calibração ou detalhes originais de sincronização. Adicione os metadados necessários após a importação.
- Versão e extensão: Use
.mf4para MDF4, a menos que o destino exija especificamente MDF3. Renomear.csvpara.mdfnão realiza nenhuma conversão, e um arquivo ASAM.mdfnão deve ser fornecido ao SQL Server. - Serviços online: Conversores genéricos raramente oferecem suporte à criação de ASAM MDF em conformidade com os padrões ou de SQL Server MDF. Não envie dados de veículos, laboratórios ou proprietários, a menos que um serviço documente explicitamente o tipo de MDF necessário, a validação da saída, a retenção e as políticas de exclusão; valide qualquer arquivo baixado com o aplicativo de destino.
Comparação de formato: CSV vs MDF
Como os formatos CSV e MDF se comparam nas propriedades mais importantes para esta conversão.
| Propriedade | .CSV Comma-Separated Values | .MDF Media Descriptor File |
|---|---|---|
| Padrão aberto | Sim | Não |
| Compressão | Sem compressão | Ambos |
| Tamanho típico do arquivo | Pequeno | Grande |
| Abre num navegador web | Sim, nativamente | Não |
| Edição posterior | Fácil | Não editável diretamente |
| Suporte a metadados | Básico | Básico |
| Legível em texto simples | Sim | Não |
| Mais usado para | Intercâmbio de dados | Arquivamento de longo prazo |
| Introduzido | — | 2000 |
| Desenvolvedor | — | Alcohol Soft |
| Tipo MIME | text/csv | — |