12-01-2023 10:54 AM
Hi Community,
I would like export channel groups directly in .csv file mantain at least the measure unit:
Raw1 Channel Name (base property)
Raw2 Unit (base property)
Raw3-n Data (numeric)
I have tried with DataFileSave but export only channel name and data.
Due to a long channel and not standard channel I can't use write in csv info x info.
Ii it possible use a dataplugin also for saving?
What's the short way to export csv with base properties?
12-04-2023 04:23 AM - edited 12-04-2023 04:25 AM
Hello Arrow90,
to export data from DIAdem to a text/CSV file you can write a python script. Python comes with a unit that can be used to create a CSV file very easily and with just a few lines of code.
The following small script writes a CSV file in which all channels of the first group are separated by the tab separator and stored with the channel name and the unit.
import csv
export_names = []
export_units = []
min_chn_len = 0
with open(dd.CurrentScriptPath + "ExampleExport.csv", "w", newline="") as file:
writer = csv.writer(file, delimiter="\t")
for chn in dd.Data.Root.ChannelGroups(1).Channels:
export_names.append(chn.Name)
export_units.append(chn.UnitSymbol)
if min_chn_len == 0 or chn.Size < min_chn_len:
min_chn_len = chn.Size
writer.writerow(export_names)
writer.writerow(export_units)
chn_values = []
for chn in dd.Data.Root.ChannelGroups(1).Channels:
chn_values.append(chn.GetValuesBlock(1, min_chn_len))
# Transpose matrix for CSV writer.
chn_values = [[chn_values[j][i] for j in range(len(chn_values))] for i in range(len(chn_values[0]))]
writer.writerows(chn_values)
If you want to reload the CSV file in DIAdem later, you will need to create a CSV DataPlugin for it, as the standard CSV reader does not support the unit. To create the DataPlugin, you can use the Text-DataPlugin Wizard.
12-11-2023 02:55 AM
Hello AnJalpaka,
I have all codes in VBS and if is possible I prefer a solution in VBS.
If I haven't other ways, I will try to use your Python code.
Thank you for your support